- #1
B
Borranh
Neues Mitglied
Themenersteller
- Dabei seit
- 24.05.2005
- Beiträge
- 3
- Reaktionspunkte
- 0
Hallo
Die Überschrift trifft es leider nur halb, aber mehr fiel mir nich ein 8)
Folgendes Makro, welches per Linieneingabe ein Formblatt ausfüllt, funktioniert FAST perfekt. Aber leider nur fast. Der vorletzte Schritt Überspringe Dich bei der Auflistung der Umstiege selber funktioniert nur bei Linien, die NICHT aus einer Zahl bestehen (n123, U1 etc.). Leider haben wir auch Linien, die NUR aus einer Zahl bestehen. Wenn ich nun statt If linum = linie Then GoTo weiter ein If linum *1 = linie*1 Then GoTo weiter eingebe funktioniert es genau andersrum. Wie bekomme ich es hin, dass excel beide Fälle schafft?
Da ich ja beeindruckt bin von dem Fachwissen, was hier einige an den Tag legen hoffe ich, dass auch mein Problem gelöst werden kann.
Mit vielen Grüßen
L.
Sub füllen()
m = 9
l = 5
umstieg1 =
umstieg3 =
umstieg2 =
umstieg =
Sheets(mst).Select
'leermachen vor Neubeginn
Range(M9:M150).Select
ActiveWindow.ScrollRow = 1
Range(M9:M150,P9150).Select
Range(P9).Activate
Selection.ClearContents
linie = Cells(2, 2)
'Schreibe den Titel in die Zelle F2, die Haltestellen in die Spalte M, und die dazugehörenden Umstiege in die Spalte P, wenn 14 Haltestellen eingefügt sind mache eine neue Zeile (ebenso bei 28)
For x = 1 To 30000
If Sheets(Probeneu).Cells(x, 1) = linie Then
n = x
Cells(2, 6) = Sheets(Probeneu).Cells(x, 2)
n = n + 1
Do Until Sheets(Probeneu).Cells(n, 1) <> linie
Cells(m, 13) = Sheets(Probeneu).Cells(n, 2)
If Cells(m, 13) = dummy Then Cells(m, 13) =
Do Until Sheets(Probeneu).Cells(n, l) = Empty
If l = 19 Then
Cells(m, 16) = Trim(umstieg1)
umstieg1 =
m = m + 1
End If
If l = 33 Then
Cells(m, 16) = Trim(umstieg1)
umstieg1 =
m = m + 1
End If
If l = 47 Then
Cells(m, 16) = Trim(umstieg1)
umstieg1 =
m = m + 1
End If
' Wenn Du Dich selber findest überspringe Dich bei den Umstiegen
linum = Trim(Sheets(Probeneu).Cells(n, l))
If linum = linie Then GoTo weiter
umstieg = Sheets(Probeneu).Cells(n, l)
umstieg1 = umstieg1 & & umstieg
weiter:
l = l + 1
Loop
Cells(m, 16) = Trim(umstieg1)
n = n + 1
m = m + 1
l = 5
umstieg1 =
Loop
GoTo finis
End If
Next x
finis:
Beep
Beep
Beep
End Sub
Die Überschrift trifft es leider nur halb, aber mehr fiel mir nich ein 8)
Folgendes Makro, welches per Linieneingabe ein Formblatt ausfüllt, funktioniert FAST perfekt. Aber leider nur fast. Der vorletzte Schritt Überspringe Dich bei der Auflistung der Umstiege selber funktioniert nur bei Linien, die NICHT aus einer Zahl bestehen (n123, U1 etc.). Leider haben wir auch Linien, die NUR aus einer Zahl bestehen. Wenn ich nun statt If linum = linie Then GoTo weiter ein If linum *1 = linie*1 Then GoTo weiter eingebe funktioniert es genau andersrum. Wie bekomme ich es hin, dass excel beide Fälle schafft?
Da ich ja beeindruckt bin von dem Fachwissen, was hier einige an den Tag legen hoffe ich, dass auch mein Problem gelöst werden kann.
Mit vielen Grüßen
L.
Sub füllen()
m = 9
l = 5
umstieg1 =
umstieg3 =
umstieg2 =
umstieg =
Sheets(mst).Select
'leermachen vor Neubeginn
Range(M9:M150).Select
ActiveWindow.ScrollRow = 1
Range(M9:M150,P9150).Select
Range(P9).Activate
Selection.ClearContents
linie = Cells(2, 2)
'Schreibe den Titel in die Zelle F2, die Haltestellen in die Spalte M, und die dazugehörenden Umstiege in die Spalte P, wenn 14 Haltestellen eingefügt sind mache eine neue Zeile (ebenso bei 28)
For x = 1 To 30000
If Sheets(Probeneu).Cells(x, 1) = linie Then
n = x
Cells(2, 6) = Sheets(Probeneu).Cells(x, 2)
n = n + 1
Do Until Sheets(Probeneu).Cells(n, 1) <> linie
Cells(m, 13) = Sheets(Probeneu).Cells(n, 2)
If Cells(m, 13) = dummy Then Cells(m, 13) =
Do Until Sheets(Probeneu).Cells(n, l) = Empty
If l = 19 Then
Cells(m, 16) = Trim(umstieg1)
umstieg1 =
m = m + 1
End If
If l = 33 Then
Cells(m, 16) = Trim(umstieg1)
umstieg1 =
m = m + 1
End If
If l = 47 Then
Cells(m, 16) = Trim(umstieg1)
umstieg1 =
m = m + 1
End If
' Wenn Du Dich selber findest überspringe Dich bei den Umstiegen
linum = Trim(Sheets(Probeneu).Cells(n, l))
If linum = linie Then GoTo weiter
umstieg = Sheets(Probeneu).Cells(n, l)
umstieg1 = umstieg1 & & umstieg
weiter:
l = l + 1
Loop
Cells(m, 16) = Trim(umstieg1)
n = n + 1
m = m + 1
l = 5
umstieg1 =
Loop
GoTo finis
End If
Next x
finis:
Beep
Beep
Beep
End Sub