Laufzeitfehler 9
04.02.2022 20:51:30
Kai
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