Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Bilder in Bereichen selektieren

Bilder in Bereichen selektieren
Lemmi
Hallo zusammen,
Ich möchte diese Makro etwas erweitenern bzw. den Bereich einschränken in dem es arbeiten soll!
Sub Alle_Bilder_markieren()
ActiveSheet.Shapes.SelectAll
End Sub
Das neue Makro A soll nur in einem Bereich von A6:D3000 alle Bilder markieren
Das neue Makro B soll alles ab Zeile A6 markieren!
Wie sieht hier das Makro aus?
Gruß
Lemmi
Anzeige
Bild in Zeile - Ähnlicher Thread im Archiv
27.12.2010 00:21:25
NoNet
Hallo Lemmi,
einen Thread zu einem ähnlichen Thema mit Lösungsvorschlag findest Du hier :
https://www.herber.de/forum/archiv/1164to1168/t1167457.htm
Evtl. kannst Du die Function BildInZeile(lngZeile As Long) As Boolean auch selbst anpassen ?
Per EXCEL-Definition ist die linke obere Ecke eines Shapes (Grafik) ausschlaggebend dafür, ob ein Bild innerhalb eines Bereiches/Zeile/Spalte/Zelle liegt oder nicht, meine Funktion prüft jedoch, ob Das Bild den Bereich "berührt" (genauer: überschneidet).
Viel Erfolg,
Gruß NoNet
Anzeige
AW: Bilder in Bereichen selektieren
27.12.2010 17:08:53
Beverly
Hi Lemmi,
für Aufgabe 1:
Sub ShapesMarkieren1()
Dim shShape As Shape
Dim loShapes As Long
ReDim arrShapes(0)
For Each shShape In ActiveSheet.Shapes
If shShape.Top > Rows(6).Top And shShape.BottomRightCell.Left  "" Then
ActiveSheet.Shapes.Range(arrShapes()).Select
End If
End Sub
für Aufgabe 2:
Sub ShapesMarkieren2()
Dim shShape As Shape
Dim loShapes As Long
ReDim arrShapes(0)
For Each shShape In ActiveSheet.Shapes
If shShape.Top > Rows(6).Top Then
ReDim Preserve arrShapes(0 To loShapes)
arrShapes(loShapes) = shShape.Name
loShapes = loShapes + 1
End If
Next shShape
If arrShapes(UBound(arrShapes()))  "" Then
ActiveSheet.Shapes.Range(arrShapes()).Select
End If
End Sub



Anzeige
AW: Bilder in Bereichen selektieren
27.12.2010 21:04:19
Lemmi
Hallo Karin,
vielen Dank für Deinen Code!
Ich habe erst einmal den zweiten Code ausprobiert! Hier gibt es eine Fehlermeldung!
in der Zeile:
......
ActiveSheet.Shapes.Range(arrShapes()).Select
End If
End Sub
Er meldet Laufzeitfehler; Anwendungs- oder objekdefiniertet Fehler!
Mache ich noch etwas flasch?
Gruß
Lemmi
Anzeige
AW: Bilder in Bereichen selektieren
28.12.2010 08:55:00
Beverly
Hi Lemmi,
kann ich leider nicht nachvollziehen - weder mir Excel2002 noch mit Excel2007
https://www.herber.de/bbs/user/72820.xls


