Live-Forum - Die aktuellen Beiträge
Datum
Titel
23.04.2024 14:59:21
23.04.2024 14:47:39
23.04.2024 14:23:45
Anzeige
Archiv - Navigation
1208to1212
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
Inhaltsverzeichnis

mehrere Autoformen in Spalte per Makro markieren

mehrere Autoformen in Spalte per Makro markieren
Kai
Hallo,
ich lege per Makro nach bestimmten Kriterien in einer Tabelle in den Spalte B bis D Autoformen an. Nun möchte ich alle Autoformen, die sich in der Spalte B befinden markieren und färben. Alle anderen Autoformen (Spalte C, D.. sollen unberührt bleiben.)
Das Problem, ich weiss nie, wieviel dieser Autoformen sich in der Spalte nachhher befinden und wie sich heissen ( Autoform135, Autoform180, Autoform54, ....) Ist jedes mal anders.
Kann man unabhängig vom Name , mit einem Makro , alle Autoformen, die sich zB. in B befinden, markieren ?
Danke
Kai
AW: mehrere Autoformen in Spalte per Makro markieren
31.03.2011 07:56:15
Heiko
Moin Kai,
z.B. so. Und zum einfärben brauchst du Sie nicht zu markieren (selecten) das geht auch ohne.
Sub AutoformSpalteBfaerben()
Dim shaFormen As Shape
For Each shaFormen In ActiveSheet.Shapes
' 2 für Spalte B
If shaFormen.TopLeftCell.Column = 2 Then
shaFormen.Fill.ForeColor.RGB = RGB(128, 100, 0)
End If
Next shaFormen
End Sub

Gruß Heiko
AW: mehrere Autoformen in Spalte per Makro markieren
31.03.2011 08:15:25
Kai
Hallo Heiko,
Danke, das hat zuerst nicht funktioniert, bis ich mal selber solche AutoFormen mit der Maus (manuell) gestzt habe. Da ging es plötzlich. Zumindest die, die ich manuell gesetzt habe.
Der Code scheint zu unterscheiden, ob die Autoformen per Makro oder manuell gesetzt worden sind.
Gibt es dafür eine Erklärung ?
Danke
Kai
Anzeige
AW: mehrere Autoformen in Spalte per Makro markieren
31.03.2011 08:34:51
Heiko
Moin Kai,
da wäre natürlich schön zu sehen wie du die Autoshapes per VBa einfügst, aber meine Glaskugel ist defekt.
Wenn ich so per VBA Shapes einfüge klappt es auch mit meinem Einfärbecode.
Sub AutoFormDazu()
Dim lngI As Long
For lngI = 1 To 10
ActiveSheet.Shapes.AddShape msoShapeRectangle, 90, lngI * 15, 100, 100
Next lngI
End Sub

Gruß Heiko
AW: mehrere Autoformen in Spalte per Makro markieren
31.03.2011 08:55:32
Kai
Hi Heiko,
stimmt, bei dir gehts, ich mache das so :
Dim rngC As Range, r As Range, s As Shape
Application.ScreenUpdating = False
For Each rngC In Range(Cells(7, 2), Cells(Rows.Count, 2).End(xlUp))
For Each r In rngC.Resize(, 7)
Set s = ActiveSheet.Shapes.AddShape(msoShapeRoundedRectangle, 1, 1, 1, 1)
With s
.Width = r.Width
.Left = r.Left
.Height = r.Height
.Top = r.Top + 2
.Adjustments.Item(1) = 1
.Fill.Visible = False
End With
Next r
Next rngC
Anzeige
AW: mehrere Autoformen in Spalte per Makro markieren
31.03.2011 09:08:33
Heiko
Moin Kai,
also wenn ich in ein beliebiges Tabellenblatt in Spalte B ein paar Eintragungen machen, erscheinen bei mir mit deinem Code ein Haufen msoShapeRoundedRectangle.
Wenn ich anschließend meine Einfärbecode laufen lasse werden nur die msoShapeRoundedRectangle in Spalte B eingefärbt.
Ich kann darum nicht nachvollziehen warum das bei dir nicht geht. Machst du per VBA sonst noch irgendwelche Änderungen in den Spalten bzw. an den msoShapeRoundedRectangle?
Gruß Heiko
AW: mehrere Autoformen in Spalte per Makro markieren
31.03.2011 09:22:38
hary
Hallo Kai
hast Du in Deinem Code:

Application.ScreenUpdating = False

wieder auf

Application.ScreenUpdating = true

gesetzt?
gruss hary
Anzeige
ich glaub , ich habs....
31.03.2011 09:55:47
Kai
Hi,
wenn ich die Zeile
.Fill.Visible = False
raus mache, dann gehts. Weiss garnicht mehr , warum die drin ist !!!!! grrrrrrrr.
Danke, an beide.
Vielleicht noch eine kleine Bitte: das Fäeben, soll erst ab Zeile 7 losgehen, was muss ich da ändern ?
Danke.
Kai
AW: ich glaub , ich habs....
31.03.2011 10:19:45
Heiko
Moin Kai,
z.B. so:
Sub AutoformSpalteBfaerben()
Dim shaFormen As Shape
For Each shaFormen In ActiveSheet.Shapes
' 2 für Spalte B
If shaFormen.TopLeftCell.Column = 2 And shaFormen.TopLeftCell.Row > 6 Then
shaFormen.Fill.ForeColor.RGB = RGB(128, 100, 0)
End If
Next shaFormen
End Sub
Und mal versuchen das nachzuvollziehen damit du auch was lernst ;-)
Gruß Heiko
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige