Ich habe ein Makro welches ich in einer Tabelle in jeder
Zeile in derselben Spalte je einmal ausführen will.
Die Tabelle hat 1000 Zeilen.
Ich bin noch nicht so fit in VBA, wäre nett wenn die
Anwort für mich vereinfacht formuliert sein könnte.
Wäre sehr dankbar für Eure Hilfe.
Danke und Gruss
Robert
>Hallo NG
>
>Ich habe ein Makro welches ich in einer Tabelle in jeder=20
>Zeile in derselben Spalte je einmal ausf=FChren will.
>Die Tabelle hat 1000 Zeilen.
>
>Ich bin noch nicht so fit in VBA, w=E4re nett wenn die=20
>Anwort f=FCr mich vereinfacht formuliert sein k=F6nnte.
>
>W=E4re sehr dankbar f=FCr Eure Hilfe.
>
>Danke und Gruss
>Robert
Hallo Robert,
ich gehe mal davon aus, dass es sich um die Spalte A handelt.
In A1 steht eine Überschrift, für die das Makro nicht ausgeführt
werden soll, es beginnt also erst mit A2.
Mein DemoMakro ändert in jeder Zelle der Spalte A die Schriftfarbe auf
rot, wenn der Zellenwert = 3 ist. Dieses Makro musst Du durch Deines
ersetzen.
Sub ImmerWieder()
Dim LastRow As Integer
Dim Zle As Integer
LastRow = Range("A65536").End(xlUp).Row
For Zle = 2 To LastRow
'++++++++++++
'Mein Makro
If Range("A" & Zle).Value = 3 Then
Range("A" & Zle).Font.ColorIndex = 3
End If
'Ende meines Makro
'++++++++++++++++++
Next
End Sub
Wenn es Probleme gibt, poste Dein Makro hier in der NG.
--
Als XL-Lehrling grüßt
Eberhard mit XL 2000
Hier einBeispiel, wie Du von Zelle A1 bis Zelle A1000 den Hintergrund gelb
färbst.
Sub HintergrundGelb()
Dim z As Integer ' Das ist die Zeile
For z = 1 To 1000 'Von Zeile 1 bis Zeile 1000
Cells(z, 1).Activate 'Hier wird die Zelle A1 aktiviert (Zelle mit
der Zeile z=1 und der Spalte 1
ActiveCell.Interior.ColorIndex = 36 ' Die aktive Zelle wird gelb
eingefärbt
Next z 'Rücksprung um das Makro noch mal zu
durchlaufen , nur jetzt mit der Zeile z=2 und das bis z= 1000
End Sub
Ich hoffe, ich habe mich verständlich ausgedrückt.
Klaus Brauner schrieb:
>
> Sub HintergrundGelb()
> Dim z As Integer ' Das ist die Zeile
> For z = 1 To 1000 'Von Zeile 1 bis Zeile 1000
> Cells(z, 1).Activate 'Hier wird die Zelle A1 aktiviert (Zelle mit
> der Zeile z=1 und der Spalte 1
> ActiveCell.Interior.ColorIndex = 36 ' Die aktive Zelle wird gelb
> eingefärbt
> Next z 'Rücksprung um das Makro noch mal zu
> durchlaufen , nur jetzt mit der Zeile z=2 und das bis z= 1000
> End Sub
Hmmm, und warum nicht:
Range(Cells(1,1),Cells(1000,1)).Interior.ColorIndex = 36
...geht direkt,schneller und erst noch ohne 'Flackern'
--
Mit freundlichen Grüssen
Thomas Ramel
- MVP für Microsoft-Excel -
[Win 2000Pro SP-3 / xl2000 SP-3]
Hallo Thomas,
das ist die natürlich in diesem Falle die schnellste und einfachste Art. Ich
weiss aber nicht, was Robert wirklich Zelle für Zelle machen möchte. Das
Färben war ja nur der Ersatz füe sein Makro.
Liebe Grüße Klaus
>Ich
>weiss aber nicht, was Robert wirklich Zelle für Zelle machen möchte. Das
>Färben war ja nur der Ersatz füe sein Makro.
Wenn das auszuführende Makro schon existiert, und es nur um das
*Ausführen* dieses Makros in den Zellen A1 bis A1000 geht (so hatte ich
den Originalposter verstanden), ist die einfachste Methode wohl
folgende:
|Dim Zelle As Range
|
|For Each Zelle In Range("A1:A1000")
| Zelle.Activate
| Makroname
|Next Zelle
HTH,
Rainer
Klaus Brauner schrieb:
>>
>>>Hmmm, und warum nicht:
>>Range(Cells(1,1),Cells(1000,1)).Interior.ColorIndex = 36
>
> das ist die natürlich in diesem Falle die schnellste und einfachste Art. Ich
> weiss aber nicht, was Robert wirklich Zelle für Zelle machen möchte. Das
> Färben war ja nur der Ersatz füe sein Makro.
Ja; das war mir schon klar...
...doch auch 'alles andere' kann ohne .Activate durch direktes Ansprechen
des Ranges ausgeführt werden, ohne dass dabei der Cursor Gassi geführt
werden muss. Das wollte ich eigentlich aufzeigen...
besten Dank für die zahlreichen Lösungsvorschläge.
Für mich ist die Lösung von Rainer am einfachsten, ich
werde aber, um schlussendlich nur ein Makro zu verwenden,
die anderen Lösungen testen.
Hier übrigens der Code der nur einzeln pro Zelle
angewendet werden kann.
Selection.Hyperlinks(1).TextToDisplay = ""
Damit wird die Adresse eines Hyperlinks wieder als Text
angezeigt. So habe ich die Möglichkeit den Dateinamen
auszulesen.
Vielen Dank und Gruss
Robert
>besten Dank für die zahlreichen Lösungsvorschläge.
>Für mich ist die Lösung von Rainer am einfachsten, ich
>werde aber, um schlussendlich nur ein Makro zu verwenden,
>die anderen Lösungen testen.
>
>Hier übrigens der Code der nur einzeln pro Zelle
>angewendet werden kann.
>Selection.Hyperlinks(1).TextToDisplay = ""
Ungetestet, aber:
|Zelle.Hyperlinks(1).TextToDisplay = ""
sollte nach meinem Verständnis eigentlich funktionieren, wenn es im Code
aus <beaf70ea68dc165e...@reniar.leganeknalb.de> verwendet
wird. Das wäre dann eine Lösung innerhalb eines einzelnen Makros.
Rainer