Anzeige
AW: Bilder in Bereichen selektieren
28.12.2010 19:07:21
Lemmi
Hallo Karin,
jetzt sehe ich auch "meinen" Fehler. Ich habe zu ungenau mein Problem beschrieben!
Du makiert Ovale und Rechtecke. Ich habe möchte aber Bilder und Opjekte markieren!
Soweit ich das bis jetzt herausgefunden habe, kann man etweder Bilder oder Objekte markieren aber nicht beides.
Wäre es möglich das Du das Makro noch anpassen könntest?
Ich möchte auf jeden Fall alle Objekte markieren können. Wenn es nicht zu viel arbeit macht würde ich auch gerne noch alle Bilder markieren(neues Makro).
(Arbeitsbereich... ab Zeile 6 soll beiben:
Vielen Dank..... schon einmal im Voraus! Danke!
Gruß
Lemmi
Anzeige
AW: Bilder in Bereichen selektieren
28.12.2010 19:31:00
Beverly
Hi Lemmi,
was für Objekte?


AW: Bilder in Bereichen selektieren
28.12.2010 19:49:04
Lemmi
Hallo Karin,
ich habe Objekte über Excel/ Einfügen/ Objekte eingefügt!
Gruß
Lemmi
AW: Bilder in Bereichen selektieren
29.12.2010 00:28:02
Beverly
Hi Lemmi,
beide Typen lassen sich in Excel2007 leider nicht gemeinsam markieren - du musst sie also getrennt markieren und für die Objekte einen anderen Code verwenden
Sub ObjekteMarkieren()
Dim oobObjekt As OLEObject
Dim lngObjekte As Long
Dim bytTyp As Byte
ReDim arrObjekte(0)
For Each oobObjekt In ActiveSheet.OLEObjects
If oobObjekt.Top > Rows(6).Top And oobObjekt.BottomRightCell.Left  "" Then
ActiveSheet.Shapes.Range(arrObjekte()).Select
End If
End Sub

als für die Bilder:
Sub BilderMarkieren()
Dim shShape As Shape
Dim lngBilder As Long
Dim bytTyp As Byte
ReDim arrBilder(0)
For Each shShape In ActiveSheet.Shapes
On Error Resume Next
bytTyp = shShape.DrawingObject.OLEType
On Error GoTo 0
If bytTyp = 0 Then
If shShape.Top > Rows(6).Top And shShape.BottomRightCell.Left  "" Then
ActiveSheet.Shapes.Range(arrBilder()).Select
End If
End Sub



Anzeige
AW: Bilder in Bereichen selektieren
29.12.2010 12:51:42
Lemmi
Hallo Karin,
das Makro für die Objekte passt sehr gut!
Vielen Dank!
Die Bildermarkierung funktioniert leider nicht.... Ich habe schon einiges versucht(Wort Bild durch Picture ersetzt)
Der Bereichsname heist "Picture X" kann es daran liegen?
Anders gefragt: Wie finde ich heraus wie ich das Bild ansprechen kann.
Gruß
Egbert
Anzeige
AW: Bilder in Bereichen selektieren
29.12.2010 13:13:04
Beverly
Hi Egbert,
vielleicht solltest du mal deine Mappe mit ein paar wenigen Objekten/Bildern hochladen - da der Code bei mir funktioniert kann ich nichts dazu sagen. Vielleicht könntest du auch genauer beschreiben, was nicht funktioniert.


Anzeige
AW: Bilder in Bereichen selektieren
29.12.2010 15:12:23
Beverly
Hi Eduard,
der Code ist doch so geschrieben, dass die rechte untere Ecke des Bildes links von Spalte E liegt - das ist in deinem Beispiel nicht der Fall, deshalb wird es auch nicht ausgewählt. Markiere das Bild und du siehst, dass es bis in Spalte H reicht.


Anzeige
AW: Bilder in Bereichen selektieren
29.12.2010 15:25:28
Lemmi
Hallo Karin,
das wars! Ich habe den Bereich erweitert und kann jetzt alles selektrieren!
Vielen vielen Dank!
Bis zum nächsten Jahr!
Gruß
Lemmi
;
Anzeige
Anzeige

Infobox / Tutorial

Bilder in Excel-Bereichen selektieren


Schritt-für-Schritt-Anleitung

Um in Excel alle Bilder oder Objekte in einem bestimmten Bereich zu markieren, kannst Du die folgenden VBA-Makros nutzen. Diese sind speziell für die Auswahl von Bildern und Objekten in einem definierten Bereich konzipiert.

  1. Excel öffnen und die gewünschte Arbeitsmappe laden.
  2. VBA-Editor öffnen mit ALT + F11.
  3. Ein neues Modul einfügen: Rechtsklick auf "VBAProject (dein Arbeitsblatt)" > Einfügen > Modul.
  4. Den folgenden Code in das Modul einfügen.

Für die Auswahl aller Bilder in einem bestimmten Bereich (z.B. A6:D3000):

Sub Alle_Bilder_markieren()
    Dim shShape As Shape
    Dim arrShapes() As String
    Dim loShapes As Long
    ReDim arrShapes(0)
    For Each shShape In ActiveSheet.Shapes
        If shShape.Top > Rows(6).Top And shShape.BottomRightCell.Left < Columns(5).Left Then
            ReDim Preserve arrShapes(0 To loShapes)
            arrShapes(loShapes) = shShape.Name
            loShapes = loShapes + 1
        End If
    Next shShape
    If arrShapes(UBound(arrShapes())) <> "" Then
        ActiveSheet.Shapes.Range(arrShapes()).Select
    End If
End Sub

Für die Auswahl aller Objekte (z.B. OLE-Objekte) in einem bestimmten Bereich:

Sub ObjekteMarkieren()
    Dim oobObjekt As OLEObject
    Dim arrObjekte() As String
    Dim loObjekte As Long
    ReDim arrObjekte(0)
    For Each oobObjekt In ActiveSheet.OLEObjects
        If oobObjekt.Top > Rows(6).Top Then
            ReDim Preserve arrObjekte(0 To loObjekte)
            arrObjekte(loObjekte) = oobObjekt.Name
            loObjekte = loObjekte + 1
        End If
    Next oobObjekt
    If arrObjekte(UBound(arrObjekte())) <> "" Then
        ActiveSheet.OLEObjects(arrObjekte()).Select
    End If
End Sub

Häufige Fehler und Lösungen

  • Laufzeitfehler: "Anwendungs- oder objektdefinierter Fehler": Dies tritt häufig auf, wenn der Bereich nicht korrekt definiert ist. Stelle sicher, dass die Shapes tatsächlich im angegebenen Bereich liegen.

  • Objekte und Bilder können nicht gleichzeitig markiert werden: In Excel 2007 und früheren Versionen müssen Bilder und OLE-Objekte separat behandelt werden. Verwende die oben angegebenen Makros.

  • Nicht alle Bilder werden markiert: Achte darauf, dass die Bilder im definierten Bereich tatsächlich sichtbar sind. Überprüfe auch, ob die rechte untere Ecke des Bildes im Bereich liegt.


Alternative Methoden

Wenn Du keine VBA-Makros verwenden möchtest, kannst Du auch die folgenden Methoden ausprobieren:

  1. Manuelles Markieren: Halte die STRG-Taste gedrückt und klicke auf jedes Bild oder Objekt, das Du auswählen möchtest. Dies ist jedoch unpraktisch, wenn viele Bilder vorhanden sind.

  2. Excel-Funktionen: Es gibt keine integrierte Funktion in Excel, um alle Bilder oder Objekte in einem Bereich auszuwählen. Die Verwendung von Makros ist die effektivste Methode.


Praktische Beispiele

  • Beispiel 1: Markiere alle Bilder in einem Bereich von A6 bis D3000 mit dem oben genannten Makro.

  • Beispiel 2: Verwende das Makro für OLE-Objekte, um alle eingebetteten Objekte ab Zeile 6 zu markieren, z.B. Diagramme oder ActiveX-Steuerelemente.

  • Beispiel 3: Um nur Bilder zu markieren, die in einer bestimmten Grafiken-Gruppe liegen, passe die Bedingungen im Makro entsprechend an.


Tipps für Profis

  • Tastenkombinationen: Nutze CTRL + A, um alle Objekte in einem Arbeitsblatt auszuwählen. Dies funktioniert jedoch nur, wenn Du die Objekte manuell markierst.

  • Gruppierung: Wenn Du mehrere Bilder oder Formen hast, die Du häufig zusammen verwenden möchtest, kannst Du diese in einer Bildergruppe zusammenfassen. Dies erleichtert die Auswahl.

  • Makros speichern: Speichere Deine Makros im persönlichen Makroarbeitsbuch, um sie in jeder Excel-Datei verwenden zu können.


FAQ: Häufige Fragen

1. Wie kann ich alle Bilder in Excel markieren? Nutze das oben angegebene Makro Alle_Bilder_markieren, um alle Bilder in einem bestimmten Bereich auszuwählen.

2. Gibt es eine Tastenkombination, um alle Objekte auszuwählen? Eine direkte Tastenkombination gibt es nicht. Du kannst jedoch CTRL + A verwenden, um alle Objekte in einem Arbeitsblatt auszuwählen, wenn Du sie zuvor markiert hast.

3. Kann ich Bilder und Objekte gleichzeitig markieren? In Excel 2007 und früheren Versionen ist dies nicht möglich. Du musst sie separat markieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige