Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
904to908
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
904to908
904to908
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Ein Makro für alle Zeilen automatisch ausführen

Ein Makro für alle Zeilen automatisch ausführen
10.09.2007 16:27:04
Ingo
Hallo
Gibt es eine Möglichkeit, ein bestimmtes selbst erstelltes Makro für alle Zeilen einer Tabelle automatisch ausführen zu lassen?
Ich habe eine Excel-Tabelle mit z.B. 1000 Zeilen.
Und ich habe ein Makro, welches immer aus der gerade aktiven Zeile bestimmte Zellenwerte nimmt und diese in eine Textdatei schreibt.
Für jede Zeile wird eine eigene textdatei erstellt (Der Dateiname wird auch aus einem jeweiligen Zelleninhalt zusammengebaut)
Bisher aktiviere ich jede Zeile per Hand und führe dann immer das Makro aus, um meine gewünschten Textdateien zu erhalten.
Nun würde ich gerne, dass Excel im Grunde von alleine die erste Zeile nimmt (wenn ein Inhalt in Zelle 2 ist) und das Makro ausführt (und somit die zur Zeile gehörige Textdatei schreibt).
Dann soll er zur nächsten Zeile springen und dort wieder das Makro ausführen.
U.s.w.
Das soll dann soweit gemacht werden, bis zum ersten mal eine Zeile kommt, die in Zelle 2 keinen Wert mehr hat.
Dazu müsste ich doch irgendwie ne Art Schleife in ein Makro schreiben, oder?
Gruß
Ingo

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ein Makro für alle Zeilen automatisch ausführe
10.09.2007 16:35:36
Renee
Hi Ingo,
Zeig mal den Code von Deinem Makro.
GreetZ Renee

AW: Ein Makro für alle Zeilen automatisch ausführe
10.09.2007 16:42:00
Ingo
Hallo Renee
Ich bin nun nicht ganz sicher, ob ich richtig verstanden wurde.
Dieses Makro, welches ich bisher immer von Hand für bestimmte Zeilen ausführe, will ich auch in Zukunft noch so ausführen können (also einzeln für bestimmte Zeilen meiner Tabelle).
Nur manchmal soll es halt für alle Zeilen der Tabelle (über 1000) ausgeführt werden.
Und das möchte ich eben automatisieren.
Das Makro selber ist nur ein einfaches, welches aus bestimmten Zellen der gerade aktiven Zeile Werte entnimmt und diese in eine Textdatei schreibt.
Mittels: Print #iFile, "Blala: " & Cells(iRow, 3) & " - trallalla"
Reicht Dir das soweit an Infos?
Gruß
Ingo

Anzeige
AW: Ein Makro für alle Zeilen automatisch ausführe
10.09.2007 16:53:53
Renee
Hi Ingo,

For ix = 1 to 1000
Call DeinMakro
next ix


Renee

AW: Ein Makro für alle Zeilen automatisch ausführe
10.09.2007 16:55:50
Ingo
Hallo nochmal
Ich versuche, mein Anliegen nochmal anders auszudrücken.
Dieses Makro, welches da die Zellenwerte in Textdateien schreibt heist z.B. MKdruck.
Nun soll ein weiteres Makro folgendes sinngemäß machen:
For Zeile2 to Zeile[letze Zeile der Tabelle mit Inhalt in Zelle 2]
--Ausführen von MKdruck
Next
Klar, der Code ist natürlich Unsinn, aber vielleicht verdeutlicht das mein Anliegen :-)
Gruß
Ingo

AW: Ein Makro für alle Zeilen automatisch ausführe
10.09.2007 17:09:00
Renee
Hi Ingo,
Ich versuch es nochmal, dieser Code in das Klassemodul der Tabelle:

Sub IchWillMeinenCodeNichtOffenLegen()
Dim lX As Long
For lX = 2 To ActiveSheet.Range("B" & ActiveSheet.Rows.Count).End(xlUp).Row
MKDruck
Next lX
End Sub


Vermutlich macht Dein Code dann Unsinn, weil er nicht weiss wo was ist ...
Greetz Renee

Anzeige
AW: Ein Makro für alle Zeilen automatisch ausführe
10.09.2007 18:55:00
Ingo
Hallo nochmal
> IchWillMeinenCodeNichtOffenLegen :-))
Doch doch, kein Problem.
Ich hatte nur gedacht, dass wir uns vielleicht nur falsch verstanden hatten.
Hier mal der Code, der diese Textdateien schreibt:

Sub Neuer_Artikel()
Dim iT As Integer
Dim iFile As Integer
Dim iRow As Long
Dim iAnz As Integer
Dim i As Integer
Dim petFile As String
neuerArtikel.Show
If bolAbbruch Then Exit Sub
iFile = FreeFile
iRow = ActiveCell.Row
petFile = LCase(Cells(iRow, 2)) & ".shtml"
Open "D:\SPACEart\Bilder-Rename\" & petFile For Output As iFile
Print #iFile, "Blabla: " & Cells(iRow, 18) & " blabla"
Close iFile
End Sub


Ich habe mal alle Print-Zeilen entfernt bis auf eine, weil da sehr viele HTML-Tags enthalten sind, die sich hier im Forum nicht posten lassen (ohne alles zu maskieren).
Wenn ich nun Dein Makro folgendermaßen anwende:


Sub Test()
Dim lX As Long
For lX = 2 To 10
Neuer_Artikel
Next lX
End Sub


... wird mein Makro (Neuer_Artikel) zwar 8 mal ausgeführt, aber immer in der gleichen Zeile meiner Tabelle.
Was mache ich falsch?
Bin leider überfordert.
Gruß
Ingo

Anzeige
nochmal anders formuliert
10.09.2007 19:50:11
Ingo
Hehe ich schon wieder :-)
Es fällt mir etwas schwer, für mein Anliegen die richtigen Worte zu finden.
So dass man da eben auch durchsteigt :-)
Hier ein neuer Versuch:
Ich habe eine Excel-Tabelle mit z.B. 500 Zeilen.
Und ich habe ein Makro zB. "MKdruck"
Nun möchte ich gerne ein Marko machen, welches folgendes macht:
1.) Die erste Zeile meiner Tabelle aktivieren (so, wie wenn man mit der Maus auf die Zelle der Spalte B dieser Zeile klicken würde.)
2.) Das Makro "MKdruck" ausführen.
3.) Die zweite Zeile meiner tabelle aktivieren (so, wie wenn man mit der Maus auf die Zelle der Spalte B dieser Zeile klicken würde.)
4.) Wieder das Makro "MKdruck" ausführen.
u.s.w.
Das soll dan so lange weitergehen, bis die erste Zeile auftaucht, die in Spalte B keinen Wert mehr hat.
Dabei müsste es doch ziemlich egal sein, as dieses "MKdruck" überhaupt macht, oder?
da ich selber leider nur sehr bescheidene VBA-kenntnisse habe, würde ich mich riesig freuen, wenn Ihr mir dabei behilflich sein könntet
Gruß aus Münter
Ingo

Anzeige
AW: nochmal anders formuliert
10.09.2007 21:12:16
Renee
Hi Ingo,
Genau darum wollte ich von Anfang den Code sehen.
Soll den z.B. wirklich für 1000 Zeilen 1000 mal Deine Userform neuerArtikel aufgerufen werden ? Wohl kaum oder?
Dein Makro könnte so aussehen (ohne auf Dein bestehendes zuzugreifen).
Makro in ein Modul. Ggf. die erste Zeile mit dem richtigen Blattnamen anpassen.

Sub SoTutsVielleicht()
Const sTabelle = "Tabelle1"
Dim lX As Long
Dim iFile As Integer
Dim petFile As String
For lX = 2 To Sheets(sTabelle).Range("B" & Sheets(sTabelle).Rows.Count).End(xlUp).Row
petFile = LCase(Sheets(sTabelle).Cells(lX, 2)) & ".shtml"
Open "D:\SPACEart\Bilder-Rename\" & petFile For Output As iFile
Print #iFile, "Blabla: " & Sheets(sTabelle).Cells(lX, 18) & " blabla"
Close iFile
Next lX
End Sub


Das was Du wolltest, hätte ein endloses Geflacker und in der Tabelle Rumgehopse gegeben!
Greetz Renee

Anzeige
AW: nochmal anders formuliert
10.09.2007 23:02:59
Ingo
Hallo nochmal
Das klappt auch noch nicht so ganz ... sorry.
Ich habe hier mel mein komplettes Makro "Neuer_Artikel" hochgeladen:
https://spaceart.de/Sonstiges/Temp-Pics/Makro.txt
(weil ich nicht genau weis, wie ich hier den Code mit HTML-Tags posten kann)
Also dieses ganze Ding soll halt für alle Zeilen meiner Tabelle ausgeführt werden.
Aber ich brauche auch weiterhin noch die Möglichkeit, es einzeln auszuführen.
Wenn Du immer noch Lust hast, mir zu helfen, freue ich mich natürlich :-)
Gruß
Ingo

Anzeige
AW: nochmal anders formuliert
11.09.2007 07:34:00
Ingo
Hallo
Habs nun doch hinbekommen.
Gruß
Ingo

AW: nochmal anders formuliert
11.09.2007 09:18:09
Renee
Hi Ingo,
Ist ja super... selbst ist der Mann!
Übrigens kann Du hier so Source-Text einfügen:

Den Text makieren und anschliessend dies  Tags einfügen 


Userbild
Greetz Renee

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige