Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Label Caption zuweisen & Bild in Userform einfügen

Label Caption zuweisen & Bild in Userform einfügen
19.05.2008 08:07:00
Jnes
Hallo liebe Excelfreunde ;)
Ich habe mal 2 kleine Fragen
1.
Ich habe ein Reihe von Labels (AFO1 - AFO10) und möchte ihnen in einer Zählschleife einem nach dem anderen eine caption zuweisen, die aus eine tabelle ausgelesen wird. wie ich die caption auslese ist nicht das problem, aber ist es möglich den "Zähler" der Labels (also 1-10) als variablen ausdruck zu gestalten?
Ich hätte halt gern etwa so einen programmcode:
For z = 1 To 10
wert = Worksheets("Tabelle1").cells(z,2).value
Userform1.Labelz.Caption = wert Labelz funktioniert nicht
Next z
2.
in der selben unserform habe ich ein image, das dynamisch zugewiesen werden soll. die bilder sollen dabei aber nicht irgendwo in einem laufwerk rumliegen, sondern da ich in der uni nur EINE datei abgeben darf muss ich sie in Excel importieren.
Das habe ich schon auf 2 verschieden wege gemacht
a) durch grafik einfügen
b) als objekt einfügen (*.bmp-datei)
leider kenn ich die syntax nicht, wie ich mit solchen objekten umgehe
ich habe schon einige zeile probiert wie:
Bauteil.Image4.Picture = Worksheets("Bilder").Image1.Picture
oder
Bauteil.Image4.Picture = Worksheets("Bilder").Shapes("object 5")
und die LoadPicture-Funktion verstehe ich leider nicht
Ich freu mich über jede Antwort, und hoffe ihr könnt mir weiterhelfen. Danke schonmal im vorraus
mfg Jens

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Label Caption zuweisen & Bild in Userform einfügen
19.05.2008 08:35:33
Chris
Servus Jens,
zu 1, z.B. so:

Private Sub UserForm_Initialize()
Dim tb As Integer
For tb = 1 To 10
Me.Controls("Label" & tb).Caption = Sheets("Tabelle1").Cells(tb, 2)
Next tb
End Sub


zu 2:
kann ich dir leider nicht weiterhelfen. Meines Wissens nach geht die Zuweisung im Image nur über externe Bilder, aber ich bin da nicht sicher, also stell ich das mal wieder auf offen.
Gruß
Chris

Anzeige
AW: Label Caption zuweisen & Bild in Userform einfügen
19.05.2008 08:35:55
Chris
Servus Jens,
zu 1, z.B. so:

Private Sub UserForm_Initialize()
Dim tb As Integer
For tb = 1 To 10
Me.Controls("Label" & tb).Caption = Sheets("Tabelle1").Cells(tb, 2)
Next tb
End Sub


zu 2:
kann ich dir leider nicht weiterhelfen. Meines Wissens nach geht die Zuweisung im Image nur über externe Bilder, aber ich bin da nicht sicher, also stell ich das mal wieder auf offen.
Gruß
Chris

Anzeige
AW: Label Caption zuweisen & Bild in Userform einfügen
19.05.2008 08:37:24
fcs
Hallo Jens,
zu frage 1:

For z = 1 To 10
Wert = Worksheets("Tabelle1").Cells(z, 2).Value
For Each Element In Useform1.Controls
If Element.Name = "AFO" & Format(z, "0") Then
Element.Caption = Wert
End If
Next
Next z


Bei Frage 2 kann ich dir leider nicht weiterhelfen.
Gruß
Franz

Anzeige
AW: Label Caption zuweisen & Bild in Userform einfügen
19.05.2008 08:43:18
otto
Hallo Jens,
vielleicht so:
Dim c As Control, z, wert, zähler
z = 1
For zähler = 1 To 10
If TypeName(c) = "Label" Then
wert = Worksheets("Tabelle1").cells(z, 2)
c.Caption = wert
End If
z = z + 1
Next c
Habe es aber nicht getestet.
Bei der LoadPicture Eigenschaft wird einem Control ein Bild aus einer bestimmten Datei zugewiesen.
Gruß
otto

Anzeige
AW: Label Caption zuweisen & Bild in Userform einf
19.05.2008 09:11:15
Beverly
Hi Jens,
zu Frage 1 noch eine weitere Möglichkeit: schreibe die Nummer i n die Tag-Eigenschaft des Labels, dann bist du unabhängig vom Namen des Labels

Dim z As Integer
Dim coElement As Control
z = 1
For Each coElement In Me.Controls
If TypeName(coElement) = "Label" Then
If CInt(coElement.Tag) = z Then
coElement.Caption = Cells(z, 2)
z = z + 1
End If
End If
Next coElement


zu Frage 2: exportiere das Bild als Grafik, füge es mit LoadPicture in das Image ein und lösche die Bilddatei wieder.


Private Sub CommandButton1_Click()
Dim chDiagramm As ChartObject
Dim shBild As Shape
Dim varBild As Variant
Application.ScreenUpdating = False
Set shBild = ActiveSheet.Shapes("Bild 1")
shBild.CopyPicture Appearance:=xlScreen, Format:=xlPicture
Set chDiagramm = ActiveSheet.ChartObjects.Add(0, 0, shBild.Width, shBild.Height)
With chDiagramm.Chart
.Paste
.Export Filename:="C:\Test\Bild.JPG", FilterName:="JPG" ' andere Grafikformate sind mö _
glich
End With
chDiagramm.Delete
If Not Me.Image1.Picture Is Nothing Then
Image1.Picture = Nothing
End If
Image1.Picture = LoadPicture("C:\Test\Bild.JPG")
DoEvents
Kill "C:\Test\Bild.JPG"
Set chDiagramm = Nothing
Set shBild = Nothing
End Sub


Anzeige
AW: Label Caption zuweisen & Bild in Userform einf
19.05.2008 09:50:06
Jnes
Vielen dank euch allen.
Ich bin erfreut, dass ihr so schnell helfen konntet. die Label zuweisung funktioniert bestens mit der Me.Controls -Anweisung.
Die Bilder sind jetzt auch in meiner Userform, aber eine kleine Frage habe ich dazu noch. wird diese datei durch die kill-Anweisung als virus erkannt?
Ansonsten an alle nochmal vielen Dank
mfg Jens

Anzeige
AW: Label Caption zuweisen & Bild in Userform einf
19.05.2008 10:05:20
Beverly
Hi Jens,
ich habe jetzt kein 2007 zum testen hier, aber m.E. musst du die Makros ja sowieso aktivieren, es sei denn, die Mappe ist in einem vertrauenswürdigen Ordner abgelegt. Kill ist ein ganz normaler VBA-Befehl.


Anzeige
AW: Label Caption zuweisen & Bild in Userform einf
19.05.2008 10:43:00
Jens
Bisher sagt mir mein virusprogramm auch noch nichts an. hoffe das alles glatt geht
dank und einen schönen tag noch
mfg Jens
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Label Caption zuweisen und Bilder in Userform einfügen


Schritt-für-Schritt-Anleitung

Um die Label Caption in einer Userform dynamisch zuzuweisen und Bilder einzufügen, befolge diese Schritte:

  1. Öffne den VBA-Editor in Excel (Alt + F11).
  2. Erstelle eine neue Userform und füge mehrere Labels (z.B. Label1 bis Label10) sowie ein Image-Control hinzu.
  3. Füge den folgenden Code in das Userform-Modul ein:
Private Sub UserForm_Initialize()
    Dim tb As Integer
    For tb = 1 To 10
        Me.Controls("Label" & tb).Caption = Sheets("Tabelle1").Cells(tb, 2)
    Next tb
End Sub

Dieser Code setzt die Caption der Labels basierend auf den Werten in einer Excel-Tabelle. Stelle sicher, dass die Tabelle "Tabelle1" existiert und die Daten in der zweiten Spalte stehen.

Um ein Bild in die Userform einzufügen, vergewissere dich, dass das Bild in einem unterstützten Format vorliegt. Verwende den folgenden Code:

Private Sub CommandButton1_Click()
    Dim shBild As Shape
    Set shBild = ActiveSheet.Shapes("Bild 1")
    shBild.CopyPicture Appearance:=xlScreen, Format:=xlPicture
    Dim chDiagramm As ChartObject
    Set chDiagramm = ActiveSheet.ChartObjects.Add(0, 0, shBild.Width, shBild.Height)
    With chDiagramm.Chart
        .Paste
        .Export Filename:="C:\Test\Bild.JPG", FilterName:="JPG"
    End With
    chDiagramm.Delete
    Me.Image1.Picture = LoadPicture("C:\Test\Bild.JPG")
    Kill "C:\Test\Bild.JPG"
End Sub

Häufige Fehler und Lösungen

  • Fehler: Label nicht gefunden (Me.Controls)
    Stelle sicher, dass die Namen der Labels exakt mit den Namen im Code übereinstimmen. Wenn du z.B. "AFO1" bis "AFO10" verwendest, musst du den Code entsprechend anpassen.

  • Fehler: Bild wird nicht angezeigt
    Überprüfe, ob der Pfad zur Bilddatei korrekt ist und das Bild im richtigen Format vorliegt. Die LoadPicture-Funktion benötigt einen gültigen Dateipfad.


Alternative Methoden

Eine alternative Methode zur Zuweisung der Label Caption könnte sein, die Tag-Eigenschaft der Labels zu verwenden. Damit bist du unabhängig vom Namen des Labels:

Dim coElement As Control
For Each coElement In Me.Controls
    If TypeName(coElement) = "Label" And CInt(coElement.Tag) = z Then
        coElement.Caption = Sheets("Tabelle1").Cells(z, 2)
    End If
Next coElement

Für die Bildzuweisung kannst du auch die LoadPicture-Methode verwenden, um ein Bild direkt aus einer Datei zu laden, ohne es vorher in ein Diagramm zu kopieren.


Praktische Beispiele

Hier sind einige Beispiele, wie du die Caption und Bilder in einer Userform dynamisch zuweisen kannst:

  1. Label Caption aus einer Tabelle: Wie bereits beschrieben, mit einer Schleife die Caption der Labels aus "Tabelle1" zuweisen.
  2. Bild aus einer Datei laden: Nutze die LoadPicture-Funktion, um Bilder in das Image-Control zu laden:
Me.Image1.Picture = LoadPicture("C:\Bilder\meinBild.jpg")

Tipps für Profis

  • Nutze die Tag-Eigenschaft der Labels, um die Zuordnung zu erleichtern und Code zu vereinfachen.
  • Achte darauf, die Bilddateien im richtigen Format zu speichern, um Probleme bei der Anzeige zu vermeiden.
  • Bei der Verwendung von VBA-Befehlen wie Kill, sei vorsichtig, da diese Dateien unwiderruflich löschen können.

FAQ: Häufige Fragen

1. Wie kann ich die Labels dynamisch benennen?
Du kannst die Tags der Labels setzen und diese im Code abfragen, um die Caption zuweisen.

2. Was ist die beste Methode, um Bilder in eine Userform einzufügen?
Die Verwendung von LoadPicture ist die einfachste Methode, um Bilder in ein Image-Control in einer Userform einzufügen.

3. Welche Excel-Version benötige ich?
Die bereitgestellten Codes sind für Excel 2007 und neuer ausgelegt. Bei älteren Versionen kann es zu Abweichungen kommen.

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