Microsoft 365 Incrémentation de ligne via bouton

frelon

XLDnaute Nouveau
Bonjour à tous,
J'ai créer un formulaire, ou l'utilisateur sélectionne avec une liste déroulante un produit et ensuite avec une rechercheX il affiche les données.
J'aurais besoin d'ajouter ces lignes a la feuille commande camion, et ceci a chaque fois que l'utilisateur appuis sur le bouton ajouter (les ligne s'incrémente automatiquement).

Merci a tous.
macro3.PNG
macro2.PNG
macro1.PNG
 
Solution
VB:
Sub Ajouter()
Dim Form As Worksheet: Set Form = Sheets("Formulaire")
Dim Base As Worksheet: Set Base = Sheets("BDD")
Dim Rng As Range

    ' On se positionne sur la ligne du produit dans la base
    ' pour en récupérer la référence et le prix
    Set Rng = Base.Columns(3).Find(Form.[D2])
   
    If Not Rng Is Nothing Then ' devrait normalement toujours être vrai
        Lib = Rng
        Ref = Base.Range("A" & Rng.Row)
        Spx = Base.Range("AH" & Rng.Row)
       ' On travaille la table Camion
        Set Rng = [Camion[fk_product]].Find(Ref)
        If Rng Is Nothing Then ' Ajout d'une nouvelle ligne
            [Camion].ListObject.ListRows.Add AlwaysInsert:=True
            Row = [Camion].ListObject.ListRows.Count...

fanch55

XLDnaute Barbatruc
Bonjour,
sans un petit fichier exemple expurgé, il sera difficile de t'aider .
Déjà je peux te suggérer de mettre une date ou clé dans la commande Camion,
cela évitera de rajouter des doublons à chaque fois que le bouton Ajouter est activé .
 

fanch55

XLDnaute Barbatruc
J'ai besoin que si un article est déja connu dans la commande camion le nombre de quantité s'ajoute a celui déja connu; c'est possible ?
VB:
Sub Ajouter()
Dim Form As Worksheet: Set Form = Sheets("Formulaire")
Dim Base As Worksheet: Set Base = Sheets("BDD")
Dim Rng As Range

    ' On se positionne sur la ligne du produit dans la base
    ' pour en récupérer la référence et le prix
    Set Rng = Base.Columns(3).Find(Form.[D2])
    
    If Not Rng Is Nothing Then ' devrait normalement toujours être vrai
        Lib = Rng
        Ref = Base.Range("A" & Rng.Row)
        Spx = Base.Range("AH" & Rng.Row)
       ' On travaille la table Camion
        Set Rng = [Camion[fk_product]].Find(Ref)
        If Rng Is Nothing Then ' Ajout d'une nouvelle ligne
            [Camion].ListObject.ListRows.Add AlwaysInsert:=True
            Row = [Camion].ListObject.ListRows.Count
            [Camion[fk_product]].Rows(Row) = Ref
            [Camion[lavel]].Rows(Row) = Lib
            [Camion[qty]].Rows(Row) = Form.[F8]
            [Camion[subprice]].Rows(Row) = Spx
        Else ' ligne existante: on ajoute la quantité
            Row = Rng.Row - [Camion[#Headers]].Row
            [Camion[qty]].Rows(Row) = [Camion[qty]].Rows(Row) + Form.[F8]
       End If
    End If
Set Form = Nothing
End Sub
 

frelon

XLDnaute Nouveau
VB:
Sub Ajouter()
Dim Form As Worksheet: Set Form = Sheets("Formulaire")
Dim Base As Worksheet: Set Base = Sheets("BDD")
Dim Rng As Range

    ' On se positionne sur la ligne du produit dans la base
    ' pour en récupérer la référence et le prix
    Set Rng = Base.Columns(3).Find(Form.[D2])
   
    If Not Rng Is Nothing Then ' devrait normalement toujours être vrai
        Lib = Rng
        Ref = Base.Range("A" & Rng.Row)
        Spx = Base.Range("AH" & Rng.Row)
       ' On travaille la table Camion
        Set Rng = [Camion[fk_product]].Find(Ref)
        If Rng Is Nothing Then ' Ajout d'une nouvelle ligne
            [Camion].ListObject.ListRows.Add AlwaysInsert:=True
            Row = [Camion].ListObject.ListRows.Count
            [Camion[fk_product]].Rows(Row) = Ref
            [Camion[lavel]].Rows(Row) = Lib
            [Camion[qty]].Rows(Row) = Form.[F8]
            [Camion[subprice]].Rows(Row) = Spx
        Else ' ligne existante: on ajoute la quantité
            Row = Rng.Row - [Camion[#Headers]].Row
            [Camion[qty]].Rows(Row) = [Camion[qty]].Rows(Row) + Form.[F8]
       End If
    End If
Set Form = Nothing
End Sub
Merci !!!!
 

Discussions similaires

Statistiques des forums

Discussions
312 113
Messages
2 085 420
Membres
102 886
dernier inscrit
eurlece