Thema
|
Datum
|
Von Nutzer
|
Rating
|
Antwort
|
|
01.02.2008 06:57:25 |
kratzbaum |
|
|
Aw:VBA image.picture = loadpicture(path) - Office0 |
01.02.2008 11:36:19 |
Holger |
|
|
|
01.02.2008 13:42:43 |
kratzbaum |
|
|
|
02.02.2008 12:05:40 |
Holger |
|
|
|
04.02.2008 07:27:54 |
kratzbaum |
|
|
|
04.02.2008 15:05:35 |
Holger |
|
|
|
05.02.2008 08:04:10 |
kratzbaum |
|
|
|
05.02.2008 10:55:44 |
Holger |
|
|
|
05.02.2008 12:44:34 |
kratzbaum |
|
|
|
05.02.2008 13:11:43 |
Holger |
|
|
|
06.02.2008 11:13:58 |
kratzbaum |
|
|
|
06.02.2008 11:33:01 |
kratzbaum |
|
|
|
06.02.2008 11:44:59 |
Holger |
|
|
Von:
Holger |
Datum:
01.02.2008 11:36:19 |
Views:
2154 |
Rating:
|
Antwort:
|
Thema:
Aw:VBA image.picture = loadpicture(path) - Office0 |
Hallo kratzbaum,
ich gehe davon aus, dass das Ganze sich in Excel abspielen soll.
Aus einem Formular sei das Steuerelement „ImgText“ und dieses Formular sei aktiviert. ImgText sei so formatiert, dass es ausgewählte Bilder auch anzeigen kann. Falls dein Steuerlement anderes heißt, musst du im Code die Namen entsprechend austauschen.
In meinem Vorschlag wird eine UserForm mit dem Namen „Bildauswahl“ mit folgenden Steuerelementen angelegt:
3 CommandButtons mit den Namen: Verzeichnis, Übernahme, Abbrechen
1 Label mit dem Namen: Anzeige
1 ListBox mit dem Namen: ListBox1
1 Image mit dem Namen: Image1.
In irgendeinem echten Modul deklarierst du:
Public Ordner As String
In den Codeteil für das Excel-Objekt deines Formulars kopierst du:
Private Sub ImgText_Click()
Load Bildauswahl
Bildauswahl.Show
ImgText.Picture = LoadPicture(Ordner)
End Sub
In den Codeteil der UserForm kopierst du:
Private Bild() As String
Private Sub Abbrechen_Click()
Unload Bildauswahl
End Sub
Private Sub Übernahme_Click()
Ordner = Bild(ListBox1.ListIndex)
Unload Bildauswahl
End Sub
Private Sub userform_terminate()
Unload Bildauswahl
End Sub
Private Sub Verzeichnis_Click()
Image1.Visible = False
Text = "Bitte Verzeichnis wählen!"
Start = "C:\Dokumente und Einstellungen\" + Application.UserName + _
"\Eigene Dateien\"
Dim objShell As Object
Set objShell = CreateObject("Shell.Application").BrowseForFolder(0&, Text, &H200, Start)
If Not objShell Is Nothing Then Ordner = objShell.Self.Path Else Exit Sub
VerzAnzeige.Caption = Ordner
Set fso = CreateObject("Scripting.FileSystemObject")
Set fldr = fso.getfolder(Ordner)
Set fls = fldr.Files
b = fls.Count
ListBox1.Clear
a = 0
ReDim Bild(a)
If b > 0 Then
For Each d In fls
If LCase(Right(d, 3)) = "jpg" Then
ListBox1.AddItem d.Name
Bild(a) = d
a = a + 1
ReDim Preserve Bild(a)
End If
Next
End If
End Sub
Private Sub ListBox1_Click()
Image1.Visible = True
Image1.Picture = LoadPicture(Bild(ListBox1.ListIndex))
End Sub
Private Sub UserForm_Initialize()
Image1.PictureSizeMode = fmPictureSizeModeZoom
VerzAnzeige.Caption = "C:\Dokumente und Einstellungen\" + Application.UserName + _
"\Eigene Dateien\"
Verzeichnis_Click
If Ordner = "" Then End
End Sub
Viel Erfolg
Holger
kratzbaum schrieb am 01.02.2008 06:57:25:
Guten Tag.
Ich habe folgendes Problem und hoffe, mir kann jemand einen Denkanstoss oder noch besser die Lösung geben.
Als Basis habe ich ein geschütztes Formular welche Image Steuerelemente enthält. Nun soll per Klick (oder beim Öffnen dieses Dokuments) das Bild gewechselt werden. Am Besten wäre es, wenn man durch die Ordnerstruktur klicken könnte um das gewünschte Bild auszuwählen. Da ich aber in diese Richtung noch nichts gefunden habe, versuche ich es mit image.picture = loadpicture
mein code momentan (seehr kurz)
Private Sub imgText_Click()
imgText.Picture = LoadPicture("C:\Files\bild.jpg")
End Sub
nun meine Fragen:
- Kann ich anstelle des absoluten Pfades auf irgendeine Weise das Dokument durch den Benutzer auswählen lassen? (wenn möglich nicht durch Eingabe über ein Userform --> User machen Fehler, vor allem wenn ein Pfad korrekt angegeben werden soll )
- Das Bild wird nach dem Klick nicht automatisch geladen, wenn ich in ein anderes Dokument und zurück wechsle erscheint das Korrekte. Wie refreshed man ein imgSteuerelement? Mit ActiveDocument.Files.Upadate hat's nicht geklappt.
sollte jemand eine elegante Lösung für mein Problem haben bin ich gerne offen für Vorschläge..!
Vielen Dank!
Gruss
kratzbaum |
- Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
- Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
- Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
- Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
- Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei
Antworten auf Ihren Beitrag zu benachrichtigen
Bitte geben Sie ein aussagekräftiges Thema an.
Bitte geben Sie eine gültige Email Adresse ein!
- Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
- Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
- Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
- Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
- Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei
Antworten auf Ihren Beitrag zu benachrichtigen
Thema
|
Datum
|
Von Nutzer
|
Rating
|
Antwort
|
|
01.02.2008 06:57:25 |
kratzbaum |
|
|
Aw:VBA image.picture = loadpicture(path) - Office0 |
01.02.2008 11:36:19 |
Holger |
|
|
|
01.02.2008 13:42:43 |
kratzbaum |
|
|
|
02.02.2008 12:05:40 |
Holger |
|
|
|
04.02.2008 07:27:54 |
kratzbaum |
|
|
|
04.02.2008 15:05:35 |
Holger |
|
|
|
05.02.2008 08:04:10 |
kratzbaum |
|
|
|
05.02.2008 10:55:44 |
Holger |
|
|
|
05.02.2008 12:44:34 |
kratzbaum |
|
|
|
05.02.2008 13:11:43 |
Holger |
|
|
|
06.02.2008 11:13:58 |
kratzbaum |
|
|
|
06.02.2008 11:33:01 |
kratzbaum |
|
|
|
06.02.2008 11:44:59 |
Holger |
|
|