Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

loadpicture

Forumthread: loadpicture

loadpicture
11.02.2021 10:47:20
rdthiel
Hallo Forum
mein Problem ist:
Private Sub UserForm_Activate() 'Die userform hat den Namen UserForm1 und enthält nur image1
UserForm1.Image1.Picture = LoadPicture("f:\mauryana.jpg")
funktioniert - Bild wird geladen
Sub UserForm_Activate() 'Die userform hat den Namen" frm_Verbrauch_Auswertung" und enthält außer image1 mehrere Steuerelemente
frm_Verbrauch_Auswertung.Image1.Picture = LoadPicture("f:\mauryana.jpg")
debugger meldet:Sub oder function nicht definiert
Beide makros laufen auf dem gleichen Computer.
Wo soll ich den Fehler suchen oder wo steckt das Problem?
Danke für dienliche Hinweise und auch denen, die darüber nachgedacht haben und keine Lösung wußten.
Ralph
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: loadpicture
11.02.2021 10:54:15
Beverly
Hi Ralph,
befindet sich der Code direkt in dem UserForm? Dann einfach frm_Verbrauch_Auswertung weglassen.


AW: loadpicture
11.02.2021 11:09:18
rdthiel
Hi Karin
Danke für die schnelle Antwort.
Ja, die Auszüge sind so, wie die Makros beginnen.
ich habe den userform namen entfernt und die gleiche Fehlermeldung bekommen.
das war es dann nicht. aber danke, daß du darüber nachgedacht hast.
Ralph
Anzeige
AW: loadpicture
11.02.2021 11:25:42
Beverly
Hi Ralph,
ich kann das nicht nachvollziehen - der Code läuft ohne Fehler. Übrigens auch dann, denn sich das Image auf einem Frame befindet.


AW: loadpicture
11.02.2021 11:36:57
Beverly
Hi Ralph,
heißt die Prozedur bei dir tatsächlich "Sub UserForm_Activate()" oder "frm_Verbrauch_Auswertung_activate"? Du darfst dabei nicht den Namen des UserForms verwenden, denn die Prozedur heißt für JEDES UserForm UserForm_Activate() unabhängig vom Namen.


Anzeige
AW: loadpicture
11.02.2021 11:45:02
rdthiel
Hi Karin
Danke für die schnelle Antwort.
ja, du hast Recht, wenn es in einer leeren Datei läuft ist loadpictures kein Problem. siehe den Anfang meiner Frage, aber warum ist loadpicture falsch, wenn mehrere Steuerlemente in der userform sind?
Wenn ich in die Eigenschaften des image1 per hand die Bilddatei eingebe, funktioniert das.
Ich sitze seit Tagen an dem Problem und habe keine Idee mehr, wo die Kuh auf dem Eis steht!
Gruß Ralph
Anzeige
AW: loadpicture
11.02.2021 11:15:19
Rudi
Hallo,
steckt das Image-Control evtl in einem Frame oder auf einer Multipage?
Gruß
Rudi
AW: loadpicture
11.02.2021 11:26:37
rdthiel
Hi Rudi,
die mappe1 enthält nur userform1 und image1 und das makro wie oben
Die andere Mappe enthält mehrere Blätter und viele makros.
frm_Verbrauch_Auswertung_activate mit
frm_Verbrauch_Auswertung.Image1.Picture = LoadPicture("f:\mauryana.jpg")
alle anderen Steuerelement diese frames fünktioniern ohne Probleme
Doch danke dafür, dass du darüber nachdenkst
Gruß Ralph
Anzeige
AW: loadpicture
11.02.2021 11:42:32
Rudi
Hallo,
frm_Verbrauch_Auswertung_activate
Das muss schlicht
Private Sub UserForm_Activate()

heißen.
Gruß
Rudi
AW: loadpicture
11.02.2021 11:47:09
rdthiel
sorry,
heißt es auch
? bleiben weiterhin
ralph
;
Anzeige

Infobox / Tutorial

Lade Bilder in Excel VBA mit LoadPicture


Schritt-für-Schritt-Anleitung

