Excel/VBA: Zahl aus Excel zu Dateinamen machen

Hallo allseits,

ich habe da ein Problem mit Excel, wo ich nach allem rumprobieren nicht weiterkomme, vielleicht kann mir jemand weiterhelfen !?

Also :smile:

Ich tippe in ein Excel Feld eine Zahl ein und diese soll Excel erkennen, daraus den Namen einer Bilddatei generieren, also die Zahl + Endung .jpg und dann öffnen.

Falls das jetzt etwas schwierig war :smile:

Beispiel:
Ich tippe in A1 die 12345 ein.
Excel soll das jetzt erkennen und daraus die 12345.jpg stricken
und dann die Grafik 12345.jpg aus dem Ordner D:Bilder einfügen.

Geht das überhaupt ?

Ich tippe in A1 die 12345 ein.
Excel soll das jetzt erkennen und daraus die 12345.jpg
stricken
und dann die Grafik 12345.jpg aus dem Ordner D:Bilder
einfügen.

Hallo Ebm,

inj das Modul des tabellenblattes:

Option Explicit

Private Sub Worksheet\_Change(ByVal Target As Range)
Const Pfad As String = "D:\Bilder\"
If Target.Count \> 1 Then Exit Sub
If Target.Column \> 1 Then Exit Sub
If Dir(Pfad & Target.Value & ".jpg") = "" Then
 MsgBox "Es gibt keine Datei " & Pfad & Target.Value & ".jpg"
Else
 ActiveSheet.Pictures.Insert (Pfad & Target.Value & ".jpg")
End If
End Sub

Gruß
Reinhard

Hallo Reinhard,

vielen Dank für Deine Antwort ! Ich glaub allerdings, dass ich einfach zu sehr VBA-DAU bin, um es zu kapieren, jedenfalls krieg ich nur Fehlermeldungen raus :frowning:

Ich wollte die ganze Prozedur an eine Schaltfläche in Excel dranhängen und wennn ich die Schaltfläche mit dem Makro verknüpfe, krieg ich immer die Meldung „Fehler beim Kompilieren: Innerhalb einer Prozedur ungültig“, dabei markiert VBA immer „Option explicit“

Was mach ich denn nur falsch ?

Ich wollte die ganze Prozedur an eine Schaltfläche in Excel
dranhängen und wennn ich die Schaltfläche mit dem Makro
verknüpfe, krieg ich immer die Meldung „Fehler beim
Kompilieren: Innerhalb einer Prozedur ungültig“, dabei
markiert VBA immer „Option explicit“

Hallo Ebm,

Option Explicit
muß immer ganz ganz oben im Modul stehen. Nichts darüber.

Wenn du die Prozedur einer Schaltfläche zuweisen willst so muß sie in etwa wie nachfolgend gezeigt aussehen.
Und sie sollte in einem Standardmodul stehen, z.B. Modul1.
Wenn du keines hast, im VB-Editor Einfügen—Modul.

Mein erster Code ist Ereigniscode der automatisch abläuft bei einem Ereignis. In dem Fall ist das Ereignis eine Angabe in eine Zelle in Spalte A. Der Code muß dann wegen seiner Besonderheit als (Tabellenblatt-) Eriegnis im Modul des jeweiligen Tabellenblattes stehen.

Option Explicit

Sub Bild()
Const Pfad As String = "D:\Bilder\"
If Dir(Pfad & Range("A1").Value & ".jpg") = "" Then
 MsgBox "Es gibt keine Datei " & Pfad & Range("A1").Value & ".jpg"
Else
 ActiveSheet.Pictures.Insert (Pfad & Range("A1").Value & ".jpg")
End If
End Sub

Gruß
Reinhard

SUPER !!! Klappt !!! :smile:

Vielen vielen Dank für die Hilfe !