Macro pour Copier cellules vers autre onglet

Bonjour à tous

Je suis nouveau ici et étant en ce moment sur la création d'un fichier client, vos réponses sur les autres post me sont d'une grande aide. Mais là, pour un truc précis je cale...

Je m'explique :

J'ai un fichier client avec plusieurs onglets (voir fichier pour que ca soit plus clair).

Mon objectif est que quand je clique sur le nom d'un client, dans le 1er onglet, que celui ci apparaisse dans le 3eme onglet avec en prime toutes les informations le concernant (qui sont elles dans le 2eme onglet)

Ou autrement dit, en cliquant sur un client, ça m'ouvre le 3eme onglet et m'affiche le détail de ses commandes.

Je pense que mon fichier sera plus parlant que mes explications.

134mon-exemple.zip (7.14 Ko)

Merci de votre aide

Cordialement

Bonjour,

avec double-clic sur le nom client (feuille1)

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Application.Intersect(Target, Range("b7:b" & [b65536].End(xlUp).Row)) Is Nothing Then
      With Sheets("Commande")
        .Range("k3") = Target       'nom
        .Range("k2") = "=b7=$k$3"   'critère
        '--- filtre ---
        .Range("a6:d" & .[a65000].End(xlUp).Row).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
        .Range("k1:k2"), CopyToRange:=Sheets("Détail commandes client").Range("a6:d6"), Unique:=False
        .Range("k2:k3").ClearContents
      End With
        Sheets("Détail commandes client").Activate
    End If
End Sub

PS: évite les noms d'onglet "à rallonge", source d'erreur !

Amicalement

Claude

159chris13127-filtre.zip (13.68 Ko)

Merci beaucoup, ça fait exactement ce que je souhaitait.

Je vais pouvoir l'adapter à mon fichier.

Encore merci

N'oublie pas la petite formalité,

reviens si tu n'arrive pas à adapter.

a resolu3

Heu .... en effet je n'ai pas réussi a l'adapter à mon fichier.

Je pense donc que le plus simple c 'est de joindre ici la vrai matrice de mon fichier. Comme ca pas de soucis d'adaptation.

Je l'ai mis en zip, car il dépasse la taille maximale autorisée des 200ko.

Merci d'avance, cordialement

Bonsoir,

Ton fichier adapté,

je t'avais bien dit d'éviter les noms d'onglet "à rallonge", source d'erreur !

dans le 3ème onglet, il y avait un espace à la fin qui trainait,

j'en ai profité pour le raccourcir.

Ceci-dit, il fallait quand même adapter le code

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Application.Intersect(Target, Range("d8:d" & [d65536].End(xlUp).Row)) Is Nothing Then
        Application.ScreenUpdating = False
      With Sheets("Collectes")
        .Range("q3") = Target       'nom
        .Range("q2") = "=d5=$q$3"   'critère
        '--- filtre ---
        .Range("b4:m" & .[b65000].End(xlUp).Row).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
        .Range("q1:q2"), CopyToRange:=Sheets("Détail collectes client").Range("b5:m5"), Unique:=False
        .Range("q2:q3").ClearContents
      End With
        Sheets("Détail collectes client").Activate
    End If
End Sub

Bonne soirée

Claude

C'est parfait

Ça me donnera l’occasion d'essayer de comprendre pourquoi je n'arrivais pas à adapter ( à part le fait que je n'ai pas de connaissances en macro, et mise à part l'espace en trop dans le nom de l'onglet . . . )

Encore merci, problème réglé !

Bonjour

Après plus d'an an d'utilisation impeccable de cette macro, elle se met à ne plus fonctionner d'un coup.

Cela me marque Erreur 1004, "nom de champs introuvable ou incorrect dans la plage d'extraction"

Voici que que le debogeur me montre alors

Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

If Not Application.Intersect(Target, Range("d8:d" & [d65536].End(xlUp).Row)) Is Nothing Then

Application.ScreenUpdating = False

With Sheets("Collectes")

.Range("z3") = Target 'nom

.Range("z2") = "=d5=$z$3" 'critère

'--- filtre ---

.Range("b4:p" & .[b65000].End(xlUp).Row).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _

.Range("z1:z2"), CopyToRange:=Sheets("Détail collectes client").Range("b5:p5"), Unique:=False

.Range("z2:z3").ClearContents

End With

Sheets("Détail collectes client").Activate

End If

End Sub

Le fait d'avoir rajouté dans mon tableau de base 2 colonnes et d'en avoir enlevé une doit procurer ces erreurs, mais je ne vois pas du tout quelle partie du code changer pour que cela re-fonctionne.

Donc si il y a possibilité de m'aiguiller là dessus, je suis preneur

Merci d'avance et bonne journée.

Bonjour

Sans ton fichier cela va être dur à t'aider

Certes, alors voici le fichier en question.

41mon-fichier.zip (71.96 Ko)

L'objectif étant le même qu'au début de ce post.

Merci beaucoup

Bonjour

Les entêtes de la ligne 5 de la page "Collectes" doivent être identiques aux entêtes de la page "Détail collectes client" à partir de la colonne B jusqu'à la colonne P

Merci, il y avait en effet des différences de titre de colonne.

Si seulement excel pouvait s'exprimer clairement sur les codes d'erreurs et me le dire directement ...

Encore merci et bonne fin de journée.

Rechercher des sujets similaires à "macro copier onglet"