Incrementation dans autre feuille avec champ répétitif

Bonsoir à tous,

j'ai parcouru le forum et je n'ai pas trouvé mon bonheur, alors voici mon probleme :

Dans le feuil1 de mon classeur, j'ai une facture

Et je voudrais récupérer dans la feuil2 les champs suivant :

sur la ligne 1 : Date - Nom Client - Désignation - Qt - Prix Total de la ligne

si il y a 6 lignes de désignation je répète donc 6 fois le nom client et la date

et a chaque clic sur un bouton sur la feuil1 j’incrémente mon fichier.

j’espère avoir été clair, merci de votre aide à très bientôt

en PJ un exemple

38testincrem.zip (8.12 Ko)

Bonjour exter91,

Peux-tu mettre le résultat que tu souhaites obtenir sur la 2è feuille ? Ça irait plus vite.

Et Voila

Merci

51testincrem.xls (19.50 Ko)

Ok. Par contre on met la date avant ou le nom du client ?

Ton dernier fichier ne correspond pas à ta première demande.

Ah oups, plutôt la date avant.

Merci

Essaie avec cette macro :

Sub compile()
    Dim derlign1&, derlign2&
    Application.ScreenUpdating = False
    With Sheets("Feuil1")
        derlign1 = .Range("a" & Rows.Count).End(xlUp).Row
        derlign2 = Sheets("Feuil2").Range("a" & Rows.Count).End(xlUp).Row + 1
        Sheets("Feuil2").Cells(derlign2, 1).Resize(derlign1 - 7).Value = .[g1]    'date
        Sheets("Feuil2").Cells(derlign2, 2).Resize(derlign1 - 7).Value = .[b1]    'nom du client
        Sheets("Feuil2").Cells(derlign2, 3).Resize(derlign1 - 7, 2).Value = .Cells(8, 1).Resize(derlign1 - 7, 2).Value    'désignation et quantité
        Sheets("Feuil2").Cells(derlign2, 5).Resize(derlign1 - 7).Value = .Cells(8, 4).Resize(derlign1 - 7, 2).Value    'prix total par ligne
    End With
End Sub

Ah super ... Merci

est ce que tu peu me donner quelques explications sur le code pour que je comprenne le fonctionnement de celui-ci ?

si cela n'est pas trop long, l’intérêt étant bien-sur d'apprendre .

Merci beaucoup pour ton aide.

L'instruction

derlign1 = .Range("a" & Rows.Count).End(xlUp).Row

c'est pour trouver la dernière ligne de la première feuille. Le principe étant de partir de la dernière ligne de la colonne A et de remonter jusqu'à trouver une cellule non vide. Ça te donne la dernière ligne. C'est comme si tu te plaçais sur la 65536è ligne (pour excel 2003) et que tu faisais un CTRL+HAUT.

Le .Row te donne le numéro de la ligne.

Idem pour

derlign2 = Sheets("Feuil2").Range("a" & Rows.Count).End(xlUp).Row + 1

Ça te donne la dernière ligne de la colonne A de la feuil2.

Pour avoir des explications sur certaines parties du code tu te places sur un mot et tu appuies sur F1.

Exemple pour l'instruction Resize, place-toi sur le mot et tape F1. C'est très utile !!

L'instruction

Application.ScreenUpdating = False

te permet de désactiver la mise à jour de l'écran et peut souvent te faire gagner du temps.

Si tu veux de plus amples informations n'hésite pas.

Merci pour ta réactivité et tes explications, je vais me pencher sur cela et au besoin n’hésiterais pas à reposter...

Encore Merci

Rechercher des sujets similaires à "incrementation feuille champ repetitif"