Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
704to708
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
704to708
704to708
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Sprung nach If Then , ist Next i nicht möglich?

Sprung nach If Then , ist Next i nicht möglich?
07.12.2005 08:36:39
urs
Guten Morgen zusammen
der untere Code ist nur ein AUSSCHNITT. Nach dem Then soll das Programm bei
"Next cCounter" weiter laufen. Wie stelle ich das an?
If Cells(iRow - 1, jCol).Value &gt "" Then Next j
Else:
c = Range.Cells(iRow, jCol).Value
d = 0
For cCounter = 1 To Len(c)
a = Mid(c, cCounter, 1)
For bCounter = 1 To Len(b)
If a = Mid(b, bCounter, 1) Then d = d + 1
End If
If d = 2 Then Next cCounter
Else:
Cells(iRow - 1, jCol).Value = a
Next cCounter
End If
Vielen Dank für jeglichen Tipp. Gruss urs

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sprung nach If Then , ist Next i nicht mögl
07.12.2005 10:23:55
Matthias
Hallo Urs,

If d <> 2 Then
Cells(iRow - 1, jCol).Value = a
End If
Next cCounter

Gruß Matthias
Sprungadresse? Wie lösen?
07.12.2005 11:17:40
urs
Hallo Matthias
Danke für Deinen Tipp. Ich habe aber noch weitere Sprünge zu bewältigen, bei denen ich noch keîne Lösung habe.
Ich suche eine generelle Lösung für solche Anwendungen ohne dabei die Zeilennummer als Sprungadresse benutzen zu müssen. Noch offene Sprungadressen:
If Cells(oRow, nCol).Value = "" Then Next n
If Cells(iRow - 1, jCol).Value &gt "" Then Next j
Ich setze nun den ganzen Code ein:
&ltpre&gt
Sub Only()
'*********************************************************************
'
'
'*********************************************************************
Dim d As Integer, i As Integer, j As Integer, m As Integer, n As Integer, o As Integer
Dim iRow As Integer, jCol As Integer, oRow As Integer, nCol As Integer
Dim b As String, c As String
oRow = 30
For m = 3 To 17 Step 7 ' mit m und n werden die einzelnen Blöcke angesprochen
oRow = oRow + 1
For n = 1 To 7 Step 3
If Cells(oRow, nCol).Value = "" Then Next n
Else:
b = Range.Cells(oRow, nCol).Value ' Addition aller Einzelfelder
For i = m + 0 To m + 4 Step 2 ' Mit i + j werden die einzelnen Felder
iRow = i ' angewählt
For j = n + 0 To n + 2 Step 1
jCol = j
If Cells(iRow - 1, jCol).Value &gt "" Then Next j
Else:
c = Range.Cells(iRow, jCol).Value 'c = Möglichkeiten im Einzelfeld
For cCounter = 1 To Len(c)
a = Mid(c, cCounter, 1)
d = 0
For bCounter = 1 To Len(b) 'b = Möglichkeiten aller Felder
If a = Mid(b, bCounter, 1) Then d = d + 1
End If
Next bCounter
If d = 1 Then Cells(iRow - 1, jCol).Value = a
End If
Next cCounter
End If
Next j
Next i
Next n
Next m
End Sub&lt/pre&gt
Habt Ihr, hast Du Matthias nun hier einen Rat?
Gruss urs
Anzeige
AW: Sprungadresse? Wie lösen?
07.12.2005 11:27:07
Matthias
Hallo Urs,
du setzt den If..Then-Befehl falsch ein:
z.B.

If a = Mid(b, bCounter, 1) Then d = d + 1
End If

also entwender:

If a = Mid(b, bCounter, 1) Then d = d + 1

oder:

If a = Mid(b, bCounter, 1) Then
d = d + 1
End If

Und du solltest im Code möglichst nie springen, sondern die If-Anweisung entsprechend gestalten:
Als Beispiel:

For i=1 to 100
If Cells(i, 1) <> "" Then
' dein Code
End If
Next i

Gruß Matthias
Anzeige
Richtiger Code
07.12.2005 12:11:49
urs
Hallo Matthias
Danke für Deine wertvollen Tipps. Ich habe Dein Wissen eingesetzt, die noch vorhandenen
Bugs korrigiert. Jetzt läuft die Sache.
Gruss urs
Hier der korrigierte Code:

Sub Only()
Dim d As Integer, i As Integer, j As Integer, m As Integer, n As Integer, o As Integer
Dim iRow As Integer, jCol As Integer, oRow As Integer, nCol As Integer
Dim b As String, c As String
oRow = 30
For m = 3 To 17 Step 7  '   mit m und n werden die einzelnen Blöcke angesprochen
oRow = oRow + 1
For n = 1 To 7 Step 3
nCol = n
If Cells(oRow, nCol).Value <> "" Then
b = Cells(oRow, nCol).Value   '   b= Addition aller Einzelfelder
For i = m + 0 To m + 4 Step 2   '   Mit i + j werden die einzelnen Felder
iRow = i                        '   angewählt
For j = n + 0 To n + 2 Step 1
jCol = j
If Cells(iRow - 1, jCol).Value = "" Then
c = Cells(iRow, jCol).Value   '  c = Möglichkeiten im Einzelfeld
For cCounter = 1 To Len(c)
a = Mid(c, cCounter, 1)
d = 0
For bCounter = 1 To Len(b)
If a = Mid(b, bCounter, 1) Then d = d + 1
Next bCounter
If d = 1 Then Cells(iRow - 1, jCol).Value = a
Next cCounter
End If
Next j
Next i
End If
Next n
Next m
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige