Anzeige
Archiv - Navigation
868to872
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
868to872
868to872
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

For-Each-Next-Schleife

For-Each-Next-Schleife
12.05.2007 08:39:46
Hutzebutz
Hallo,
ich habe eine Excel-Mappe mit einigen Bildern. Per Makro sollen diese Bilder nacheinander bearbeitet werden. Dazu möchte ich die Bilder mit einer for-each-next-Schleife durchlaufen. Kann mir jemand sagen, wie genau das geht?
Danke und Gruß
Hutzebutz

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: For-Each-Next-Schleife
ransi
HAllo
Versuch das mal so:;
Option Explicit


Public Sub test()
Dim Bild As Shape
For Each Bild In Worksheets("Tabelle1").Shapes
    MsgBox Bild.Name
Next
End Sub

ransi

Anzeige
AW: For-Each-Next-Schleife
12.05.2007 09:29:14
fcs
Hallo Hutzebutz,
mit einer der beiden folgenden Varianten kannst du eingebette Grafiken in Schleifen abarbeiten.
Falls du nur Bilder und keine weiten grafischen Elemente (Linien, Textboxen, Steuerelemenete etc.) im Tabellenblatt hast, dann kannst du die If-Abfrage weglassen.
Gruß
Franz

Sub Bilder()
Dim wks As Worksheet, Bild As Shape, Zelle As Range
Set wks = ActiveSheet
Set Zelle = wks.Cells(2, 4) '1. Zelle zum Bild-Positionieren
'Bilder werden auf eine einheitliche Höhe gebracht und untereinander angeorddnet
For Each Bild In wks.Shapes
With Bild
If .Type = msoPicture Then
.Top = Zelle.Top + 2
.Left = Zelle.Left + 2
.Width = .Width * .Height / 300
.Height = 300
Set Zelle = wks.Cells(.BottomRightCell.Row + 1, Zelle.Column)
End If
End With
Next
End Sub
Sub Bilder2()
Dim wks As Worksheet, Bild As Shape, Zelle As Range, I%
Set wks = ActiveSheet
Set Zelle = wks.Cells(2, 4) '1. Zelle zum Bild-Positionieren
'Bilder werden auf eine einheitliche Höhe gebracht und untereinander angeorddnet
For I% = 1 To wks.Shapes.Count
Set Bild = wks.Shapes(I%)
With Bild
If .Type = msoPicture Then
.Top = Zelle.Top + 2
.Left = Zelle.Left + 2
.Width = .Width * .Height / 300
.Height = 300
Set Zelle = wks.Cells(.BottomRightCell.Row + 1, Zelle.Column)
End If
End With
Next
End Sub


Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige