Excel incrémenter la dernier ligne tableau

Bonjour,

Comment faire une macro sur Excel qui incrémente automatiquement une nouvelle ligne en fin de tableau ?

Voici mon problème, sous Excel, j'ai un premier tableau avec 5 colonnes et 10 lignes.
le tableau est constitué comme suivant:
1ere colonne: je tappe un N° de 1 à 1000.
2eme colonne j'ai mis la formule suivante: RECHERCHEV(a2;feuil3;2;FAUX) c-a-d il cherche la valeur dans la 1ere colonne dans la fuille 3 puis il me mis les donner équivalente.
3eme colonne c'est le prix unitaire
4eme colonne c'est la qunatité.
5 eme colonne c'est le prix total.

Je veux en appuyant sur un bouton du tableau, déclencher une macro qui va me rajouter une ligne sur le même tableau. Cette nouvelle ligne sera automatiquement en fin de tableau et comportera des valeurs et des formules de la ligne précedente.

J'espère avoir été assez clair ... Merci de vos réponses ;o !
Configuration: Windows XP Internet Explorer 7.0

14 réponses

  1. Exactement eric,

    Le tableau est au début de la page.

    Peux-tu faire une chose pour ce PB?
    1
    1. Contributeur
      essaie avec :
      Sub ajoutLigne()
          [D14].End(xlDown).Offset(0, -1).Resize(1, 5).Select
          Selection.Copy
          Selection.Offset(1, 0).Insert Shift:=xlDown
          Selection.Offset(1, 0).Resize(1, 1).Select
          Selection.ClearContents
      End Sub
      

      Je me base sur la 2nde colonne qui normalement doit toujours avoir une formule. Ca permettra d'insérer plusieurs lignes même s'il n'y a pas de saisie en 1ère colonne (la C)
      eric
      1
      1. Contributeur
        Bonsoir,

        Ce n'est pas le plus dur à faire sans macro :
        Tu sélectionnes A10:E10 (ou B10:E10 si tu ne veux pas copier la 1ère valeur),
        et tu fais un cliqué-glissé sur le petit carré noir (en bas à droite de ta sélection) en tirant vers le bas.
        Tu relache quand tu as assez de lignes...

        Si tu veux vraiment un code :
        Sub ajoutLigne()
            derlig = [B65536].End(xlUp).Row
            Range(Cells(derlig, 2), Cells(derlig, 5)).AutoFill Destination:=Range(Cells(derlig, 2), Cells(derlig + 1, 5)), Type:=xlFillDefault
            Cells(derlig + 1, 1).Select
        End Sub
        

        Ca ne recopie que les formules en colonnes B:E et ça amène le curseur en colonne A

        eric
        0
        1. Merci eric pour les infos.
          désolé de ne pas répondre a votre mail aussi top, je suis tres occupée, je viens de vois le code, c'est impécable mais mon tableau ne se trouve pas a la fin de ma feuille c-a-d

          exemple:

          Réf Libellé Quantité P.U. P.H.T.
          1000 Dépose et repose de plaque 1 30.00 € 30.00 €
          1500 Câble 5x2,5 1 6.04 € 6.04 €
          1250 Câble 5x2,5 1 6.04 € 6.04 €

          mon tableau se situé entre les celulles C14 et G16.
          en dessous du tableau se trouve un texte...
          il me faut dés qu'il faut ajouté plus de ligne, dons j'appuie sur le boutton de commande pour incrémenté une ligne.
          Voila M. ERIC, pouvez vous m'aidez SVP
          Merci d'avance.
          0
          1. Contributeur
            Re,

            en clair tu veux insérer une ligne (pour faire descendre le tableau qui est en dessous) en plus de copier les formules ?
            0
            1. Merci eric pour tes info,

              mais comme je ss débutante en vba, où je peux insérer ce code, je ne pense pas que le boutton va fonctionner?

              merci
              0
              1. Contributeur
                Bonjour,

                Ca ne marche pas parce que ta feuille ne correspond pas à ta description.
                Une des raison c'est la fusion de cellules qu'il faut absolument éviter (et pas seulement pour le vba).
                Et ça tombe bien, sur ta feuille c'est totalement inutile. Refais déjà ta feuille dans ce sens, on adaptera la macro ensuite.
                eric
                0
                1. Contributeur
                  Re,

                  Tu as encore changé la mise en page de ton fichier (toutes les lignes n'ont plus la même hauteur) ce qui oblige à insérer une ligne complète au lieu de qcq cellules.
                  dans ta formule RECHERCHEV(C16;BPU!A2:D275;2;FAUX) il faut fixer ta plage avec des $ et écrire RECHERCHEV(C16;BPU!$A$2:$D$275;2;FAUX)
                  sinon lorsque tu recopies vers le bas elle devient A3:D276 etc.
                  J'ai décalé 'Libellé' de E15 en D15 car il fallait une saisie dans cette cellule. Laisse le là...
                  delphina.xls

                  eric
                  0
                  1. Bonsoir,

                    merci pour ton coup de main, reste juste un petit souci , quand j'incrémente mon tableau, tout se passe bien sauf la somme, il ne tient pas en compte la ligne incrémenter. peux tu faire un petit effort.

                    MERCI eric
                    0
                    1. Contributeur
                      Bonsoir,

                      Effectivement, tu peux ajouter cette ligne alors :
                      [D15].End(xlDown).Offset(1, 5).Formula = "=SUM(I16:I" & [D15].End(xlDown).Row & ")"


                      Par contre, comme tu as voulu ajouter des macros, garde bien en tête que tu ne pourras plus ajouter/supprimer des lignes ou colonnes n'importe comment. Parfois il faudra adapter la macro même si elle n'est pas en cause directement...
                      Par exemple la colonne F qui ne sert à rien tu ne peux plus la supprimer, en colonne D la cellule sur la ligne de 'Total H.T. (1)' doit toujours être vide, etc.
                      eric
                      0
                      1. merci pour t'as réponse.

                        Bonne soirée
                        0