Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1328to1332
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 Schleifen zählen

Verschachtelte Schleifen zählen
23.09.2013 19:49:27
Golem
Hallo Excel-Fachleute,
ich habe folgendes Makro einer verschachtelten Schleife:
Sub Werte_einlesen()
'   Werte aus geschlossenen Dateien einlesen
Dim strVerzeichnis1 As String
Dim strVerzeichnis2 As String
Dim strTabellenblatt1 As String
Dim strTabellenblatt2 As String
Dim strTabellenblatt3 As String
Dim strBereich As String
Dim lAnzahl As String
Dim Start As Date
Dim Zeit As Date
Dim i1 As Long
Dim i2 As Long
Range("Zellbereich").ClearContents
Range("Zelle4").ClearContents
' Wenn das Jahr Dateiname und das Jahr "Zahlung des ET....." gleich,
' dann Werte einlesen, sonst Abbruch......
If Range("Zelle1")  Range("Zelle3") Then
MsgBox "Jahreszahl Ordner ist nicht " & vbCrLf & vbCrLf & _
"mit Jahreszahl Datei identisch !", vbInformation, _
"              Wichtiger Hinweis !"
Exit Sub
End If
If MsgBox("Sollen Werte aus Dateien eingelesen werden ?", vbYesNo + vbQuestion) =  _
vbYes Then
lAnzahl = InputBox("Bitte eine Zahl eingeben !", , 1)
'Bildschirmaktualisierung aus
Application.ScreenUpdating = False
'Prüfen ob eine Zahl eingegeben worden ist
If IsNumeric(lAnzahl) Then
For i1 = 1 To CLng(lAnzahl)
Cells(5, 15).Value = i1
For i2 = 1 To 7
strVerzeichnis1 = Range("Pfad2")
strVerzeichnis2 = "Whn " & i1
strTabellenblatt1 = ".xlsm]Zahlung "
strTabellenblatt2 = "Whn " & i1
strTabellenblatt3 = "'!"
strBereich = "A" & i2
'Wert schreiben
With ActiveWorkbook.Worksheets("Zusammenfassung").Cells(Range("A" & 13 + i1).Row, Range(" _
Spalte" & i2).Column)
'Adresse der auszulesenden Zelle
.Formula = strVerzeichnis1 & strVerzeichnis2 & strTabellenblatt1 & strTabellenblatt2 &  _
strTabellenblatt3 & strBereich
'In festen Wert umwandeln, um die Verknüpfung aufzuheben
.Value = .Value
End With
Next i2
Application.Wait Now + TimeSerial(0, 0, 2)
Next i1
MsgBox "Datenübertragung erfolgreich beendet!" & vbCr & vbCr & _
"   Bitte betätigen Sie den Schalter OK", vbExclamation, "            Herzlichen Glückwunsch!" _
End If
End If
'Bildschirmaktualisierung ein
Application.ScreenUpdating = True
End Sub
Mit der inneren Schleife dieses Makros ( i2 ), werden aus einem Tabellenblatt sieben einzelne Zellwerte ausgelesen und in ein aktives Tabellenblatt eingelesen.
Danach wird mit der äußeren Schleife ( i1 ) zum nächsten Tabellenblatt gegangen und aus den identischen Zellen weitere sieben Werte ausgelesen und
in das gleiche aktive Tabellenblatt eingelesen.
Der Wert für den Durchlauf der äußeren Schleife wird in einer Eingabebox vorgegeben und kann zwischen 1 bis 48 betragen.
Mit Cells(5, 15).Value = i1 wird die Anzahl der Gesamtdurchläufe der äußeren Schleife in Zelle O5 angezeigt.
Ich möchte aber, dass jeder einzelne Durchlauf der äußeren Schleife in Zelle O5 gezählt wird ( z.B. erster Durchlauf gleich 1, zweiter Durchlauf gleich 2 usw. ).
Nach vielen vergeblichen Versuchen frage ich Euch, die Excel-Fachleute, wie die einzelnen Durchläufe der äußeren Schleife gezählt werden können.
Im Voraus schon mal besten Dank!
Werner

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Schleifen zählen
23.09.2013 20:18:04
Erich
Hi Werner,
die Zelle O5 bekommt sehr wohl nacheinander die Werte 1, 2, 3, ... bis zur Anzahl Durchläufe.
Aber das wird nicht angezeigt - die Anzeige hast du ja mit "Application.ScreenUpdating = False" unterbunden.
Wenn du diese Anweisung rausnimmst und schnell genug guckst, siehst du vielleicht den Zählvorgang.
Fragt sich: Wozu?
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

AW: Schleifen zählen
23.09.2013 22:01:33
Golem
Hallo Erich,
einen schönen Dank für Deine Hilfe!
Als ich Deinen Text gelesen habe, da machte es "klick" bei mir. Dafür habe ich jetzt Stunden ausprobiert.
Ich versuche mich in VBA einzuarbeiten und habe schon ein Erfolgserlebnis, dass ich das Makro mit viel Mühe
erstellen konnte.
Die erste Version dieses Makros habe ich ohne Schleifen erstellt. Funktionierte auch einwandfrei.
Nach einiger Zeit habe ich den Versuch gewagt, mit verschachtelter Schleifen das Makro zu vereinfachen.
Hat auch funktioniert. Danach habe ich versucht, Zählschleifen zu verwenden. Einige einfache Zählschleifen habe ich ausprobiert
und sie fuktionierten auch. Nur in diesem Makro habe ich habe ich es nicht hinbekommen.
Dieses Zählen in der Zelle hat keinen praktischen Hintergrund, ich möchte an solche Übungen nur lernen.
Nochmals besten Dank für Deine Hilfe und einen schönen Abend!
Werner
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige