Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
628to632
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
628to632
628to632
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Laufzeitfehler 91 VBA, Suche nicht gefunden

Laufzeitfehler 91 VBA, Suche nicht gefunden
23.06.2005 15:55:05
Babs
Hallo,
in einer Excel-Datei habe ich ein VBA-Macro geschrieben, bzw. bin gerade dabei.Ich möchte von Tabellenblatt1 in Spalte F in Zeile1 einen Text einlesen und diesen dann im Tabellenblatt2 in SpalteC suchen. Das ganze für jede existierende Zeile im Tabellenblatt1. Das ist soweit auch kein Problem. Nun kann es aber vorkommen, dass der Wert von Tabellenblatt1 im Tabellenblatt2 nicht existiert. Dann möchte ich, dass die Suche abgebrochen wird und die nächste Zeile überprüft wird. Und das ist mein Problem.
Ich denke mal, dass der mir angezeigt laufzeitfehler91 damit zu tun hat, dass der Wert nicht gefunden wurde.
Wäre nett, wenn mir einer helfen könnte.
Gruß Babs

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler 91 VBA, Suche nicht gefunden
23.06.2005 16:02:32
Matthias
Hallo Babs,
im Prinzip so:
Dim b As Range
Set b = Range("A:A").Find ... usw.
If b Is Nothing Then
MsgBox "Nicht gefunden!"
Exit Sub
End If
Gruß Matthias
Laufzeitfehler 91 VBA, Suche nicht gefunden
23.06.2005 16:21:08
Babs
Hallo, danke für die schnelle Antwort.
Das mit dem "is nothing"... hatte ich mir auch schon gedacht, aber muss ich nicht eine MsgBox bestätigen? Ich möchte das gerne so haben, dass wenn der Wert nicht existiert automatisch wieder zum Tabellenblatt1 gewechselt wird und die Suche mit dem nächsten Wert aus der nächsten Zeile fortgesetzt wird. Ist das möglich? Ohne irgendwas zu bestätigen bis die Tabelle fertig durchsucht ist.
Danke mfg Babs
Anzeige
AW: Laufzeitfehler 91 VBA, Suche nicht gefunden
23.06.2005 16:24:16
Matthias
Hallo Babs,
naja, die MsgBox ist ja nicht zwingend ;-)
du kannst das klar auch anders machen. Kern der Sache ist, das Ergebnis von .Find erst einer Range-Variablen zuzuweisen und zu prüfen, ob diese "Nothing" ist.
Wenn du den Code hier mal einstellst, kann man vielleicht konkreter helfen.
Gruß Matthias
Laufzeitfehler 91 VBA, Suche nicht gefunden
23.06.2005 16:35:49
Babs
Hallo Matthias,
hier mal ein Stückchen aus meinem VBA.
Vielleicht ist mir dann zu helfen :-)
Ich bin noch Anfänger im VBA-Programmierens, also sei bitte nachsichtig :-)
Worksheets("Datenbank").Activate
LetzteZeile = Cells.SpecialCells(xlCellTypeLastCell).Row
i = 3

For i = 3 To LetzteZeile

Cells(i, 6).Activate

SerienNummer = ActiveCell.Text
Sheets("GEN_A11_BSK").Activate
Range("E:E").Activate
SerienNummerSuch = ActiveSheet.Cells.Find(What:=SerienNummer)

If SerienNummer Is Nothing Then

? soll aus der Schleife herausgehen und mit nächstem i weitermachen
End If
Cells.FindNext(After:=ActiveCell).Activate
ActiveCell.Offset(0, 9).Activate
AdresseIP = ActiveCell.Text
ActiveCell.Text.Copy

Sheets("Datenbank").Activate
Cells(9, i).Aktivate
ActiveSheet.Paste
Application.CutCopyMode = False
Next i
Anzeige
AW: Laufzeitfehler 91 VBA, Suche nicht gefunden
23.06.2005 16:39:33
Babs
hallo nochmal, ich habe natürlich bei "If SerienNummer Is Nothing" die Variable "SerienNummerSuch "stehen
Gruß babs
AW: Laufzeitfehler 91 VBA, Suche nicht gefunden
23.06.2005 16:41:39
Matthias
Hallo Babs,

Sub test()
Worksheets("Datenbank").Activate
LetzteZeile = Cells.SpecialCells(xlCellTypeLastCell).Row
i = 3
For i = 3 To LetzteZeile
Cells(i, 6).Activate
SerienNummer = ActiveCell.Text
Sheets("GEN_A11_BSK").Activate
Range("E:E").Activate
SerienNummerSuch = ActiveSheet.Cells.Find(What:=SerienNummer)
If Not SerienNummer Is Nothing Then 'gefunden?
Cells.FindNext(After:=ActiveCell).Activate
ActiveCell.Offset(0, 9).Activate
AdresseIP = ActiveCell.Text
ActiveCell.Text.Copy Destination:=Sheets("Datenbank").Cells(9, i)
End If
Next i
End Sub

Ich hab die If-Abfrage einfach umgekehrt, dann wird der Code darin nur ausgeführt, wenn etwas gefunden wurde.
Gruß Matthias
Anzeige
Laufzeitfehler 91 VBA, Suche nicht gefunden
23.06.2005 16:48:33
Babs
Danke Dir,
darauf hätte ich nun auch kommen können. Aber leider kommt immer noch dieser blöde Fehler.
Laufzeitfehler '91':
Objektvariable oder With-Blockvariable nicht festgelegt
Was ist das nur? Hast Du eine Idee?
AW: Laufzeitfehler 91 VBA, Suche nicht gefunden
23.06.2005 17:08:03
Matthias
Hallo Babs,
kannst du nochmal dein Ziel beschreiben?
Anfangs las ich etwas von Spalte C im Code stand dann aber Spalte E - ein wenig verwirrend.
Also hau bitte nochmal in die Tasten und beschreibe das Problem neu.
Gruß Matthias
Laufzeitfehler 91 VBA, Suche nicht gefunden
23.06.2005 17:19:17
Babs
Hallo Matthias,
der erste Text war nur so ein Beispiel. Ich habe eine Tabelle mit 2 Tabellenblättern. Im 2.Blatt muss ich den Inhalt von Zeile 3/Spalte F auslesen und im 1.Blatt in der Spalte E suchen. Sollte der Inhalt vorhanden sein, so soll er in das 2.Blatt in der gleichen Zeile wie das Suchkriterium aber eine Spalte weiter rechts (Spalte I) kopiert werden. Ist der Inhalt nicht vorhanden, soll die nächste Zeile im 2. Blatt genommen werden und wieder die gleiche Suche vollzogen werde. Das ganze solange, bis die Tabelle am Ende ist.
Gruß Babs
Anzeige
AW: Laufzeitfehler 91 VBA, Suche nicht gefunden
23.06.2005 17:25:48
Matthias
Hallo Babs,
d.h. dass am Ende ins Spalte I das gleiche steht wie in Spalte F, wenn es in Blatt1 gefunden wurde?
Gruß Matthias
Laufzeitfehler 91 VBA, Suche nicht gefunden
23.06.2005 17:30:11
Babs
Hallo Matthias,
nein das gleiche steht dort nicht, da ich dann wenn der inhalt gefunden wurde einen Offset mache und 9 spalten weiter nach rechts wandere, um diesen Wert einzulesen und dann in die SpalteI kopiere.
(ist im Macro zu sehen, aber beschrieben hatte ich es im letzten Beitrag nicht)
Gruß Babs
AW: Laufzeitfehler 91 VBA, Suche nicht gefunden
23.06.2005 17:39:38
Matthias
Hallo Babs,
mein Versuch:

Sub test()
Dim LetzteZeile As Long
Dim i As Long
Dim SerienNummer
Dim SerienNummerSuch As Range
LetzteZeile = Sheets("Datenbank").Cells.SpecialCells(xlCellTypeLastCell).Row
For i = 3 To LetzteZeile
SerienNummer = Sheets("Datenbank").Cells(i, 6).Text
Set SerienNummerSuch = Sheets("GEN_A11_BSK").Range("E:E").Find(What:=SerienNummer)
If Not SerienNummerSuch Is Nothing Then 'gefunden?
Sheets("Datenbank").Cells(i, 9) = SerienNummerSuch.Offset(0, 9)
End If
Next i
End Sub

Gruß Matthias
Anzeige
Laufzeitfehler 91 VBA, Suche nicht gefunden
23.06.2005 17:46:50
Babs
Hallo Matthias,
danke für Deine Geduld und für Dein Bemühen....es funktioniert.
Einen schönen Abend noch.
Gruß Babs
AW: Laufzeitfehler 91 VBA, Suche nicht gefunden
23.06.2005 17:50:25
Matthias
Hallo Babs,
das ganze ginge übrigens auch per Formel:
ins Blatt "Datanbank" in Zelle I3:

=SVERWEIS(F3;GEN_A11_BSK!E:N;10;FALSCH)

und dann runterkopieren.
Gruß Matthias

89 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige