Objektvariable/With-Blockvariable nicht festgelegt

Bild

Betrifft: Objektvariable/With-Blockvariable nicht festgelegt
von: tom
Geschrieben am: 19.03.2005 14:46:07
Hallo Freunde,
bekomme o.g. Fehlermeldung.
Ich bastele gerade an einem Sortieren-Makro, das so ausschaut.


Sub Daten_sortieren()
Call ScreenAus
Range("A1").Select
Name1:
    Columns("A:A").Select
    Selection.Find(What:="Name", After:=ActiveCell, LookIn:=xlFormulas, _
    LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, _
    MatchCase:=False, SearchFormat:=False).Activate
      ' Wenn "Name" nicht gefunden, dann gehe zur Sprungmarke "Company1"
      ' ansonsten gehe zur Sprungmarke "Name2":
     If Selection.Find(What:="Name", After:=ActiveCell, LookIn:=xlFormulas, _
        LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False) Is Nothing Then
     GoTo Company1
     Else
     GoTo Name2
     End If
Name2:
    ActiveCell.ClearContents
     ' 2 Zellen nach unten springen:
    ActiveCell.Offset(3, 0).Select
    Selection.Copy
     ' In nächste freie Zelle der Spalte D springen:
    Sheets("Nokia").Cells(Rows.Count, 4).End(xlUp)(2, 1).Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    GoTo Name1
'
'
Company1:
    Columns("A:A").Select
    Selection.Find(What:="Company", After:=ActiveCell, LookIn:=xlFormulas, _
        LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False).Activate
     If Selection.Find(What:="Company", After:=ActiveCell, LookIn:=xlFormulas, _
        LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False) Is Nothing Then
     GoTo JobTitle1
     Else:
     GoTo Company2
     End If
Company2:
    ActiveCell.ClearContents
    ActiveCell.Offset(3, 0).Select
    Selection.Copy
    Sheets("Nokia").Cells(Rows.Count, 9).End(xlUp)(2, 1).Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    GoTo Company1
'
'
JobTitle1:
Range("A1").Select
Call ScreenAn
End Sub

Wieso bekomme ich die Fehlermeldung. Welche Variable habe ich nicht
festgelegt?
Vielen Dank für Eure Zeit,
tom
Bild

Betrifft: AW: Objektvariable/With-Blockvariable nicht festge
von: Ramses
Geschrieben am: 19.03.2005 15:00:31
Hallo
Korrekterweise muss es so heissen.
Die Excel-Fehlermeldung ist daher etwas irreführend
Option Explicit

Sub Daten_sortieren()
Call ScreenAus
Range("A1").Select
Name1:
    Columns("A:A").Select
  ' Wenn "Name" nicht gefunden, dann gehe zur Sprungmarke "Company1"
      ' ansonsten gehe zur Sprungmarke "Name2":
     If Selection.Find(What:="Name", After:=ActiveCell, LookIn:=xlFormulas, _
        LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False) Is Nothing Then
     GoTo Company1
     Else
     GoTo Name2
     End If
Name2:
    ActiveCell.ClearContents
     ' 2 Zellen nach unten springen:
    ActiveCell.Offset(3, 0).Select
    Selection.Copy
     ' In nächste freie Zelle der Spalte D springen:
    Sheets("Nokia").Cells(Rows.Count, 4).End(xlUp)(2, 1).Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    GoTo Name1
'
'
Company1:
    Columns("A:A").Select
     If Selection.Find(What:="Company", After:=ActiveCell, LookIn:=xlFormulas, _
        LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False) Is Nothing Then
     GoTo JobTitle1
     Else:
     GoTo Company2
     End If
Company2:
    ActiveCell.ClearContents
    ActiveCell.Offset(3, 0).Select
    Selection.Copy
    Sheets("Nokia").Cells(Rows.Count, 9).End(xlUp)(2, 1).Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    GoTo Company1
'
'
JobTitle1:
Range("A1").Select
Call ScreenAn
End Sub

Gruss Rainer
Bild

