Copier ligne Excel avec un mot clé dans un autre feuille Excel

Bonjour,

J'ai un problème et j'ai vu un problème similaire qui daté de 2013 où 'gmb' avait posté un code comme solution. j'ai essayé de modifier le code macro que gmb avait ajouté dans ton xlsm mais sans succès.

Je voudrais copier les lignes qui ont certains mots clé dans des autre feuilles. C'est à dire, j'ai un exemple en pièce jointe :

J'ai les feuilles des plusieurs mois, dans la colonne "J" de chaque feuille du mois j'ai mis une liste avec différentes mots et selon le mot choisi je voudrais que la ligne soit copiée dans la feuille appelée comme ce mot, par exemple :

Je suis dans la feuille Jui19 et je prends dans la colonne J le mot "Racines", alors je voudrais que toute cette ligne soit copiée dans la feuille appelé Racines.

C'est à fin de planifier après des travaux selon catégorie.

Si quelqu'un pourrait m'aider pour me montrer un code avec 2-3 mois pour un mot clé, par exemple pour ajouter dans la feuille Racines les lignes du mois Jui19 et Aou19 et Sept19, après je crois que je pourrais être capable d'essayer pour les autres feuilles.. parce que pour le moment je n'arrive pas à le faire même avec la feuille d'un seule mois

En vous remerciant d'avance énormément

Salut nacida2002,

premier jet à tester...

Deux macros placées dans 'le module VBA de 'ThisWorbook' pour gérer l'ensemble :

  • la création éventuelle des feuilles 'Mots-clé' si inexistantes ;
  • les MFC et Validation de l'ensemble des feuilles sont supprimées et gérées par VBA ;
  • les listes de validation sont gérées par la macro ci-dessous, les pseudo-MFC par l'autre.
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
'
Dim iIdx%
'
Application.ScreenUpdating = False
'
With Sh
    If Not Intersect(Target, .Range("J:J")) Is Nothing Then iIdx = 1
    If Not Intersect(Target, Union(.Range("H:H"), .Range("L:L"))) Is Nothing Then iIdx = 2
    If Not Intersect(Target, Union(.Range("N:N"), .Range("O:O"), .Range("P:P"))) Is Nothing Then iIdx = 3
    If iIdx > 0 Then
        .Cells.Validation.Delete
        Target.Validation.Add _
            Type:=xlValidateList, _
            Formula1:=IIf(iIdx = 1, "Béton,Chemisage,Hydrocureur,Racines,Travaux A,Travaux D,Cas spéciaux", IIf(iIdx = 2, "Oui,Non", "-,Oui"))
    End If
End With
'
Application.ScreenUpdating = True
'
End Sub

Sauf si tu y tiens comme à la prunelle de tes yeux, je verrais bien la feuille 'TOTAL' disparaître et afficher ces totaux sur chaque feuille pour info permanente.

J'imagine dans l'idéal qu'un changement dans une feuille '..19-20' doit trouver son écho dans sa copie 'Mot-clé' et vice-versa ?!

Dans cette perspective, j'ose croire que le n° Ind. en ['B] est unique ?

Bref, la balle est dans ton camp!

Je laisse les neurones refroidir quelque peu...

A+

Bonjour Curulis57,

MERCI BEAUCOUP !!!!!! Vous avez résolu tout mon casse-tête d´une fois. Maintenant, je vais prendre mon temps pour bien comprendre la macro et tenter de faire des codes similaires pour autres exemples, votre code est de grand aide

Pour la feuille TOTAL votre idée est aussi bonne oui, j´ai mis juste la feuille total à part pour une visualisation rapide des quantités, pas grave en tout cas.

En réponse à "J'imagine dans l'idéal qu'un changement dans une feuille '..19-20' doit trouver son écho dans sa copie 'Mot-clé' et vice-versa ?! Dans cette perspective, j'ose croire que le n° Ind. en ['B] est unique ?" Le nº Ind est unique comme vous mentionnez oui, mais je ne voudrais pas que les changements trouvent son écho dans sa copie ´Mot-clé´, en principe une fois le Mot-clé introduit aucun changement va être fait (si jamais une exception arrive je le ferais manuellement) dans la ligne de la feuille d´origine donc comme ça c´est déjà parfait. MERCIIIII

Rechercher des sujets similaires à "copier ligne mot cle feuille"