Um ein Bild in ein UserForm in Excel VBA zu laden, kannst Du die LoadPicture-Funktion verwenden. Hier sind die Schritte, die Du befolgen solltest:

  1. Öffne den Visual Basic for Applications (VBA) Editor:

    • Drücke ALT + F11 in Excel.
  2. Erstelle ein neues UserForm:

    • Klicke auf Einfügen und wähle UserForm.
  3. Füge ein Bild-Steuerelement hinzu:

    • Wähle das Image-Steuerelement aus der Toolbox und ziehe es auf das UserForm.
  4. Füge den folgenden Code in das UserForm ein:

    Private Sub UserForm_Activate()
       Image1.Picture = LoadPicture("f:\mauryana.jpg")
    End Sub

    Achte darauf, den Pfad zur Bilddatei korrekt anzugeben.

  5. Starte das UserForm:

    • Führe den Code aus, um das UserForm anzuzeigen und das Bild zu laden.

Häufige Fehler und Lösungen

  1. Fehlermeldung: "Sub oder Function nicht definiert":

    • Überprüfe, ob Du die Prozedur korrekt benannt hast. Der Name sollte Private Sub UserForm_Activate() sein und nicht den Namen des UserForms enthalten.
  2. Das Bild wird nicht angezeigt:

    • Stelle sicher, dass der Pfad zur Bilddatei korrekt ist und die Datei existiert. Teste den Code in einer leeren Datei, um sicherzustellen, dass keine anderen Steuerelemente oder Makros im Weg stehen.
  3. Bild in einem Frame oder Multipage:

    • Wenn das Image-Steuerelement in einem Frame oder einer Multipage ist, musst Du sicherstellen, dass Du den richtigen Verweis auf das Steuerelement verwendest. Zum Beispiel:
      Frame1.Image1.Picture = LoadPicture("f:\mauryana.jpg")

Alternative Methoden

Falls Du Schwierigkeiten mit LoadPicture hast, gibt es alternative Ansätze:

  • Bild direkt in den Eigenschaften setzen: Gehe zu den Eigenschaften des Image-Steuerelements und setze den Pfad zur Bilddatei manuell.

  • Verwendung von API-Funktionen: Für fortgeschrittene Benutzer kann die Verwendung von Windows-API-Funktionen eine flexiblere Lösung bieten, insbesondere wenn Du mit verschiedenen Bildformaten arbeiten möchtest.


Praktische Beispiele

Hier ist ein einfaches Beispiel, um ein Bild in einem UserForm zu laden:

Private Sub UserForm_Activate()
    ' Bild in ein Image-Steuerelement laden
    Image1.Picture = LoadPicture("C:\Bilder\beispiel.jpg")
End Sub

Wenn das Image-Steuerelement auf einer Multipage ist, kannst Du den Code wie folgt anpassen:

Private Sub UserForm_Activate()
    ' Bild in ein Image-Steuerelement innerhalb einer Multipage laden
    Multipage1.Pages(0).Image1.Picture = LoadPicture("C:\Bilder\beispiel.jpg")
End Sub

Tipps für Profis

  • Verwende Fehlerbehandlung: Implementiere eine einfache Fehlerbehandlung, um sicherzustellen, dass Dein Code auch bei Problemen mit dem Bildpfad stabil bleibt:

    On Error Resume Next
    Image1.Picture = LoadPicture("f:\mauryana.jpg")
    If Err.Number <> 0 Then
      MsgBox "Bild konnte nicht geladen werden."
      Err.Clear
    End If
  • Nutze relative Pfade: Wenn möglich, verwende relative Pfade, um die Portabilität Deiner Excel-Datei zu erhöhen. Dies ist besonders nützlich, wenn Du die Datei auf verschiedenen Computern verwendest.


FAQ: Häufige Fragen

1. Frage Was mache ich, wenn das Bild nicht angezeigt wird?

Antwort: Überprüfe zuerst den Pfad zur Bilddatei. Stelle sicher, dass die Datei existiert und der Pfad korrekt angegeben ist.

2. Frage Kann ich mehrere Bilder in verschiedenen Steuerelementen auf dem UserForm laden?

Antwort: Ja, Du kannst mehrere Image-Steuerelemente im UserForm verwenden und für jedes Steuerelement den entsprechenden Code zur Bildladung einfügen. Achte darauf, die richtigen Namen der Steuerelemente zu verwenden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige