Copier coller lignes suivant valeurs vers différents onglets

Bonjour à toutes et tous,

J'ai une base de données avec différentes valeurs en colonne A (5 au total) mais plusieurs lignes non identique.

J'ai aussi 5 onglets annexes.

Mon but : En fonction de la valeur en copier l'ensemble dans l'onglet qui va bien. Exemple :

Copier toutes les lignes dont la valeur en A = 01 vers l'onglet "PRINCIPAL", puis copier toutes les lignes dont la valeur en A =02 vers l'onglet Eau potable, etc (5 conditions au total).

Je n'ai aucun début de macro, j'en ai essayé plusieurs mais aucune concluante, aucune identique, et surtout difficile de déchiffrer.

Je vous remercie de l’intérêt que vous porterez à ma demande.

En PJ un exemple.

28classeur1.xlsx (12.15 Ko)

bonjour

solution 1 très excellienne

voir le fichier joint

cliquer sur la flèche en cellule H21 pour tester le filtre

les onglets par numéro sont donc inutiles, le filtre joue ce rôle

solution 2, plus lourde

mettre le même TCD que celui proposé en onglet "01-rpincipal" et le filtrer sur 01

laisser en permanence le filtre

mettre le même TCD que celui proposé en onglet "02-eaupotable" et le filtrer sur 02

laisser en permanence le filtre

etc. pour les autres onglets

aucune formule, aucun VBA

que de l'Excel pur jus 1ère pression à froid

amitiés

Bonjour,

Une proposition à étudier.

J'espère que cela fonctionnera avec ta version Excel 2007.

Cdlt.

33jahman.xlsm (37.46 Ko)

Merci pour vos reponses, je les consulterai vos pj lundi car ce week end je ne peux pas. Le tcd ou filtre n’est pas possible. Les lignes s’ajoutent a un tableau deja existant, et a droite de ces meme lignes il y a des formules.

Merci a vous. Je vous tiens au courant

Par ailleurs, il ne me semble pas etre sur Excel 2007 mais sur une version plus recente. Bizarre. Je regarderai ca aussi. Merci

Bonjour jahman,

tu a écrit :

il ne me semble pas être sur Excel 2007 mais sur une version plus récente.

c'est très facile de voir si tu es sur Excel 2007 ou non :

screen

au cas où tu as une version ultérieure d'Excel, n'oublie pas d'indiquer laquelle dans tes infos de config du forum.

dhany

Bonjour,

jmd ta solution peut finalement amener à quelque chose d'interessant. Juste lorsque je met le nom de mes colonnes dans "LIGNES" le tableau m'affiche qu'une seule colonne nommée "Etiquettes de lignes". Comment fais-tu ?

re

joins un exemple de ton fichier

Oui, mais quand je fais la même chose, bah ca ne donne pas le même résultat ^^

pourtant les TCD c'est pas compliqué mais la je sèche....

Regarde en PJ ce que moi j'obtiens.

Merci

Bonjour,

Tu dois modifier la disposition du rapport en choisissant la forme tabulaire.

Ensuite, tu supprimes les sous-totaux si nécessaire.

Sinon, quid de ma proposition ?

Cdlt.

Oui, mais quand je fais la même chose, bah ca ne donne pas le même résultat ^^

pourtant les TCD c'est pas compliqué mais la je sèche....

Regarde en PJ ce que moi j'obtiens.

Merci

re

salut Chris

il faut modifier la présentation de ton TCD,

soit "mettre sous forme tabulaire" (tout le TCD devient d'un coup table comme je l'ai montré)

soit champ par champ. Exemple, clique droit sur Belgique, propriété du champ, "afficher les étiquettes d'éléments sous forme de tableau". Recommencer pour le "1".

bonne journée à tous

Merci à tous pour vos idées. Malgrè que dans l'immédiat je ne vais en retenir aucune elles vont m'aider par la suite.

Jean Eric, ta solution parait être la plus adaptée à mon cas et je pense la mettre en place mais il convient de travailler sur mon fichier avant (Tableau). En attendant, j'ai trouvé une solution toute aussi efficace mais moins esthétique.

jmd merci pour le tcd, j'ignorais que l'on pouvait avoir ce tableau sous cette forme.

Bonne continuation

Bonjour jahman,

merci d'avoir mis à jour tes infos de config pour ta version d'Excel « 2016 FR » !

bonne continuation à toi aussi !

dhany

Bonjour,

Suite à ton MP non sollicité, auquel j'ai répondu, peux-tu joindre un petit fichier représentatif ?

Cdlt.

Concrètement j'ai ajouté une feuille pour un insérer 5 filtres avancés. Dela je copie les données sur le bon onglet. Cela se rapproche de l'idée duTCD. Mais temporairement c'est efficace, pas esthétique et peut etre moins rapide mais je n'ai pas les compétences (bien que je soit très interessé par le sujet) pour créer un code opérationnel. J'ai l'idée mais je ne sais pas l'écrire LOL.

Le soucis c'est que j'ai un tableau sur lequel je dois m'adapter, c'est la contrainte !

Ci dessous la macro qui me permet d'obtenir le resultat souhaité. Un code très scolaire.

Sub Macro3() 'Cette Macro extrait chaque ligne de chaque budget sur  "feuille 1"
 Application.ScreenUpdating = False
Application.EnableEvents = False
 With Worksheets("Feuil1").Select
 Rows("3:1000").Select
    Selection.ClearContents
    Range("A3").Select
   Sheets("IMPUTATIONS NVLLES DEPENSES").Range("A3:j1974").AdvancedFilter Action _
        :=xlFilterCopy, CriteriaRange:=Range("A1:J2"), CopyToRange:=Range("A4"), _
        Unique:=False

    Sheets("IMPUTATIONS NVLLES DEPENSES").Range("A3:J1421").AdvancedFilter Action _
        :=xlFilterCopy, CriteriaRange:=Range("L1:U2"), CopyToRange:=Range("L3"), _
        Unique:=False

    Sheets("IMPUTATIONS NVLLES DEPENSES").Range("A3:J1421").AdvancedFilter Action _
        :=xlFilterCopy, CriteriaRange:=Range("W1:AF2"), CopyToRange:=Range("W3"), _
        Unique:=False

    Sheets("IMPUTATIONS NVLLES DEPENSES").Range("A3:J1421").AdvancedFilter Action _
        :=xlFilterCopy, CriteriaRange:=Range("AH1:AQ2"), CopyToRange:=Range("AH3") _
        , Unique:=False

    Sheets("IMPUTATIONS NVLLES DEPENSES").Range("A3:J1421").AdvancedFilter Action _
        :=xlFilterCopy, CriteriaRange:=Range("AS1:BB2"), CopyToRange:=Range("AS3") _
        , Unique:=False
  End With

      Application.EnableEvents = True
    Application.ScreenUpdating = True
End Sub

Sub Macro13() 'Cette Macro copie données de "Feuil1" vers chaque onglet/budget
 Application.ScreenUpdating = False
Application.EnableEvents = False
    Sheets("Feuil1").Select
    Range("J4").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlToLeft)).Select
    Range(Selection, Selection.End(xlToLeft)).Select
    Range(Selection, Selection.End(xlToLeft)).Select
    Selection.Copy
    Sheets("PRINCIPAL").Select

    Range("B13").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

    Sheets("Feuil1").Select

    Range("U4").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlToLeft)).Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("EAU POTABLE").Select
    Range("B17").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("J34").Select
    Sheets("Feuil1").Select

    Range("AF4").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlToLeft)).Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("ASSAINISSEMENT").Select
    Range("B18").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

    Sheets("Feuil1").Select

    Range("AQ4").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlToLeft)).Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("TRANSPORTS").Select

    Range("B17").Select
    ActiveSheet.Paste
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Feuil1").Select

    Range("BB4").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlToLeft)).Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("DECHETS").Select
    Range("B16").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("PRINCIPAL").Select
    Application.EnableEvents = True
    Application.ScreenUpdating = True
End Sub
Rechercher des sujets similaires à "copier coller lignes suivant valeurs differents onglets"