worldmiracles Geschrieben 4. April 2006 Geschrieben 4. April 2006 Hallo! Ich erstelle zur Zeit eine einfache Eingabe/Ausgabemaske (Userform) mit Visual. Nun kann der Benutzer eine Kategorie wählen (OptionBox). Wird der Datensatz zu einem späteren Zeitpunkt (in einer Userform) wieder aufgerufen, soll der Option-Box Wert durch ein entsprechendes Bild ersetzt werden. Bsp: 1 => 2 => :eek 3 => etc... Wer kann mir da weiterhelfen? Danke für eure Hilfe! Zitieren
Amstelchen Geschrieben 4. April 2006 Geschrieben 4. April 2006 ich kann aus deinem posting nicht ganz herauslesen, ob du eine VBA-UserForm oder ein formular in VB(6) verwendest. wo kommt dein datensatz her bzw. arbeitest du mit einem recordset, datagrid o.ä.? ich könnte mir nur vorstellen, dass du nach dem geeigneten event-handler suchst, der beim refresh der daten anschlägt, in der art ähnlich wie hier: Private Sub Form_Activate() deineOption.Picture = <bild aus einer imagelist> imageBox.Picture = <bild aus einer imagelist> End Sub s'Amstel Zitieren
worldmiracles Geschrieben 4. April 2006 Autor Geschrieben 4. April 2006 Ich benutze eine VBA-UserForm. Die Datensätze stehen in einer Exceltabelle. Die UserForm tätigt anschliessend eine Abfrage (Suche) und sollte die Ergebnisse ausspucken, wobei nun eben die Kategorie-"nr" durch ein entsprechendes Bild ersetzt werden sollte. Wie muss ich das mit der Imagelist ggf lösen? Danke für die Hilfe Mätthu Zitieren
worldmiracles Geschrieben 6. April 2006 Autor Geschrieben 6. April 2006 Nun habe ich eine Lösung für mein Problem gefunden. Sie ist zwar nicht sehr elegant, aber ist Mittel zum Zweck: Für jeden Platzhalter (Kat1) muss ich diesen Code einführen: Kat_1 = Range("B2") If Kat_1 = "K1" Then Kat1.Picture = LoadPicture(ActiveWorkbook.Path & "\goto_k.gif") Else End If If Kat_1 = "K2" Then Kat1.Picture = LoadPicture(ActiveWorkbook.Path & "\info_k.gif") Else End If Nun, bei 8 verschiedenen möglichen Bildern gibt es mehrere dieser If-Anweisungen. Könnte mir jemand sagen, wie ich das ganze mit einer Select-Case -Anwendung vereinfachen könnte? Danke! Zitieren
isardor Geschrieben 12. April 2006 Geschrieben 12. April 2006 Select Case deinevariable Case "erstens" ... Case "zweitens" ... usw. End Select Aber ich würde dir empfehlen die Bilder in einer Iconbox oer ähnlichem zu speichern, mit der Pfadangeabe funktioniert das ganze nur bei dir auf dem Rechner. Zitieren
SNOWMAN Geschrieben 12. April 2006 Geschrieben 12. April 2006 bin jetzt nich so fit in VB, doch wäre ein array nicht einfacher? ich speicher die bilder in arr[1] bis arr[n] und bei der ausgabe wird die ausgewählte zahl als index gesetzt, also arr[auswahl]. so ist das ganze etwas dynamischer und kostet nicht so viel code Zitieren
isardor Geschrieben 20. April 2006 Geschrieben 20. April 2006 Das geht schon, nur im Array kannst du keine Bilder speichern, sondern nur den Verweis. Also müsstest du wenn du deine Software jemand anderem weitergibst, ihm auch das Iconverzeichnis mitgeben, und dann muss er es an die selbe Stelle packen wie du. Alternative, wäre natürlich ein Installshield, der dann die Verzeichnisse und die Dateien automatisch an der richtigen Stelle anlegt. dem kann man dann gleich noch den Installer für die VB-Runtime beilegen, die dann automatisch auch ausgeführt wird und fertig. Billiger wäre eine Selbstextrahierende Exe-Datei, die man z.B. mit ZIP, RAR, 7Z, ACE, usw erzeugen kann, die übertragen auch die Verzeichnisstruktur, installieren aber nicht automatisch die VB-Runtime. Ups, grade noch gesehen, es geht hier ja um VBA, in Office ist ja die VBA-Runtime, natürlich mit drin, ist ja logisch, das was ich da oben gesagt habe gillt hauptsächlich für VB. Zitieren
SNOWMAN Geschrieben 20. April 2006 Geschrieben 20. April 2006 möglicherweiße is das dann etwas rumherumgebastelt aber, ich kann die bilder doch ganz normal mit ins programm einbauen und dann in das Array eine Referenz auf den ImgHolder speichern. Bei der Auswhal des Users wird dann im anzuzeigenden Feld einfach für die Resource die Referenz auf das interne Bild gesetzt und schwups wirds angezeigt, oder nicht? Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.