Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1868to1872
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

Laufzeitfehler 9

Laufzeitfehler 9
04.02.2022 20:51:30
Kai
Hallo Gemeinde,
erst mal möchte ich mich Vorstellen, mein Name ist Kai und komme aus Frankfurt am Main.
Ich bin neu auf dem Gebiet und möchte VBA und Excel kennen lernen und habe mir ein Projekt zu genommen für einen Freund.
Lagerverwaltung mit Kundendatei und Rechnungswesen.
Ja ich weis ganz schön gewagt für den Anfang; aber ich habe bis jetzt schon eine großen Teil fertig.
es git jetzt nur noch Baustellen in:
-Bild einfügen in Tabellenblatt "Artikel" mit Hyperlink und wenn die Artikelnummer in einer Zeile steht
-Bild einfügen in Tabellenblatt "Etiketten druck", da soll der EAN Code ein gepfelgt werden.
-Rechnungen zu dem Kunden ID in einer Liste angezeigt werden = nur die die letzten 5-6 Rechnungen
-Rechnungen schreiben, die über mehrere Seiten gehen
-Angebote schreiben über mehrer Seiten
-Aus dem Kundenstamm eine Liste erstellen für eine Gebiet (z.B. PLZ-PLZ)
-Kasse
+Produkt DB ist fertig
+Kunden DB ist fertig
+Einkauf ist fertig
+Etikettendruck ist fertig ; bis auf das mit der EAN druck
+Quittungsdruck per BON und per A5 druck ist fertig
Startseit ist fertig und so ziemlich alle Tabellenblätter
Das soll jetzt erst mal gut sein fürserste, jetzt mal zu meinem Problem.
In der Produkt DB (tb_PO_DB) möchte ich gerne ein Bild einfügen in der oberen TABELLE; dieses funktioniert auch so weit alles wenn ich das Makro starte.
Nun wollte ich mit dem Befehl:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, tb_PO_DB.ListObjects("PO_DB").DataBodyRange) Is Nothing Then
Call PO_Bild_einfuegen
End If
End Sub
das Makro aus führen.
Nur ich bekomme immer wieder den gleichen Fehler:
Laufzeitfehler '9' : Index außerhalb des gültigenBereich
Was kann ich tun ?
Anbei noch das Makro:
Sub PO_Bild_einfuegen()
' Bild löschen, falls vorhanden
On Error Resume Next
tb_PO_DB.Shapes("Babo12").Delete
On Error GoTo 0
Dim Bildpfad As String
' Bildpfsd auslesen
Bildpfad = tb_PO_DB.Range("J" & ActiveCell.Row).Value
' Existiert die Bilddatei?
If Dir(Bildpfad) "" Then
' Bild einfügen
With tb_PO_DB.Pictures.Insert(Bildpfad)
.Height = 85
.Name = "Babo12"
End With
With tb_PO_DB.Shapes("Babo12")
.Top = tb_PO_DB.Range("K2").Top
.Left = tb_PO_DB.Range("K2").Left
End With
End If
End Sub
kann mir da jemand helfen bitte ?
LG
Kai

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler 9
04.02.2022 22:43:19
ralf_b

Was kann ich tun ?
wie wär e es mit einer besseren Beschreibung?
Wo genau wird der Fehler erzeugt?
Wieso verläßt du das Listobject, indem du mit Range(J und K ) weiter machst?
Übergib der sub PO_Bild_einfuegen() die notwendigen Parameter, um die sub flexibler zu gestalten. z.b. PO_Bild_einfuegen( oRng as Range , oLstObj as Listobject)
z.b. call PO_Bild_einfuegen( target, tb_PO_DB.ListObjects("PO_DB"))
AW: Laufzeitfehler 9
04.02.2022 23:49:05
Kai
Hallo Ralf,
wow das ging aber schnell.
OMG ja das habe ich vergessen ...
Das Makro läuft einwandfrei wenn man es mit F8 durch spielt, oder auf die Zelle geht.
nur wenn ich es dann in die WS schreibe bleibt er mit dem Laufzeitfehler 9 hängen:
If Not Intersect(Target, tb_PO_DB.ListObjects("PO_DB").DataBodyRange) Is Nothing Then
bei Target = 'Target = 1001'
bei tb_PO_DB = tb_PO_DB.ListObjekts('PO_DB').Data... =
bei Nothind = Nothing
das ist das was ich lesen kann wenn ich über den Gelben Strich gehe mit der Maus
Langt Dir das ?
Wenn nicht dann kläre mich auf was ich machen muss ..... wie geschrieben fange ich erst an mit dem VBA und noch nicht wirklich das wissen dazu.
LG
Kai
Anzeige
AW: Laufzeitfehler 9
05.02.2022 01:00:19
ralf_b
ohne Datei wird das nichts. Scheint ja so als ob du gar nicht weist was da steht. Wie soll ich dir dann das alles erklären?
AW: Laufzeitfehler 9
05.02.2022 12:14:23
Kai
Hallo Ralf,
wie kann ich Dir das zusenden ?
möchte es nicht gerne hier rein stellen
LG
Kai
AW: Laufzeitfehler 9
05.02.2022 12:37:25
ralf_b
ich hab eine email im meinem Antworterprofil hinterlegt.
klicke auf die Visitenkarte vor dem Beitrag in der Threadübersicht
AW: Laufzeitfehler 9
05.02.2022 13:49:14
ralf_b
mir scheint du verwendest das tb_PO_DB.ListObjects("PO_DB") falsch.
Erstemal tb_PO_DB ist der Codename des Tabellenblattes. Soweit so gut. .ListObjects("PO_DB") gibt es nicht. Deshalb der Fehler. Ein Listobject ist eine intelligente
Tabelle. Hier mit dem Namen "PO_DB" Aber du hast hier den Namen des Tabellenblattes benutzt. Was nicht das Selbe ist wie der Namen einer intelligenten Tabelle(Tabellenbereich im Arbeitsblatt).
Nun ist mir auch klar warum du im weiteren Verlauf nicht das Listobject nutzt. Du kennst es mit seinen Möglichkeiten nicht.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'If Not Intersect(Target, tb_PO_DB.ListObjects("PO_DB").DataBodyRange) Is Nothing Then
If Not Intersect(Target, tb_PO_DB.ListObjects("Tabelle4454").DataBodyRange) Is Nothing Then
Call PO_Bild_einfuegen
End If
End Sub
du verwendest viele zusätzliche Bibliotheken. Dies habe ich leider nicht.
deine PQ abfragen erzeugen bei mir Fehler, da sie auf Dateipfade zeigen, die ich hier nicht habe.
die Dateiverknüpfung zeigt auf eine Datei mit älterer Versionsnummer.
Das sind Dinge die mich daran hindern hier eine weitergehende Aussage treffen zu wollen.
Zu viele Unsicherheiten. Dein Projekt ist hübsch aufgemacht, sehr umfangreich und ich denke es könnte etwas aufgeräumter sein.
- Nicht zwingend einzusehende Blätter ausblenden.
- Sprechende Blattnamen verwenden.
- Abkürzungen sind für den Code. Der Nutzer aber muß gleich sehen was er vor sich hat.
der User Oraculix hat hier ein Projekt mit einer Filmdatenbank und mittlerweile reichlich Code zusammengesucht, womit er Bilder in Tabellen einblendet usw.
Frag ihn mal wie er dir bei solchen Aufgabenstellungen behilflich sein könnte.
gruß
rb
Anzeige
AW: Laufzeitfehler 9
05.02.2022 15:35:14
Kai
Hallo Ralf,
danke erst mal für Dein schnelle Hilfe.
Ich habe da mal ne Frage: Wie bekommst Du "ListObjects("Tabelle4454") den Tabelen Name herraus?
Nochmals vielen herzlichen dank
LG
Kai
AW: Laufzeitfehler 9
05.02.2022 15:55:43
ralf_b
Listobjects sind, die als Tabelle formatierten Bereiche, und erhalten automatisch einen Namen, der dann im Namensmanager aufgelistet wird.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige