Remplir un tableau à l'aide d'un formulaire avec image - VBA

soso882

XLDnaute Nouveau
Bonjour,

Je suis toute nouvelle dans le forum que je consulte régulièrement.

Je découvre le langage VBA sous Excel (depuis 1 semaine seulement) que je vais devoir utiliser rapidement à mon travail.

Pour m'exercer, je suis en train de créer un fichier dans lequel je vais pouvoir gérer une bibliothèque personnelle (sans prêt je précise), afin de répertorier tous mes livres.

Je rencontre un soucis avec un formulaire qui me permettra de remplir ma base données automatiquement, ligne par ligne.

Voici une image de mon formulaire :

Lien supprimé

Bon ce qui est pas mal c'est que j'ai réussi :
•à ce que le bouton "insérer une image" fonctionne et que l'on voit un aperçu en dessous

•à ce que le bouton "Annuler" fonctionne.



Mes problèmes :

•Format Type : je voudrais faire apparaître une liste de choix

•Bouton OK : une fois validé, ça me remplit le tableau suivant, et que l'action se fasse ligne par ligne

Lien supprimé


NB: je souhaite insérer l'image sélectionnée dans le formulaire dans la première colonne


Je vous remercie d'avance

Bonne journée
 

Theze

XLDnaute Occasionnel
Re : Remplir un tableau à l'aide d'un formulaire avec image - VBA

Bonjour,

Je t'ai répondu hier sur un autre forum !
Code:
Dim Img As String 'de portée module afin de mémoriser le chemin et le nom du fichier image pour l'enregistrement dans le classeur
 
Private Sub CommandButton1_Click()
 
    Dim Plage As Range
    Dim Tbl
    Dim I As Integer
 
    'défini la plage en feuille "Feuil1" adapter le nom...
    With Worksheets("Feuil1")
 
        'plage de A2 à Mx. Les cellules de la colonne M sont sensées être toutes renseignées
        Set Plage = .Range(.Cells(3, 1), .Cells(.Rows.Count, 13).End(xlUp))
 
    End With
 
    'crée un tableau contenant les noms des contrôles où récuperer les valeurs
    Tbl = Array("TextBox1", "TextBox2", "TextBox3", "ComboBox1", "TextBox4", "TextBox5", "TextBox6", "TextBox7", "TextBox8", "TextBox9", "TextBox10", "TextBox11")
 
    'décale d'une ligne
    With Plage.Rows(Plage.Rows.Count + 1)
 
        'boucle pour inscription des valeurs
        For I = 1 To 12
 
            .Cells(1, I + 1).Value = Me.Controls(Tbl(I - 1)).Text
 
        Next I
 
        'insertion de l'image
        With .Cells(1, 1)
 
            If Img <> "" Then
 
                Worksheets("Feuil1").Shapes.AddPicture Img, True, True, .Left, .Top, .Width, .Height
 
            End If
 
        End With
 
        Img = ""
 
    End With
 
End Sub
 
'utilisé pour la récup de l'image sur le disque ici, "CommandButton2" donc adapter le nom si différent...
Private Sub CommandButton2_Click()
 
    With Application.FileDialog(3)
 
        .Show
 
        On Error Resume Next 'si annuler
        Img = .SelectedItems(1)
 
        If Err.Number <> 0 Then Exit Sub
 
    End With
 
    Image1.Picture = LoadPicture(Img)
 
End Sub
 
Private Sub UserForm_Initialize()
 
    Dim I As Integer
 
    'un exemple pour populer le combo
    For I = 1 To 10
 
        ComboBox1.AddItem "Element " & I
 
    Next I
 
End Sub

Hervé.
 

Discussions similaires

Statistiques des forums

Discussions
312 216
Messages
2 086 351
Membres
103 195
dernier inscrit
martel.jg