Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

zwei Schlaufen mit bedingter Ausführung

Forumthread: zwei Schlaufen mit bedingter Ausführung

zwei Schlaufen mit bedingter Ausführung
Peter
Guten Abend
Nachfolgender Code läuft, doch ich habe irgend ein strukturelles Problem. Ich trage in einem Bereich Werte ein.
Wenn in einer bestimmten Zelle nicht "JA" steht, darf kein Eintrag erfolgen, allfällige Einträge müssen in dieser Zeile gelöscht werden.
Mir ist nicht klar, wie ich vermeide, dass ich sowohl Then GoTo Weiter_MIT_LOESCHEN als auch Goto Weiter_OHNE_LOESCHEN brauche.
Wenn mir da jemand ein Tipp geben könnte, wäre das super.
Danke, Peter
Sub Eintragen()
Dim Bereich As Range, Feld As Range, qRngXX As Range
Dim QArea As Range, QCell As Range
Dim p$, f$, r$, n%, s$, m%, o%, z%, p_und_f$
Dim Anzahl$, ErsteZeile As Long, zNr As Long
Dim aktSheet$
aktSheet = ActiveSheet.Name
ErsteZeile = 5   'Erste Zeile in XXTab
n = Cells(65536, [RefZeile].Column).End(xlUp).Row
Set Bereich = Range(Cells(ErsteZeile, [XX01pfad].Column), Cells(n, [XX01pfad].Column))
Set qRngXX = Range("q_pf")
o = rErsteSpalte(qRngXX)
m = rLetzteSpalte(qRngXX)
z = [RefZeile].Row
Set QArea = Range(Cells(z, o), Cells(z, m))
Anzahl = 0
zNr = ErsteZeile
For Each Feld In Bereich
If UCase(Cells(zNr, [XX01PF_JA].Column))  "JA" Then GoTo Weiter_MIT_LOESCHEN
p = Cells(zNr, [XX01pfad].Column) & "\PF\" & [Jahr]
f = Cells(zNr, [XX01ak].Column) & "PF" & Right([Jahr], 2) & Right(aktSheet, 2) & ".xls"  ' _
Filename
s = Cells(zNr, [XX01Klasse].Column)  'Worksheet
For Each QCell In QArea
r = QCell.Value
Cells(Feld.Row, QCell.Column) = getvalue(p, f, s, r)
Next
Anzahl = Anzahl + 1
GoTo Weiter_OHNE_LOESCHEN
Weiter_MIT_LOESCHEN:
Range(Cells(zNr, o), Cells(zNr, m)) = ""
Weiter_OHNE_LOESCHEN:
zNr = zNr + 1
Next
End Sub

Anzeige

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

Betreff
Benutzer
Anzeige
ohne GOTO
16.11.2010 18:47:16
Erich
Hi Peter,
wenn ich das recht verstanden habe, sollte das so gehen:

For Each Feld In Bereich
If UCase(Cells(zNr, [XX01PF_JA].Column))  "JA" Then
Range(Cells(zNr, o), Cells(zNr, m)) = ""
Else
p = Cells(zNr, [XX01pfad].Column) & "\PF\" & [Jahr]
f = Cells(zNr, [XX01ak].Column) & "PF" & Right([Jahr], 2) & _
Right(aktSheet, 2) & ".xls"         ' Filename
s = Cells(zNr, [XX01Klasse].Column)    ' Worksheet
For Each QCell In QArea
r = QCell.Value
Cells(Feld.Row, QCell.Column) = getvalue(p, f, s, r)
Next
Anzahl = Anzahl + 1
zNr = zNr + 1
End If
Next
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: ohne GOTO
17.11.2010 07:51:59
Peter
Hallo Erich
Das hat mir geholfen, vielen Dank!
Ich musste nur das zu "If UCase" gehörende "End If"
vor die Zeilen
Anzahl = Anzahl + 1
zNr = zNr + 1
platzieren.
Gruss, Peter
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige