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

verschachtelte for Schleifen

verschachtelte for Schleifen
21.12.2020 17:48:29
Thorsten
Hallo zusammen,
ich habe zwei for Schleifen mit denen ich für jedes Tabellenblatt die Anzahl Zeilen durchlaufen möchte und Daten in ein Formular einfügen möchte. Dieses wird dann als PDF gespeichert.
Leider funktioniert es nur für das erste Tabellenblatt und für den ersten Eintrag des zweiten Tabellenblattes...dann erfolgt ein Abbruch.
Keine Ahnung wo der Fehler liegt...
Das ist der Code...

Sub Commandbutton1_click()
Dim j As Integer        'j = Zeilennummer, fängt bei 6 an
Dim i As Integer
Dim Spalte As Integer
Sheets("Tabelle2").Select
Range("A6").Select      'Selektiert die Zelle A6, um von dort zu beginnen
Spalte = ActiveCell.Column      'Der Wert der Variable 'Spalte' wird auf die aktuelle Zellen- _
Reihe festgelegt
Anzahl = ActiveWorkbook.Worksheets.Count
Ende = Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To Anzahl
For j = 6 To Ende      'Wiederhole während Zelle nicht leer ist
Sheets("Tabelle1").Range("U11").Value = Sheets("Tabelle" & i).Range("A6").Value   'Kopiere   _
_
_
_
die Straße
Sheets("Tabelle1").Range("AN13").Value = Sheets("Tabelle" & i).Range("B" & j).Value      ' _
Kopiere den Geschoss Lage Haus
Sheets("Tabelle1").Range("U13").Value = Sheets("Tabelle" & i).Range("G1").Value      ' _
Kopiere PLZ
Sheets("Tabelle1").Range("Y13").Value = Sheets("Tabelle" & i).Range("H1").Value      ' _
Kopiere Ort
Sheets("Tabelle1").Select        'Aktiviert die Tabelle 1 (für drucken).
strFilename = "/Volumes/Netec/03 Scanner/Fertigmeldung zur Inbetriebsetzung_" & Sheets(" _
Tabelle" & i).Range("A6") & "_WE_" & Sheets("Tabelle" & i).Range("C" & j) & ".pdf"
ThisWorkbook.Sheets("Tabelle1").ExportAsFixedFormat Type:=xlTypePDF, _
FileName:=strFilename, Quality:=xlQualityStandard, _
IncludeDocProperties:=False, IgnorePrintAreas:=False, _
OpenAfterPublish:=False 'Tabelle1 als pdf
Sheets("Tabelle" & i).Select   'Aktiviert die Tabelle i um mit dem Kopiervorgang  _
fortzufahren
Range("A6").Select        'Selektiert Zelle A & j (j ist anfangs 8)
Next j
Next i
End Sub

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: verschachtelte for Schleifen
21.12.2020 18:23:48
Oberschlumpf
Hi Thorsten
zeigst du uns bitte per Upload auch die Bsp-Datei mit Bsp-Daten und deinem Code?
Ciao
Thorsten
AW: verschachtelte for Schleifen
22.12.2020 00:14:11
Thorsten
Hi Thorsten,
der Upload funktioniert irgendwie nicht. Ich versuche noch einmal etwas besser das Problem zu beschreiben. Es gibt einen CommandButton in Tabelle2. Beim betätigen wählt das Makro die Spalte A aus und danach die Zeile 6. Aus dieser Zeile werden die Daten aus A6...B6 usw. in die passenden Felder in Tabelle1 übertragen und dann als PDF abgespeichert. Danach das Gleiche für A7...B7 ...usw. bis zur ersten leeren Zeile in Tabelle2. Das Hochzählen A6..A7 erfolgt über "j". Wenn Tabelle2 erledigt ist, soll der Sprung zur Tabelle3 erfolgen. Das erfolgt über "i". Dort wieder die gleiche Prozedur...A6...B6...usw. Beim Sprung von Tabelle3 A6...B6 zu A7...B7 gibt es einen Laufzeitfehler "400".
Anzeige
AW: verschachtelte for Schleifen
22.12.2020 00:51:05
ralf_b
Doch der funktioniert wenn man die Größenbeschränkung und die Dateiauswahloption beachtet.
AW: verschachtelte for Schleifen
22.12.2020 06:33:07
onur
Heiisen ALLE Nlätter WIRKLICH "Tabelle1", "Tabelle2" usw OHNE Leerzeichen vor, nach oder dawischen ?
Nicht z.B "Tabelle 1" oder " Tabelle1" oder "Tabelle1 "?
AW: verschachtelte for Schleifen
22.12.2020 07:43:00
Thorsten
Ja...die Tabellen heißen so. Der Code funktioniert für die "Tabelle2" super...und für die Zeile "A6" in "Tabelle3"...aber dann geht die Schleife nicht weiter.
AW: verschachtelte for Schleifen
22.12.2020 07:44:10
onur
Poste die datei.
AW: verschachtelte for Schleifen
22.12.2020 07:44:11
onur
Poste die datei.
AW: verschachtelte for Schleifen
22.12.2020 07:50:39
Thorsten
wie ich schon geschrieben habe funktioniert der upload nicht...ich kann die Excel Datei nicht auswählen, egal wo sie gespeichert ist. Die Größe sind auch nur 69kB...keine Ahnung woran es liegt.
Anzeige
AW: verschachtelte for Schleifen
22.12.2020 07:51:29
onur
Dropbox.
AW: verschachtelte for Schleifen
22.12.2020 08:25:31
thorsten
Userbild
Screenshot Tabelle1
AW: verschachtelte for Schleifen
22.12.2020 08:27:36
thorsten
Userbild
Shreenshot Tabelle2
AW: verschachtelte for Schleifen
22.12.2020 08:28:51
thorsten
Userbild
Screenshot Tabelle3
AW: verschachtelte for Schleifen
22.12.2020 09:04:42
Thorsten
Ich habe den Fehler gefunden....
so sieht der Code jetzt aus...
Sub Commandbutton1_click()
Dim j As Integer        'j = Zeilennummer, fängt bei 6 an
Dim i As Integer
Dim Spalte As Integer
Sheets("Tabelle2").Select
Range("A6").Select      'Selektiert die Zelle A6, um von dort zu beginnen
Spalte = ActiveCell.Column      'Der Wert der Variable 'Spalte' wird auf die aktuelle Zellen- _
Reihe festgelegt
Anzahl = ActiveWorkbook.Worksheets.Count
Ende = Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To Anzahl
For j = 6 To Ende      'Wiederhole während Zelle nicht leer ist
Sheets("Tabelle1").Range("U11").Value = Sheets("Tabelle" & i).Range("A6").Value   'Kopiere  _
die Straße
Sheets("Tabelle1").Range("AN13").Value = Sheets("Tabelle" & i).Range("B" & j).Value      ' _
Kopiere den Geschoss Lage Haus
Sheets("Tabelle1").Range("U13").Value = Sheets("Tabelle" & i).Range("G1").Value      ' _
Kopiere PLZ
Sheets("Tabelle1").Range("Y13").Value = Sheets("Tabelle" & i).Range("H1").Value      ' _
Kopiere Ort
Sheets("Tabelle1").Select        'Aktiviert die Tabelle 1 (für drucken).
strFilename = "/Volumes/Netec/03 Scanner/Fertigmeldung zur Inbetriebsetzung_" & Sheets(" _
Tabelle" & i).Range("A6") & "_WE_" & Sheets("Tabelle" & i).Range("C" & j) & ".pdf"
ThisWorkbook.Sheets("Tabelle1").ExportAsFixedFormat Type:=xlTypePDF, _
FileName:=strFilename, Quality:=xlQualityStandard, _
IncludeDocProperties:=False, IgnorePrintAreas:=False, _
OpenAfterPublish:=False 'Tabelle1 als pdf
Sheets("Tabelle2").Select   'Aktiviert die Tabelle i um mit dem Kopiervorgang fortzufahren
Range("A6").Select        'Selektiert Zelle A & j (j ist anfangs 8)
Next j
Next i
End Sub

Anzeige
AW: verschachtelte for Schleifen
22.12.2020 11:31:28
ralf_b
versuch mal den. bei mir läuft er durch und ist später viel einfacher zu lesen.
und da wird nichts selektiert. Unnötige Variable entfernt, da du die Zellen sowieso fast ausschließlich hardcodiert hast. Nur den Pfad mußt du noch an deine Umgebung anpassen.
Sub Commandbutton1_click()
Dim j As Integer        'j = Zeilennummer, fängt bei 6 an
Dim i As Integer
Dim WS As Worksheet
Application.ScreenUpdating = False
For i = 2 To ActiveWorkbook.Worksheets.Count
Set WS = Sheets("Tabelle" & i)
With Sheets("Tabelle1")
For j = 6 To WS.Cells(Rows.Count, 1).End(xlUp).Row      'läuft bis zur letzen belegten  _
zeile
.Range("U11").Value = WS.Range("A6").Value   'Kopiere die Stra§e
.Range("AN13").Value = WS.Range("B" & j).Value      'Kopiere den Geschoss Lage Haus
.Range("U13").Value = WS.Range("G1").Value      'Kopiere PLZ
.Range("Y13").Value = WS.Range("H1").Value      'Kopiere Ort
strFilename = "F:\excel\Fertigmeldung zur Inbetriebsetzung_" _
& WS.Range("A6") _
& "_WE_" & WS.Range("C" & j) _
& ".pdf"
' strFilename = "/Volumes/Netec/03 Scanner/Fertigmeldung zur Inbetriebsetzung_" _
& ws.Range("A6") _
& "_WE_" & ws.Range("C" & j) _
& ".pdf"
.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=strFilename, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=False, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False                'Tabelle1 als pdf
Next j
End With
Next i
Application.ScreenUpdating = True
Set WS = Nothing
End Sub

Anzeige
AW: verschachtelte for Schleifen
21.12.2020 18:23:55
ralf_b
Hallo,
der Fehler liegt vermutlich am selectieren.
aber so ohne die Daten dazu zu sehen.......
Sind die Tabellennamen tatsächlich die Standardnamen?
hier mal ein versuch
Sub Commandbutton1_click()
Dim j As Long, i As Long       'j = Zeilennummer, fängt bei 6 an
Dim lSpalte As Long, lZeile As Long
Dim ws As Worksheet
lSpalte = 1  ' "A"      'Der Wert der Variable 'Spalte' wird auf die aktuelle Zellen- Reihe  _
festgelegt
lZeile = 6
Ende = Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To ActiveWorkbook.Worksheets.Count
Set ws = Worksheets("Tabelle" & i)
For j = lZeile To ws.Cells(Rows.Count, Spalte).End(xlUp).Row    'Wiederhole während Zelle  _
nicht leer ist
With Sheets("Tabelle1")
.Range("U11").Value = ws.Range("A6").Value       'Kopiere die Straße
.Range("AN13").Value = ws.Range("B" & j).Value   'Kopiere den Geschoss Lage Haus
.Range("U13").Value = ws.Range("G1").Value       ' Kopiere PLZ
.Range("Y13").Value = ws.Range("H1").Value       ' Kopiere Ort
strFilename = "/Volumes/Netec/03 Scanner/Fertigmeldung zur Inbetriebsetzung_" _
& ws.Range("A6") & "_WE_" & ws.Range("C" & j) & ".pdf"
.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=strFilename, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=False, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False 'Tabelle1 als pdf
End With
Next j
Next i
set ws = nothing
End Sub

Anzeige
AW: verschachtelte for Schleifen
21.12.2020 18:33:44
onur
"dann erfolgt ein Abbruch" - geht auch was PRÄZISER?

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige