COPIE SELECTIVE d'un tableau en vba

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

theshining36

XLDnaute Nouveau
Bonjour à tous ,

Bon Voilà, je suis débutante en VBA, je suis secrétaire et bloque sur un code en VBA depuis plusieurs jours et j'aimerais bien avoir une petite aide de votre part.
J'ai un tableau sur une feuille (nommée "articles") sur la plage ("A1:K17") (je précise que la ligne A est l'entête du tableau)
La colonne C du tableau correspond à des noms de 3 pays (italie, france, allemagne...)
J'aimerais créer un programme qui crée automatiquement 3 nouveaux tableaux dans les 3 feuilles (déjà existentes) nommées ("Italie", "France", "Allemagne"), afin que chaque nouveau tableau ne prenne en compte que les lignes correspondantes au nom du pays (nom des feuilles)
par exemple, dans la feuille("France"), la colonne C du tableau sera égale à "France" , idem pour Allemagne et Italie
Je précise que le tableau initial est amené à évoluer (des lignes peuvent être supprimées ou au contraire rajoutées)

Je cherche depuis plusieurs heures pour réaliser ce code, en vain
merci à ceux qui voudront prendre le temps de m'aider un peu
 

Pièces jointes

Dernière édition:
Re : COPIE SELECTIVE d'un tableau en vba

Bonjour theshining36,

Quelque chose du type du fichier joint:
Code:
Sub Macro1()
    'avec la feuille 'Articles'
    With Sheets("Articles")
        ' on efface les données précdentes de la feuille 'Allemagne'
        Sheets("Allemagne").Range("A1").CurrentRegion.Clear
        'on supprime un éventuel filtre
        .Range("A1").CurrentRegion.AutoFilter
        'on filtre la zone courante
        .Range("A1").CurrentRegion.AutoFilter Field:=3, Criteria1:="Allemagne"
        'on copie les cellules visibles
        .Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy
        ' on colle tout dans la feuille 'Allemagne'
        Sheets("Allemagne").Range("A1").PasteSpecial Paste:=xlPasteAll
        
        Sheets("Italie").Range("A1").CurrentRegion.Clear
        .Range("A1").CurrentRegion.AutoFilter Field:=3, Criteria1:="Italie"
        .Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy
        Sheets("Italie").Range("A1").PasteSpecial Paste:=xlPasteAll
        
        Sheets("France").Range("A1").CurrentRegion.Clear
        .Range("A1").CurrentRegion.AutoFilter Field:=3, Criteria1:="France"
        .Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy
        Sheets("France").Range("A1").PasteSpecial Paste:=xlPasteAll
        'on supprime le filtre de la feuille 'Articles'
        .Range("A1").CurrentRegion.AutoFilter
   End With
    'on désactive le mode Copier/Coller
    Application.CutCopyMode = False
End Sub
 

Pièces jointes

Dernière édition:
Re : COPIE SELECTIVE d'un tableau en vba

Bonjour

A moins que tu ne tiennes vraiment à une macro, je te propose plutot un tableau croisé dynamique, beaucoup plus souple et simple d'emploi je trouve. Deux types de présentation (sur deux feuilles séparées) en pièce jointe. Tu peux bien sur faire un TCD par pays si tu veux ou plus simplement un seul tableau et mettre le nom du pays dans le filtre du rapport.
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
559
Compte Supprimé 979
C
Réponses
17
Affichages
2 K
Réponses
1
Affichages
585
Retour