Ok j'ai un peu regardé ton fichier et j'ai plusieur remarques :
Sur ta feuille pour le GO crée un vrai commandbutton et place dans la private sub commandbutton_click le userform1.show que tu as dans ta macro1 au lieu de l'affecter à une image.
Pour tes autres codes, je te conseille d'éviter d'enlever l' "option explicit". c'est un peu contraignant de devoir déclarer toutes tes variables mais ça te permet de vérifier que tu as bien saisi le nom de la variable (et qu'il ne s'en crée pas automatiquement une nouvelle alors que tu n'en veux pas).
Pour le reste tu n'étais pas loin il te manquait la notion de selecteditem sur le filedialog. Ton code associé au userform devient donc :
Code :
- Option Explicit
- Public TheFile 'Déclaré en public car elle sert dans les 2 macros
|
Code :
- Private Sub CommandButton1_Click()
- Dim i As Byte
- Dim DerniereLigne As Integer
- DerniereLigne = Range("a65536" ).End(xlUp).Row + 1
- With Sheets("Feuil1" )
- Range("A" & DerniereLigne).Value = TextBox1.Value
- Range("B" & DerniereLigne).Value = TextBox2.Value
- If TheFile <> 0 Then
- .Range("Z" & DerniereLigne).Value = TheFile
- Else
- .Range("Z" & DerniereLigne).Value = "Aucun Fichier Image"
- End If
- End With
- Unload UserForm1
-
- End Sub
|
Code :
- Private Sub Image1_Click()
- With Application.FileDialog(msoFileDialogFilePicker)
- .AllowMultiSelect = False 'Un seul Fichier possible
- .InitialFileName = CurDir 'Répertoire d'ouverture de la fenetre
- .Filters.Clear 'Annuler les filtres au cas où
- .Filters.Add Description:="Images", Extensions:="*.jpg", Position:=1
- .Title = "Choix de l'image"
- 'verification au cas ou click sur annul dans la boite + lance la boite
- If .Show = -1 Then TheFile = .SelectedItems(1) Else TheFile = 0
- End With
- 'signaler à la personne qu'aucun fichier n'est choisi
- If TheFile = 0 Then MsgBox ("aucun fichier image choisi" )
- 'Afficher l'image dans le userform
- Image1.Picture = LoadPicture(TheFile)
- End Sub
|
Pour la 2eme partie de ton problème :
Code :
- Private Sub UserForm_Initialize() 'à l'initialisation de l'UserForm
- Dim li As Integer
- li = ActiveCell.Row
- For x = 1 To 2
- Controls("textbox" & x).Value = Cells(li, x).Value
- Next x
- Image1.Picture = LoadPicture(Sheets("Feuil1" ).Range("Z" & li).Value)
- End Sub
|
il suffit juste d'ajouter le image1.picture = pictureload...
bon courage
---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)