For next Schleife mit If
18.01.2005 22:24:37
Wolfgang
mit meinem Code möchte ich einen bestimmten Tabellenbereich (hier A1:F60 = Grundvorlage, kontrolliert kopieren und später verschieben, damit die Formelbezüge genau jeweils um 1 heruntergesetzt werden. So erhalte ich später die gewünschten Gruppierungen mit den jeweiligen Formelbezügen.
hier mein Code ohne Anmerkungen:
Dim x As Integer
Dim i As Integer
x = Worksheets("Mietwertermittlung").Cells(102, 47).Value
For i = 1 To 20
Worksheets("DDienstbarkeiten").Range("A1: f60").Copy
Cells(i, 20).Select
ActiveSheet.Paste
If Cells(i, 20) = 1 Then
msgbox ("Ich habe einen gefunden")
Application.CutCopyMode = False
Selection.Cut Destination:=Cells(i * 60 + 1, 1)
Else
End If
Next i
Zur Funktion meines Teilcodes führe ich aus:
'x steht für ein Kontrollwert, der das Ende der for-next-Schleife bedeutet
Dim x As Integer
'i ist der normale Schleifendurchlauf
Dim i As Integer
x = Worksheets("Mietwertermittlung").Cells(102, 47).Value
For i = 1 To 20
'es wird der Vorlagenbereich kopiert
Worksheets("DDienstbarkeiten").Range("A1: f60").Copy
'es wir um eins nach unten seitlich eingefügt
Cells(i, 20).Select
ActiveSheet.Paste
'so jetzt geht mein Problem los. Wenn der Wert 1 (ein Formelergebnis als Kontrolle. Der Wert 1 soll dafür Sorge tragen, dass der soeben kopierte Bereich wieder gelöscht wir, der Wert 2 soll das Ergebnis an den Zielort weiterreichen, die msgbox(als Programmierkontrolle löst korrekt aus).
If Cells(i, 20) = 1 Then
msgbox ("Ich habe einen gefunden")
'ohne die obige If-Abfrage funktioniert der Code von unten als Abschluss ohne Problem. Nur kommen jetzt alle Kopien anstelle der ausgesuchten.
Application.CutCopyMode = False
Selection.Cut Destination:=Cells(i * 60 + 1, 1)
'nun möchte ich hier ohne auslösendes Ereignis herauskommen
else
end if
Next i
'stattdessen wird nur ein falsches Ereignis an einem in der Spalte (20) übertragen.
Ich weiß momentan nicht mehr, wie ich das gewünschte Ereignis erhalten kann.
Mit freundlichen Grüßen
Wolfgang