Autor
|
Thema: Bildvorschau erstellen abhängig von auswahl (4135 mal gelesen)
|
pjLars81 Mitglied Student
Beiträge: 54 Registriert: 21.09.2007
|
erstellt am: 19. Jun. 2008 09:55 <-- editieren / zitieren --> Unities abgeben:
Hi Leute Hab mal wieder ein Problem. Habe mir eine Userform erstellt mit combobox und einem image feld. In meiner exceldatei hab ich in tabelle2 Namen von Bauteilen stehen. diese kann ich mir in der combobox slektieren, nun soll im imagefeld eine Vorschau dieser Teile erstellt werden. Bilder haben denn gleichen namen wie auf excelblatt. Kann mir hier vielleicht jemand einen Tip geben wie man dieses Problem am einfachsten löst. Danke schon mal im vorraus. gruß lars Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 19. Jun. 2008 10:36 <-- editieren / zitieren --> Unities abgeben: Nur für pjLars81
Hallo Lars, wo liegen Deine Bilder? In der Excel-Mappe - oder in einem Ordner? Vielleicht möchtest Du die Mappe hochladen (sensible Daten vorher rausnehmen)? Welche Excel-Version verwendest Du? Lösen lässt sich das ganze, indem Du beim Ändern der Combobox (_Change?) dem Image-Objekt ein anderes Bild zuweist, so nach dem Motto: Image.Picture = Combobox... [Edit: Zwei Beiträge könnten hilfreich sein: 1. und 2. /Edit] Frederik ------------------ DIN1055.de | Lastannahmen für Anwender [Diese Nachricht wurde von Paulchen am 19. Jun. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
pjLars81 Mitglied Student
Beiträge: 54 Registriert: 21.09.2007
|
erstellt am: 19. Jun. 2008 11:54 <-- editieren / zitieren --> Unities abgeben:
|
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 19. Jun. 2008 12:14 <-- editieren / zitieren --> Unities abgeben: Nur für pjLars81
Hm... schnell und schmutzig: Code für Deine UserForm Code:
Private Sub ComboBox1_Change() UserForm1.Image1.Picture = LoadPicture("PfadZuDeinenBildern\" & UserForm1.ComboBox1) End SubPrivate Sub UserForm_Initialize() With UserForm1.ComboBox1 .AddItem "NameBild1.jpg" .AddItem "NameBild2.jpg" .AddItem "NameBild3.jpg" .ListIndex = 0 End With End Sub
Anstelle von "PfadZuDeinenBildern\" kannst Du auch ThisWorkbook.Path & "\" verwenden. Die Größe der Bilder muss (in LoadPicture) noch angepasst werden.------------------ DIN1055.de | Lastannahmen für Anwender Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
pjLars81 Mitglied Student
Beiträge: 54 Registriert: 21.09.2007
|
erstellt am: 19. Jun. 2008 12:30 <-- editieren / zitieren --> Unities abgeben:
Danke Danke Probiere das gleich mal aus. Wo kann ich denn solche Excel befehle allgemein finden, vielleicht noch mit kleinem Beispiel? Mit der Excel hilfe kann ich mich nicht anfreunden. [Diese Nachricht wurde von pjLars81 am 19. Jun. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 19. Jun. 2008 12:47 <-- editieren / zitieren --> Unities abgeben: Nur für pjLars81
|
pjLars81 Mitglied Student
Beiträge: 54 Registriert: 21.09.2007
|
erstellt am: 19. Jun. 2008 12:57 <-- editieren / zitieren --> Unities abgeben:
|
pjLars81 Mitglied Student
Beiträge: 54 Registriert: 21.09.2007
|
erstellt am: 11. Jul. 2008 11:25 <-- editieren / zitieren --> Unities abgeben:
HI Hab jetzt schon so einiges probiert und komme aber immer noch auf keinen grünen zweig. Bekomme immer ständig fehlermeldungen bei Bilder reinladen. Hier ist mal der Code: Private Sub OptionButton1_Click() 'swv_bgs With ComboBox1 .AddItem "Bauteil01" .AddItem "Bauteil02" .AddItem "Bauteil03" .AddItem "Bauteil04" .AddItem "Bauteil05" .AddItem "Bauteil06" .AddItem "Bauteil07" .AddItem "Bauteil08" End With 'Variablen Dim s As String 'Fallunterscheidung Select Case ComboBox1.Value Case 1 s = "BildA.jpeg" Case 2 s = "BildB.jpeg" Case 3 s = "BildC.jpeg" Case 4 s = "BildD.jpeg" Case 5 s = "BildE.jpeg" Case 6 s = "BildF.jpeg" Case 7 s = "BildG.jpeg" Case 8 s = "BildH.jpeg" End Select 'Bild einfügen Image1.Picture = LoadPicture("C:\BILDER_BT\" & s) End Sub Bild von meiner Userform ist im Anhang. Könnt ihr euch ja mal anschauen und sagen was ich da immer noch falsch mache. Vielleicht hab ich das ja auch nur an den falschen Stellen eingefügt. Vielen Dank im vorraus.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
runkelruebe Moderator Straßen- / Tiefbau
Beiträge: 8075 Registriert: 09.03.2006 MS-Office 365 ProPlus x86 WIN7(x64)
|
erstellt am: 11. Jul. 2008 12:08 <-- editieren / zitieren --> Unities abgeben: Nur für pjLars81
|
pjLars81 Mitglied Student
Beiträge: 54 Registriert: 21.09.2007
|
erstellt am: 11. Jul. 2008 12:17 <-- editieren / zitieren --> Unities abgeben:
|
Nepumuk Mitglied Entwicklungsleiter
Beiträge: 351 Registriert: 16.10.2004
|
erstellt am: 11. Jul. 2008 12:18 <-- editieren / zitieren --> Unities abgeben: Nur für pjLars81
Hallo Lars, wenn die Einträge in der Combobox Bauteil01, Bauteil02 .... heißen, dann kann die Value - Eigenschaft der Combobox doch nicht den Wert 1, 2 ... wie in deiner Fallunterscheidung annehmen. Da muss dann auch Code: Select Case ComboBox1.Value Case Bauteil01 s = "BildA.jpeg" Case Bauteil02 s = "BildB.jpeg"
abgefragt werden. ------------------ Gruß Nepumuk Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
pjLars81 Mitglied Student
Beiträge: 54 Registriert: 21.09.2007
|
erstellt am: 11. Jul. 2008 12:33 <-- editieren / zitieren --> Unities abgeben:
|
Nepumuk Mitglied Entwicklungsleiter
Beiträge: 351 Registriert: 16.10.2004
|
erstellt am: 11. Jul. 2008 12:49 <-- editieren / zitieren --> Unities abgeben: Nur für pjLars81
|
runkelruebe Moderator Straßen- / Tiefbau
Beiträge: 8075 Registriert: 09.03.2006 MS-Office 365 ProPlus x86 WIN7(x64)
|
erstellt am: 11. Jul. 2008 12:50 <-- editieren / zitieren --> Unities abgeben: Nur für pjLars81
hmm, bin ich blind? ich finde diese Zeile nicht in Deiner Mappe, nur die Zeile OptionButton1.Image1.Picture = LoadPicture("C:\BILDER_BG\" & OptionButton1.ComboBox1)und das geht so nicht. Ein Image1.Picture = LoadPicture("C:\BILDER_BG\" & ComboBox1.Value & ".jpeg") könnte Abhilfe schaffen, zumindest läd er dann bei mir ordnungsgemäß ein Bild in die userform "standardkatalog_b" ------------------ Gruß, runkelruebe Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße...
System-Info Excel -Suche RuA-Suche FAQ-ACAD Hilfe zu CAD.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
pjLars81 Mitglied Student
Beiträge: 54 Registriert: 21.09.2007
|
erstellt am: 11. Jul. 2008 13:00 <-- editieren / zitieren --> Unities abgeben:
Fehlermeldung sagt mir nur das die Zeile Falsch ist. OptionButton1.Image1.Picture = LoadPicture("C:\BILDER_BG\" & OptionButton1.ComboBox1)
ist schon die abgeänderte version. Sorry wenns etwas durcheinander geht hab mehrere Versionen und weis selbst nicht mehr wo mir der koppf steht. Versuche das jetzt mal in ordnung zu bringen und stelle mal eine neue Mappe ins netz. Kann ein bischen dauern da ich gerade noch etwas anderes zu arbeiten bekommen hab.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
pjLars81 Mitglied Student
Beiträge: 54 Registriert: 21.09.2007
|
erstellt am: 11. Jul. 2008 13:40 <-- editieren / zitieren --> Unities abgeben:
Hier hab ich noch mal die Mappe sortiert. Hier der Code: Private Sub OptionButton1_Click() 'swv_bgs 'Festlegen der Werte 'Sheets("Tabelle2").Select 'ComboBox1.RowSource = "B3:B10" 'ComboBox1.ColumnCount = 1 'Sheets("Tabelle1").Select With ComboBox1 .AddItem "Traeger01" .AddItem "Traeger02" .AddItem "Hydraulikeinheit" .AddItem "Fahreinheit-80-100" .AddItem "Fahreinheit-100-100" .AddItem "U-Spanner" .AddItem "K-Spanner" .AddItem "Flanschaufnehmer" End With 'Variablen Deklarieren Dim s As String 'Fallunterscheidungen Select Case ComboBox1.Value Case Traeger01 s = "BG_A_Traeger_01.jpeg" Case Traeger02 s = "BG_B_Traeger_01.jpeg" Case Hydraulikeinheit s = "BG_C_HYEH100_01.jpeg" Case Fahreinheit - 80 - 100 s = "BG_D_FE_01.jpeg" Case Fahreinheit - 100 - 100 s = "BG_E_FE_01.jpeg" Case U - Spanner s = "BG_F_USPANNER_01.jpeg" Case K - Spanner s = "BG_G_KSPANNER_01.jpeg" Case Flanschaufnehmer s = "BG_H_FAUFNEHMER_01.jpeg" 'Case Else 'MsgBox = "Kein Bild gefunden!" End Select 'Bild einfügen 'Image1.Picture = LoadPicture("C:\BILDER_BG\" & ComboBox1.Value & ".jpeg") 'Image1.Picture = LoadPicture("C:\BILDER_BG\" & s) 'OptionButton1.Image1.Picture = LoadPicture("C:\BILDER_BG\" & OptionButton1.ComboBox1) End Sub Welcher der Image Befehle soll ich jetzt verwenden. Bei mir funktioniert keiner von den 3. Weiter wenn ich meine Werte mit dem Makro festlege kann ich so oft ich will zwischen den OptionButtons hin und her springen. Mit dem Befehl wtih ... Kommt dann eine Fehlermeldung. Ich hoffe die Angaben sind jetzt weniger verwirrend. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
carsten-3m Mitglied Dipl.-Ing. Mbau (Produktmanagement, Patent- und Normwesen)
Beiträge: 950 Registriert: 08.05.2007 Excel 2010
|
erstellt am: 11. Jul. 2008 14:53 <-- editieren / zitieren --> Unities abgeben: Nur für pjLars81
Ich hab wenig Ahnung, wie Comboboxen verwendet werden. Allerdings fiel mir auf, dass "ComboBox1.Value" keinen Wert erhält und zwar unabhängig von der Auswahl in der Combobox. Zwangsläufig misslingt die anschließende Auswertung und korrekte Zuweisung der Variable "s" und auch der Aufruf des korrekten Vorschaubilds wird in Folge nicht recht funktionieren wollen. Vielleicht gelingt durch diesen Hinweis die Eingrenzung der Fehlerquelle. Nebenbei hängt sich der Programmcode auf, sobalb man die Radiobuttons "BG", "TBG" bzw. "EZT" mehrfach anwählt. Nach der dritten Auswahl kommt der Debugger hoch. ------------------ Seit Pro/E Version 1 dabei, auwei... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 11. Jul. 2008 14:57 <-- editieren / zitieren --> Unities abgeben: Nur für pjLars81
Hallo Lars, kennst Du die Taste F8 in VBA? Deren Bekanntschaft ist wärmstens zu empfehlen , damit Du siehst, was Dein Code wann tut! Code: 'Fallunterscheidungen Select Case ComboBox1.Value Case Traeger01 s = "BG_A_Traeger_01.jpeg" Case Traeger02 s = "BG_B_Traeger_01.jpeg" ...
kann ich innerhalb der Private Sub OptionButton1_Click() nicht so recht nachvollziehen . Wäre es nicht u. U. sinnvoller,- sowohl den OptionButton1 beim Start als True
- als auch die ComboBox mit den ersten Werten
zu belegen? UserForm_Inititalize wirkt Wunder!Wo Dein Code genau zickt, ist auch mir schleierhaft. Ich vermute, dass ein paar Gänsefüßchen rund um die Fälle der Select Case-Anweisung helfen könnten? Also Case Traeger01 in Case "Traeger01" umbauen. Es ist möglich, dass .jpeg unbeliebt ist. Hast Du schon mal .jpg probiert? Enden Deine Bilder im Ordner auch wirklich alle auf .jpeg? Die dritte Möglichkeit der Vorschau kannst Du IMHO ausschließen. Schließlich willst Du ja nicht dem Schalter OptionButton1 ein Bild verpassen, sondern dem Vorschaubereich Image1. Bleiben "nur" noch zwei, die beide funktionieren sollten (ungetestet). So, wie Deine Sub aufgebaut ist, passiert in beiden Fällen exakt das gleiche. Ob Du den vollständigen Pfad zum Bild in der Select-Schachtel oder danach zusammensetzt, ist völlig egal. Wenn Du die erste, längere Zeile verwendest, kannst Du Dir Select... komplett sparen. Bleibt nur noch offen, wann Du dieses Ereignis auslösen möchtest. Fazit: Image1.Picture = LoadPicture("C:\BILDER_BG\" & ComboBox1.Value & ".jpeg") sollte funktionieren. Und Carsten war schneller: Die Sache mit dem Aufhängen kann ich bestätigen. Frederik ------------------ DIN1055.de | Lastannahmen für Anwender Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
pjLars81 Mitglied Student
Beiträge: 54 Registriert: 21.09.2007
|
erstellt am: 11. Jul. 2008 15:29 <-- editieren / zitieren --> Unities abgeben:
Hab jetzt mal die sachen umgestellt und muß sagen bei mir hats immer noch nix geholfen. Sprich der zickt immer noch bei der Vorschau rum. Ich kann alles einstellen nur er zeigt mir keine Bilder. Ich werde das mal am Wochenende komplett neu aufziehen, weil ich mittlerweile auch nichtmehr weis was richtig und was falsch ist. Trotzdem vielen Dank für eure Bemühungen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |