Devis automatisé

Bonjour,

Je réalise un classeur sous Excel qui combine plusieurs feuilles : "Clients", "Produits", "Devis", "Facture", etc.

J'ai besoin par exemple dans mon devis de faire appel aux donnés contenues dans les autres feuilles du classeur. Pour cela, j'aimerais sélectionner grâce à une liste déroulante mon client et mes produits directement sur le devis et que leur donnés respectives (adresse, prix, etc) s'affichent dans des cases que j'aurais prédéfinies.

Cela est il possible ?

Je ne suis pas du tout un expert en VBA, j'ai seulement codé en Visual Basic en première année à l'université et c'est pour cela que je me permets de demander votre aide.

Cordialement,

Bonjour,

C'est possible.

Pour la liste déroulantes => validation de données et liste et choisir la plage

Pour rechercher les autres données correspondantes => formule RECHERCHE, RECHERCHEV, EQUIV, INDEX ......

Merci, j'ai commencé à trouver des morceaux de réponse avec les fonctions dont tu as parlé.

Par contre, je rencontre un problème : J'aimerais que mon tableau soit "dynamique", c'est à dire que si mon devis contient un produit celui - ci ne fera qu'une ligne etc. Comment faire varier la taille de mon tableau au fur et à mesure que j'y ajouterais des produits ?

Cordialement,

B3NK3I a écrit :

Merci, j'ai commencé à trouver des morceaux de réponse avec les fonctions dont tu as parlé.

Par contre, je rencontre un problème : J'aimerais que mon tableau soit "dynamique", c'est à dire que si mon devis contient un produit celui - ci ne fera qu'une ligne etc. Comment faire varier la taille de mon tableau au fur et à mesure que j'y ajouterais des produits ?

Cordialement,

Bonjour,

Comme l'indique Raja, l'idéal serait d'avoir un fichier anonyme afin de faire des tests et de pouvoir te proposer une solution.

J'y travaille actuellement, je vous envoi un fichier anonyme dés que j'ai un peu avancé avec les éléments de réponse déjà trouvés.

Cordialement,

Premier problème rencontré (voir fichier joint)

J'ai un tableau avec des valeurs entrées par l'utilisateur et des formules. J'aimerais lorsque j'appuie sur le bouton "Ajouter un produit" que le tableau s'étende vers le bas mais que seules les formules soit copiées pour fonctionner avec les valeurs de la nouvelle ligne.

Merci de votre aide

110protodevis.xlsm (10.77 Ko)

bonjour papysg, B3NK3I et le forum

B3 ton classeur ne sera pas d'une grande aide car il est vide , un bouton sans code, manque feuille articles, clients etc

Désolé pour le code du bouton, voici le fichier avec le bon code

121protodevis.xlsm (15.54 Ko)

Pour l'instant le problème que j'ai énoncé ne concerne qu'une seule feuille, je mettrais à jour le fichier si j'ai des problèmes avec les liens entre les feuilles

Cordialement,

bonjour B3NK3I et le forum

essai ce code pour voir, il recopie la ligne 3 a chaque ajout de ligne, mais les lignes ne progresse que si celle qui as été ajoutée est remplie du moins en colonne A

Sub Insertion_Produit()
    ''Sélection de la dernière ligne du tableau
   ' Range("A3").CurrentRegion.Rows(Range("A3").CurrentRegion.Rows.Count).Copy
    'Ajout de la copie à la suite du tableau
    'Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial

Dim lig As Integer

With Sheets("TEST")

   lig = .Range("A" & Rows.Count).End(xlUp)(2).Row
    If lig < 4 Then lig = 4

    'insertion d'une ligne

     'copie la ligne de dessus avec ses formats
           .Range("A" & lig - 1 & ":H" & lig - 1).Copy
            'restitue la ligne a chaque demande
           .Range("A" & lig).Insert xlShiftDown
            'nettoie la ligne insérée
           .Range("A" & lig & ":H" & lig).ClearContents
            'écriture gauche dans la colonne A
           '.Range("A" & lig & ":H" & lig).HorizontalAlignment = xlLeft
            'écriture centrée dans la colonne B
           '.Range("B" & lig).HorizontalAlignment = xlCenter
       ' End With
End With
End Sub

bonjour

en fait c'est la même aide que j'ai donné pour cet exemple https://forum.excel-pratique.com/download/file.php?id=123560

voici le lien du post car le lien ci_dessus donne le fichier que le demandeur a mis en ligne en fin de post

https://forum.excel-pratique.com/excel/difficulte-pour-inserer-nouvelle-ligne-en-vba-t78125.html

Je tiens tout d'abord à te remercier pour ton aide, par contre ton code rajoute bien une ligne au tableau, par contre celle - ci est vide, mes formules ne sont pas dans la nouvelle ligne :/

bonjour B3NK3I

J'ai rajouter des lignes de code a contôler si ca te correspond

Sub Insertion_Produit()
        ''Sélection de la dernière ligne du tableau
      ' Range("A3").CurrentRegion.Rows(Range("A3").CurrentRegion.Rows.Count).Copy
       'Ajout de la copie à la suite du tableau
       'Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial

    Dim lig As Integer

    With Sheets("TEST")

       lig = .Range("A" & Rows.Count).End(xlUp)(2).Row
        If lig < 4 Then lig = 4

        'insertion d'une ligne

         'copie la ligne de dessus avec ses formats
              .Range("A" & lig - 1 & ":H" & lig - 1).Copy
                'restitue la ligne a chaque demande
              .Range("A" & lig).Insert xlShiftDown
                'nettoie la ligne insérée
              .Range("A" & lig & ":H" & lig).ClearContents

    'la cellule de la colonne F prend la formule type =B3/E3
      .CELLS(lig, "F").FormulaR1C1 = "=RC[-4]/RC[-1]"
     'la cellule de la colonne G prend la formule type =E3/C3
      .CELLS(lig, "G").FormulaR1C1 = "=RC[-2]/RC[-4]"
     'la cellule de la colonne H prend la formule type =F3+G3
      .CELLS(lig, "H").FormulaR1C1 = "=RC[-2]+RC[-1]"

    'End If
    End With
    End Sub

ce code écrira des lignes indéfiniment soit le milion de ligne d'excel 2013

Merci, ton code fonctionne !

Je reviens vers vous si je rencontre d'autres problèmes ou si j'ai bien avancé sur le sujet

Cordialement,

Bonjour

heureux que le code fonctionne, mais je ne continuerai pas sans un "bonjour" au début de chaque post

mais il vaux mieux clore celui-ci et en ouvrir un autre car ce sera forcément une autre question donc cette question est résolu et le post avec

Rechercher des sujets similaires à "devis automatise"