Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 VBA useform, unfonction recherche, modifier, ajout

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Benoidon

XLDnaute Nouveau
Bonjour à tous,

Je viens d'essayer de créer un formulaire useforme en utilisant les VBA qui utiliserai les fonction suivantes " rechercher, ajouter, modifier".
J'ai suivi des tuto pour essayer de reproduire. Mais cela ne fonctionne pas du tout. Je compte me mettre à niveau pour maitriser les VBA.

Pouvez m'aider dans cette situation et m'indiquer les code à utiliser pour que la macro fonctionne dans le Visual basic?

Je souhaiterai que :
- la fonction recherche trouve l'article et l'emplacement à partir du code article.
- "Ajouter" un nouvel article dans mon tableau Excel
- "Modifier" un ancien emplacement en le remplacent par le nouveau inséré.
En vous remerciant par avance.
Useforme.PNG
 

Pièces jointes

Bonjour,

J'ai ajouté ces procédures à ton formulaire.
VB:
Private Sub UserForm_Initialize()
Dim i As Long, x As Long
i = Sheets("Sheet1").Range("A65536").End(xlUp).Row
For x = 2 To i
    With ComboBox1
        .AddItem Sheets("Sheet1").Range("A" & x)
    End With
Next x
ComboBox1.SetFocus
End Sub
Private Sub ComboBox1_Change()
    If Me.ComboBox1 = "" Then
        MsgBox "Sélectionnez un code!", vbCritical + vbOKOnly, "CODE ARTICLE"
        TextBox2 = "": TextBox3 = "": TextBox4 = ""
        Exit Sub
    Else
        With Sheets("sheet1")
            TextBox2 = .Cells(Me.ComboBox1.ListIndex + 2, 2)
            TextBox3 = .Cells(Me.ComboBox1.ListIndex + 2, 3)
            TextBox4 = .Cells(Me.ComboBox1.ListIndex + 2, 5)
        End With
    End If
End Sub

Bonne journée.
 
Bonjour le Fil
une autre possibilité !
On crée un tableau structuré "t_BDD" des données de la feuille "Sheet1"

VB:
Dim T
Private Sub UserForm_Initialize()
Dim i As Long, x As Long
T = Range("t_BDD").ListObject.DataBodyRange.Value 'on récupére les données de la plage ainsi définie dans un Tableau temporaire
With Me.ComboBox1 'avec le Combobox
       .ColumnCount = 2 'il aura 2 colonnes
       .ColumnWidths = "1;0" 'dont la seule la premiere sera visible
For Lgn = 1 To UBound(T, 1) 'pour chaque ligne du tableau temporaire  
        .AddItem T(Lgn, 1) ' 'on récupére le Code Article
        .List(.ListCount - 1, 1) = Lgn 'la Ligne source  
Next Lgn
.SetFocus
End With
End Sub
Private Sub ComboBox1_Change()
Dim Lgn As Long
   With Me.ComboBox1
    If .Text = "" Then
        MsgBox "Sélectionnez un code!", vbCritical + vbOKOnly, "CODE ARTICLE"
        Me.TextBox2 = "": Me.TextBox3 = "": Me.TextBox4 = ""
           Exit Sub
    Else
        Lgn = .List(.ListIndex, 1) 'On récupére la Ligne source (Colonne 1(2ème du Combobox)
            Me.TextBox2 = T(Lgn, 2) 'Nom article
            Me.TextBox3 = T(Lgn, 3) 'Mag
            Me.TextBox4 = T(Lgn, 5) 'Emplacement (MAJ)     
    End If
   End With
End Sub
Bonne fin de Journée
Jean marie
 
Réactions: cp4
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…