XL 2016 Extraction plages multiples VBA

GUY rrr

XLDnaute Occasionnel
Bonjour le forum,

Je souhaite extraire certaines données d'un tableau sur feuil1 et les reporter sur Feuil2. les données sont en une seule plage de colonnes contigües.
J'y arrive à l'aide d'une macro.
Mais lorsque je souhaite extraire certaines autres données du même tableau sur feuil1 et les reporter sur feuil3, je n'y arrive pas car les données sont en deux plages de colonnes non contigües.
J'ai bien tenté plusieurs "trucs" mais n'arrive pas à rendre la macro fonctionnelle.
Quelqu'un aurait-il une idée afin de rendre la macro fonctionnelle pour la feuil3 ?

Merci pour vos suggestions.
 

Pièces jointes

  • Essai GUY.xlsm
    19.5 KB · Affichages: 8
Solution
Bonjour Roblochon, le forum,

Mais c'est bien sûr, à vous lire cela est tellement évident ...
Bon comme je suis (surtout dans le domaine des macros), j'étais focalisé sur CopyToRange:=Sheets("Feuil3").Range("A19:L19"), Unique:=False.
Je pouvais le tourner dans tous les sens :eek:... N'importe quoi ... 😔

Un grand MERCI pour votre réponse rapide 👍

Bonne soirée

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Juste votre plage d'extraction qui va de la colonne A à O et non de A à L :)

VB:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("A6:A7")) Is Nothing Then
        Sheets("Feuil1").Range("E2:G2").ClearContents
        If Target.Count > 1 Then Exit Sub
        With Sheets("Feuil1")
            If Sheets("Feuil3").Range("A6") <> "" Then
                .Range("E2") = Sheets("Feuil3").Range("A7")
                .Range("F2") = ">=" & Sheets("Feuil3").Range("C1").Value2
                .Range("G2") = "<=" & Sheets("Feuil3").Range("C2").Value2
            End If
            .Range("A19:O" & .[A65000].End(xlUp).Row).AdvancedFilter _
                            Action:=xlFilterCopy, _
                            CriteriaRange:=.Range("E1:G2"), _
                            CopyToRange:=Sheets("Feuil3").Range("A19:L19"), Unique:=False
        End With
    End If
End Sub

Cordialement
 

Pièces jointes

  • Essai GUY.xlsm
    28.2 KB · Affichages: 6

GUY rrr

XLDnaute Occasionnel
Bonjour Roblochon, le forum,

Mais c'est bien sûr, à vous lire cela est tellement évident ...
Bon comme je suis (surtout dans le domaine des macros), j'étais focalisé sur CopyToRange:=Sheets("Feuil3").Range("A19:L19"), Unique:=False.
Je pouvais le tourner dans tous les sens :eek:... N'importe quoi ... 😔

Un grand MERCI pour votre réponse rapide 👍

Bonne soirée
 

GUY rrr

XLDnaute Occasionnel
Roblochon,

Je rencontre un étrange problème.
Les macros font le job sur le classeur exemple mais pas sur mon classeur final ...
J'explique,
Sur mon classeur final, la macro fournie fonctionne et copie bien les éléments demandés au bons endroits.
En changeant juste la plage d'extraction et le nom des feuilles, les éléments demandés sont bien copiés aux bons endroits sauf les éléments de la colonne N (colonne N du classeur exemple feuil1) 🧐
Aucune protection, données similaires aux autres ...
Mais que se passe-t-il ??? 😳

Une petite idée ?
 

GUY rrr

XLDnaute Occasionnel
Roblochon, le forum,

Je viens de résoudre mon petit problème.
A titre informatif je donne ma solution :
Sur mon classeur final, mes entêtes de colonnes K et N avaient le même nom ...
J'en ai changé un des deux et ça marche 🥳.

Bonne soirée
 

Discussions similaires

Statistiques des forums

Discussions
312 215
Messages
2 086 330
Membres
103 187
dernier inscrit
ebenhamel