Betrifft: AW: Objektvariable/With-Blockvariable nicht festge
von: tom
Geschrieben am: 19.03.2005 16:36:10
Hallo Rainer,
vielen Dank für Deine Hilfe. Indem ich "Option Explicit" hinzufügte, hängt sich
die Datei (nicht ganz Excel) weg. War einen Versuch wert.
Nepumuk wird wohl recht haben, wenn er sagt, daß ich
Selection.Find(What:="Name", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
nicht in einem Makro verwenden kann.
Herzliche Grüße,
tom
Bild

Betrifft: AW: Objektvariable/With-Blockvariable nicht festge
von: Ramses
Geschrieben am: 19.03.2005 18:11:45
Hallo
"... hängt sich die Datei (nicht ganz Excel) weg..."
Dann solltest du mal neu installieren, denn dass ist nur eine Sicherheitsanweisung, damit alle Variablen deklariert werden müssen. Sonst nichts.
"... Nepumuk wird wohl recht haben, wenn er sagt, daß ich ... nicht in einem Makro verwenden kann...."
Du bist ein kleiner Scherzbold,.. gelle :-)
Hast du dir meinen Code eigentlich mal angeschaut :-((
Wohl eher nicht, und ausprobiert auch nicht.
Das was Nepumuk dir vorgeschlagen hat, habe ich mit dem Code bereits gemacht.
Gruss Rainer
Bild

Betrifft: AW: Objektvariable/With-Blockvariable nicht festge
von: tom
Geschrieben am: 19.03.2005 19:03:33
Hallo Rainer,
doch doch, ich hatte mir den Code schon angeschaut und obwohl ich, weil noch
relativer Anfänger, die Änderungen nicht entdeckt habe, habe ich Deinen gesamten
Code in die Zwischenablage kopiert und in Excel eingefügt. Dann hängte sich die
Datei weg. Ich mache es nochmal und ich schaue noch mal genau hin.
Vielen Dank für Deine Mühe!
tom
Bild

Betrifft: AW: Objektvariable/With-Blockvariable nicht festgelegt
von: Nepumuk
Geschrieben am: 19.03.2005 15:03:13
Hallo Tom,
wenn du das:
Selection.Find(What:="Name", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
in einem Makro verwendest und der Begriff wird nicht gefunden, dann erzeugst du diese Fehlermeldung. Das ganze stammt aus einem aufgezeichneten Makro und kann so nicht verwendet werden. Frag mal deinen Office-Assistenten nach der "Find-Methode". Da ist ein Beispiel dabei.
Gruß
Nepumuk
Bild

Betrifft: AW: Objektvariable/With-Blockvariable nicht festgelegt
von: tom
Geschrieben am: 19.03.2005 16:42:51
Hallo Nepumuk,
vielen Dank für Deine Hilfe. Ja, Du hast natürlich Recht: Der fehlerverursachende
Passus ist tatsächlich mit dem Makrorekorder entstanden. Ich bin halt ein echter
Anfänger.
Die Excel-Hilfe habe ich weisungsgemäß bemüht und da folgendes gefunden:
=FINDEN("M";A2)
Ist es das, was Du meintest?
Wenn ja: Die Formel sagt mir, an welcher Stelle sich das M
in der Zelle A2 befindet, was nicht das ist, was ich brauche.
Ich brauche einen Befehl, der dazu führt, das ein Text in einer Zelle
aufgespürt wird und die Zelle dann angewählt ist.
Wenn nein: Was kann ich denn für einen Befehl verwenden?
Herzliche Grüße,
tom
Bild

Betrifft: AW: Objektvariable/With-Blockvariable nicht festgelegt
von: Nepumuk
Geschrieben am: 19.03.2005 16:54:19
Hi Tom,
nein, FINDEN ist ein Formel mit der nach Zeichen in einer Zelle gesucht werden kann. Du musst im VBA-Editor den Assi nach Find-Methode fragen.
Userbild

Gruß
Nepumuk
 Bild

Beiträge aus den Excel-Beispielen zum Thema "Objektvariable/With-Blockvariable nicht festgelegt"