Retranscription de données dans tableau récapitulatif

Bonjour la communauté,

Mon problème concerne le report de données dans un tableau récapitulatif.

Pour illustrer la chose, veuillez vous référer au classeur en PJ.

Dans ce classeur, il y a deux feuilles:

  • la feuille "Facture"
  • la feuille "Registre des factures"

Je souhaite créer une marco qui fait logiquement la chose suivante :

Dans la feuille "Facture", une fois une facture "n" éditée, la macro vide la plage la plage B2:B13 de son contenu pour éditer la facture suivante "n+1" ET retranscrit dans le même temps tous les champs de la plage B2:B13 de la facture "n" dans la ligne première ligne vide de la feuille "Registre des factures" (dans ce cas ce sera la ligne 2 car "n" est la première facture éditée, par contre la facture "n+1" devra ultérieurement être reportée en ligne 3 et ainsi de suite)

Pour faire cette macro, la seconde partie concernant le reporting des données dans la ligne suivante après la facture qui a précédé

me pose problème.

Comment faire?

Merci d'avance

Joris

Bonjour,

Ci-joint une proposition à tester.

Bonne journée

Bouben

Bonjour,

à défaut d'une "facture" moins sommaire, voilà comment copier les données

P.

bouben a écrit :

Bonjour,

Ci-joint une proposition à tester.

Bonne journée

Bouben

Salut Bouben,

Ta proposition marche impeccable.

Je suis débutant en VBA donc si tu pouvais un peu m'éclairer sur le code utilisé. Pourrais-tu me commenter les lignes de code pour savoir précisément l'opération qu'elles actionnent une par une?

Ce serait vraiment super sympa de ta part.

Merci d'avance,

Joris

Bonjour,

voici le code de Bouben commenté.

Option Explicit

Public Sub Enregistrer()

    Dim oSh1 As Worksheet
    Dim oSh2 As Worksheet
    Dim iEcr As Integer
    Dim iLig As Integer

    Set oSh1 = Worksheets("Facture")
    Set oSh2 = Worksheets("Registre des factures")

    iEcr = oSh2.Range("A" & Rows.Count).End(xlUp).Row + 1 'récupération de la derniere ligne utilisée de la feuille "Registre facture"

    For iLig = 2 To 13 'boucle surles lignes 2 à 13 de la feuille "Facture"
        oSh2.Cells(iEcr, iLig - 1) = oSh1.Range("B" & iLig).Value 'recopie les valeurs des différentes lignes ("Facture") sur les différentes colonnes ("Registre des factures")
    Next iLig

    oSh2.Columns("A:L").AutoFit 'ajustement automatique de la largeur des colonnes

    If MsgBox("Facture enregistrée" & vbCrLf & "Voulez-vous effacer les informations ?", vbYesNo + vbExclamation) = vbYes Then 'boite de dialogue demande de suppression
        oSh1.Range("B2:B13").ClearContents 'si réponse suppression = oui -> on supprime le contenu du tableau en feuille "Facture"
    End If

    Set oSh1 = Nothing
    Set oSh2 = Nothing

End Sub

Hello,

Ci-joint le code commenté.

Bonne lecture !

Bouben

EDIT : 2 commentaires valent mieux qu'un !

Merci beaucoup à vous Melch et Bouben!!

Rechercher des sujets similaires à "retranscription donnees tableau recapitulatif"