Anzeige
Archiv - Navigation
1396to1400
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

Schleife einfügen?

Schleife einfügen?
22.12.2014 07:47:20
Nicole
Hallo zusammen,
habe ein Makro aufgezeichnet, bei welchem in Spalte F nach einer nicht leeren Zelle gesucht werden soll. Wird eine nicht leere Zelle gefunden, sollen bestimmt Schritte ausgeführt werden. Danach soll in Spalte F nach dem nächsten nichtleeren Feld gesucht werden, die gleichen Schritte ausgeführt werden.... und immer so weiter, so lange, bis in Spalte F nur noch leere Felder übrig sind. Dann soll das Ganze beendet werden.
Ich habe gegoogelt und weiss jetzt, dass man das mit einer Schleife lösen könnte. Also quasi If "Leere Zelle", dann "Diverse Schritte" sonst "Stop". Das habe ich auch selbst schon probiert, aber leider ohne Erfolg. Kann mir jemand helfen?
Hier mein Makro:
Columns("F:F").Select
Selection.Find(What:="*").Activate
ActiveCell.Offset(0, -1).Range("A1").Select
Selection.CurrentRegion.Select
Selection.Copy
Sheets.Add After:=Sheets(Sheets.Count)
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveSheet.Paste
ActiveSheet.Name = Range("F2").Value
Range("A1").Select
Sheets("Start").Select
Range("M7").Select
Application.CutCopyMode = False
Selection.Copy
Rows("2:2").Select
Application.CutCopyMode = False
Rows("2:2").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Schon mal danke für jegliche Hilfe.
Viele Grüße Nicole

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schleife einfügen?
22.12.2014 08:30:53
Hajo_Zi
Hallo Nicole,
Option Explicit
Public Sub Find_Methode()
Dim RaZelle        As Range
Dim StFundst       As String
Dim LoLetzte As Long
LoLetzte = IIf(IsEmpty(Cells(Rows.Count, 1)), Cells(Rows.Count, 1).End(xlUp).Row, Rows. _
Count)
Set RaZelle = Range("A1:A" & Rows.Count).Find("", , , xlPart, , xlNext)
If Not RaZelle Is Nothing Then
StFundst = RaZelle.Address
Do
MsgBox RaZelle.Address
' deine Aktionen mit rZelle.Offset(0,1)
Set RaZelle = Range("A1:A" & Rows.Count).FindNext(RaZelle)
If RaZelle.Row > LoLetzte Then Exit Do
Loop While Not RaZelle Is Nothing And RaZelle.Address  StFundst
End If
End Sub
Suchbereich anpassen auch bei LoLetzte.

Anzeige
AW: Schleife einfügen?
22.12.2014 09:02:14
Nicole
Hallo Hajo,
vielen Dank für deine Hilfe. Leider klappt es noch nicht so ganz. Das Makro sieht nun so aus:
Public Sub Find_Methode()
Dim RaZelle        As Range
Dim StFundst       As String
Dim LoLetzte As Long
LoLetzte = IIf(IsEmpty(Cells(Rows.Count, 1)), Cells(Rows.Count, 1).End(xlUp).Row, Rows. _
Count)
Set RaZelle = Range("A1:A" & Rows.Count).Find("", , , xlPart, , xlNext)
If Not RaZelle Is Nothing Then
StFundst = RaZelle.Address
Do
MsgBox RaZelle.Address
rZelle.Offset(0, -1).Range("A1").Select
Selection.CurrentRegion.Select
Selection.Copy
Sheets.Add After:=Sheets(Sheets.Count)
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveSheet.Paste
ActiveSheet.Name = Range("F2").Value
Range("A1").Select
Sheets("Start").Select
Range("M7").Select
Application.CutCopyMode = False
Selection.Copy
Rows("2:2").Select
Application.CutCopyMode = False
Rows("2:2").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Set RaZelle = Range("A1:A" & Rows.Count).FindNext(RaZelle)
If RaZelle.Row > LoLetzte Then Exit Do
Loop While Not RaZelle Is Nothing And RaZelle.Address  StFundst
End If
End Sub

Hoffe, ich habe meinen Befehl an der richtigen Stelle eingesetzt.
Bei MsgBox RaZelle.Address
kommt immer einen Box, mit der Information $a$1, die ich mit OK wegdrücken muss. Danach Laufzeitfehler 242:-)
Kann man auf eine solche Box nicht verzichten? Eigentlich wäre es mir am liebsten, wenn ich das Makro anstoße, und es bis zum Ende durchläuft, ohne, dass ich etwas machen muss.
LG
Nicole

Anzeige
AW: Schleife einfügen?
22.12.2014 09:09:04
Hajo_Zi
Du benutzt die Variable rZelle das sollte RaZelle lauten?
Der Code dürfte nicht laufen da Variable rZelle nicht definiert.
Select, Activate usw. ist in VBA zu 99,9% nicht notwendig.
Der Cursor ist kein Hund der überall rumgeführt werden muss.
Hinweise zu select usw. Hajo-Excel.de
Hinweise zu select usw. Online-Excel.de
Hinweise zu select usw. Online-Excel.de
Bei mir läuft mein Code, Deine Datei sehe ich nicht.
Gruß Hajo

Anzeige
AW: Schleife einfügen?
22.12.2014 17:14:41
Nicole
Ach so....
du hattest geschrieben:
' deine Aktionen mit rZelle.Offset(0,1)
dachte, das sollte so sein. Was sollte ich denn statt rZelle schreiben? RAZelle? Ich habe leider gar keine Ahnung von VBA und schäme mich ein bisschen, weil ich so dumm fragen muss:-(
LG
Nicole

Ja, das steht auch in Hajos PgmCode; 'rZelle' ...
22.12.2014 17:39:59
Luc:-?
…hingegen ist gar nicht deklariert, Nicole!
Allerdings kannst du statt RaZelle auch generell rZelle schreiben (inkl Deklarationsteil).
Gruß + FroWeihn, Luc :-?
Besser informiert mit …
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige