Registriert seit: 02.02.2017
Version(en): 2010
Hallo Kollegen,ich habe in Problem mit meinem Makro.Es hat immer funktioniert, jedoch ab heute nicht mehr.Die Fehlermeldung sagt, dass die Objektvariable nicht definiert worden ist. Ich habe schon einige Foren durchsucht, aber einfach keine passende Lösung gefunden.bitte um Hilfe diesbezüglich.hier mal ein Ausschnitt aus dem Code: Code: Range("A2").Select Set rngSucheNach = Worksheets("SAVE").Cells(2, 4) 'D2' Cells.Find(What:=rngSucheNach, After:=ActiveCell, LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:=False, SearchFormat:=False).Activate ActiveCell.Offset(-1, 0).Rows("1:1").EntireRow.Select Range(Selection, Selection.End(xlUp)).Select Application.CutCopyMode = False Selection.Delete Shift:=xlUp Range("E4").Select Sheets("SAVE").Select Rows("1:1").Select Selection.Copy Sheets("Eröffnete POs Vortag").Select Rows("1:1").Select Selection.Insert Shift:=xlDown Range("K10").Select
Vielen DAnk im Voraus.LGLukas
Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo Lukas, Du verwendest jetzt Option Explicit und daher muss jede Variable deklariert werden. Zeile eingefügt ohne das unnötige Select-Gedöns zu entfernen. PHP-Code: Sub x()
Dim rngSucheNach As Range
Range("A2").Select Set rngSucheNach = Worksheets("SAVE").Cells(2, 4) 'D2' Cells.Find(What:=rngSucheNach, After:=ActiveCell, LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:=False, SearchFormat:=False).Activate ActiveCell.Offset(-1, 0).Rows("1:1").EntireRow.Select Range(Selection, Selection.End(xlUp)).Select Application.CutCopyMode = False Selection.Delete Shift:=xlUp Range("E4").Select Sheets("SAVE").Select Rows("1:1").Select Selection.Copy Sheets("Eröffnete POs Vortag").Select Rows("1:1").Select Selection.Insert Shift:=xlDown Range("K10").Select
End Sub
Gruß Stefan Win 10 / Office 2016
Registriert seit: 02.02.2017
Version(en): 2010
Hallo, danke für die rasche Antwort, habe das nun hinzugefügt, bekomme laut dem Debugger ein Problem bei Code: Set rngSucheNach = Worksheets("SAVE").Cells(2, 4) 'D2' Cells.Find(What:=rngSucheNach, After:=ActiveCell, LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:=False, SearchFormat:=False).Activate
Ich weiß nicht, woran das liegen könnte!? Bitte nochmals um Unterstützung. Liebe Grüße Lukas
Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo Lukas, habe es mal geändert. Sollte es nicht funktionieren, solltest Du die Datei hier hochladen. Code: Sub x()
Dim strSucheNach As String Dim rngSucheNach As Range
Range("A2").Select strSucheNach = Worksheets("SAVE").Cells(2, 4) 'D2' Set rngSucheNach = Cells.Find(What:=strSucheNach, After:=ActiveCell, LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:=False, SearchFormat:=False) If Not rngSucheNach Is Nothing Then rngSucheNach.Select 'eingefügt, weil ich nicht weiß, was du mit der nächsten Codezeile beabsichtigist ActiveCell.Offset(-1, 0).Rows("1:1").EntireRow.Select Range(Selection, Selection.End(xlUp)).Select Application.CutCopyMode = False Selection.Delete Shift:=xlUp Range("E4").Select Sheets("SAVE").Rows("1:1").Copy Sheets("Eröffnete POs Vortag").Rows("1:1").Insert Shift:=xlDown End If End Sub
Gruß Stefan Win 10 / Office 2016
Registriert seit: 14.04.2014
Version(en): 2003, 2007
02.02.2017, 17:13
(Dieser Beitrag wurde zuletzt bearbeitet: 02.02.2017, 17:13 von atilla.)
Hallo, Das ist nicht ganz sauber so. Der Code, wenn esr funktionieren würde, würde , sobald kein Fund da ist immer einen Fehler verursachen. Ich habe noch eine Variable hinzugefügt und etwas erweitert. So wie Stefan auch, habe ich aber nicht auf die Selects geschaut. Code: Sub x()
Dim rngSucheNach As Range Dim strgSuch As String strgSuch = Worksheets("SAVE").Cells(2, 4) Range("A2").Select Set rngSucheNach = Cells.Find(What:=strgSuch, After:=ActiveCell, LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:=False, SearchFormat:=False) If Not rngSucheNach Is Nothing Then rngSucheNach.Activate ActiveCell.Offset(-1, 0).Rows("1:1").EntireRow.Select Range(Selection, Selection.End(xlUp)).Select Application.CutCopyMode = False Selection.Delete Shift:=xlUp Range("E4").Select Sheets("SAVE").Select Rows("1:1").Select Selection.Copy Sheets("Eröffnete POs Vortag").Select Rows("1:1").Select Selection.Insert Shift:=xlDown Range("K10").Select Else MsgBox "Suche war erfolglos :-( " End If End Sub
Hi Stefan, weißt Du warum Du diesmal schneller warst? Nur weil ich noch eine MsgBox eingebaut und darin diese schöne Gesicht gezeichnet habe. Ohne die Zeichnung wäre ich auch schneller gewesen. :19:
Gruß Atilla
Registriert seit: 02.02.2017
Version(en): 2010
Hallo Kollegen, vielen Dank für Eure Antworten, ich habe es nun mit dem Code Code: Dim rngSucheGefunden As Range '...
Set rngSucheNach = Worksheets("SAVE").Cells(2, 4) 'D2' Set rngSucheGefunden = Cells.Find(What:=rngSucheNach, After:=ActiveCell, LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:=False, SearchFormat:=False) If Not (rngSucheGefunden Is Nothing) Then rngSucheGefunden.Activate Else MsgBox "Wert (" & rngSuchNach.Value & ") nicht gefunden!" End If
Lösen können. Es kam dann noch ein Problem auf, aber ich habe einfach das Ende der If-Schlife weiter unten gesetzt und siehe da es funktioniert auf einmal einwandfrei! Danke nochmal!
|