Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1444to1448
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

Schleife

Schleife
10.09.2015 13:07:42
Manuel
Hallo liebe VBA-Profis,
ich bräuchte bitte eure Hilfe und habe folgendes Problem:
Ich habe in Zelle A1-A3 eine Liste von verschiedenen Begriffen. Ich versuche schon die ganze Zeit eine Schleife zu bauen die wie folgt funktionieren soll:
1. Trage den Wert von A2 in Zelle B1 ein und starte Makro XY (mit "Call-Funktion")
2. Trage den Wert von A2 in Zelle B1 ein und starte Makro XY (mit "Call-Funktion")
und das so oft wiederholen bis kein Wert mehr in der Liste der Spalte A:A zu finden ist.
Hoffe ich konnte das verständlich erklären.
Vielen Dank im Voraus und schönen Tag noch!!
Manuel

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schleife
10.09.2015 13:34:33
UweD
Hallo
macht nur dann Sinn, wenn das Makro xy auch was an A2 verändert...
so..?
Sub Makro1()
Dim i As Double
Dim LR As Double
With ActiveSheet
LR = .Cells(Rows.Count, 1).End(xlUp).Row 'letzte Zeile der Spalte 1=A
For i = 1 To LR
.Range("B1") = .Range("A2")
Call Makroxyz
Next
End With
End Sub
Gruß UweD

AW: Schleife
10.09.2015 13:39:01
Manuel
Hallo!
Super danke für die schnelle Antwort! Ups mir ist ein Fehler unterlaufen. Es soll natürlich so heißen:
1. Trage den Wert von A2 in Zelle B1 ein und starte Makro XY (mit "Call-Funktion")
2. Trage den Wert von A3 in Zelle B1 ein und starte Makro XY (mit "Call-Funktion")
3. dann A4...
4. dann A5...
bis keine Wert mehr in A:A zu finden ist.

Anzeige
AW: Schleife
10.09.2015 13:51:05
Rudi
Hallo,
dann
.Range("B1") = .Cells(i, 1)
Gruß
Rudi

AW: Schleife
10.09.2015 13:57:41
UweD
Dann so...

For i = 2 To LR
.Range("B1") = .Range("A"& i)
Gruß UweD

AW: Schleife
11.09.2015 06:57:29
Manuel
Hallo zusammen,
vielen lieben Dank für eure Hilfe!! Die Schleife funktioniert so wunderbar. Ich habe sie jetzt ein wenig abgeändert und habe versucht ein "Speichern-Makro" einzubauen.
Problem: Der Code funktioniert zwar, aber irgendwie ist er zu "langsam". Sprich es speichert mir nur 2 Dateien statt 6. Ich denke ihr seht im Code was ich vor habe:
Sub AutoSpeichern()
Dim i As Double
Dim LR As Double
'Variablen für den Pfad
pfad = "C:\Users\Manuel\Desktop\Test" & "\" & Worksheets("Tabelle1").Cells(1, 2) & "\"
ar = Worksheets("Tabelle1").Cells(1, 2) & " - Mappe" & ".pdf"
af = Worksheets("Tabelle1").Cells(1, 2) & " - Arbeitsblatt" & ".pdf"
LR = Worksheets("Tabelle2").Cells(Rows.Count, 1).End(xlUp).Row 'letzte Zeile der Spalte 1=A
With ActiveWorkbook
For i = 1 To LR
Worksheets("Tabelle1").Range("B1") = Worksheets("Tabelle2").Range("A" & i)
'Arbeitsmappe speichern
ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=pfad & ar, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False
'Arbeitsblatt speichern
Worksheets("Tabelle3").ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=pfad & af, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False
Next
End With
End Sub
In A1 steht Alpha, in A2 steht Beta, in A3 steht Gamma. Der Code speichert mir aber nur eine der Variablen.
Habt ihr eine Lösung oder einen Tipp für mich? :)
PS: Das Speichern-Makro alleine funktioniert wunderbar.
LG Manuel

Anzeige
offen
11.09.2015 09:39:44
UweD

Logikfehler
12.09.2015 13:08:54
Michael
Hi zusammen,
in der Schleife ist ein logischer Fehler: die Dateinamen werden bereits ermittelt, *bevor* die Werte in die entsprechende Zelle geschrieben wird - Excel speicher tatsächlich 3x2 Mal, aber halt immer mit den gleichen 2 Namen.
Abhilfe (ungetestet):
Sub AutoSpeichern()
Dim i As Double
Dim LR As Double
'Variablen für den Pfad
pfad = "C:\Users\Manuel\Desktop\Test" & "\" & Worksheets("Tabelle1").Cells(1, 2) & "\"
'  ar = Worksheets("Tabelle1").Cells(1, 2) & " - Mappe" & ".pdf"
'  af = Worksheets("Tabelle1").Cells(1, 2) & " - Arbeitsblatt" & ".pdf"
LR = Worksheets("Tabelle2").Cells(Rows.Count, 1).End(xlUp).Row 'letzte Zeile der Spalte 1=A
With ActiveWorkbook
For i = 1 To LR
Worksheets("Tabelle1").Range("B1") = Worksheets("Tabelle2").Range("A" & i)
ar = Worksheets("Tabelle1").Cells(1, 2) & " - Mappe" & ".pdf"
af = Worksheets("Tabelle1").Cells(1, 2) & " - Arbeitsblatt" & ".pdf"
'Arbeitsmappe speichern
ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=pfad & ar, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False
'Arbeitsblatt speichern
Worksheets("Tabelle3").ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=pfad & af, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False
Next
End With
End Sub
Schöne Grüße,
Michael
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige