Microsoft 365 VBA useform, unfonction recherche, modifier, ajout

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

  • Emplacement stock maccro1.xlsm
    25.4 KB · Affichages: 18

cp4

XLDnaute Barbatruc
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.
 

ChTi160

XLDnaute Barbatruc
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
 

Discussions similaires

Statistiques des forums

Discussions
312 080
Messages
2 085 140
Membres
102 792
dernier inscrit
NKO