[VBA] Selection conditionelle copy newsheet
CryingJoke
-
aminea Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
aminea Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
Je développe actuellement une macro excel en VBA mais, étant novice, je rencontre quelques difficultées.
Voici la structure de ma feuille excel :
File name : GEO_RNSIR
Sheet name : RNSIR
1ère colonne = NOM
2ème colonne = PAYS
La table contient environ 20000 lignes
Je désire trier les pays chacun dans une feuille différente. Je m'explique :
NOM PAYS
BOB FRANCE
PIP ITALIE
JOE ALGERIE
TRU FRANCE
etc...
Le but est de créer une feuille FRANCE dans lequel sera copié la ligne complète de chaque personnes étant en FRANCE. BOB et TRU seront donc copié dans cette feuille FRANCE. Mais PIP va créer une feuille ITALIE et JOE une pour l'ALGERIE.
Le problème, c'est que je ne sais pas comment créer une boucle qui va permettre de créer une feuille pour chaque pays présents dans mon fichier et le remplir avec les infos de la feuille principale.
J'avais pensé à un select case, mais si je dois me farcir 500 case à la main j'suis pas arrivé et bonjour l'optimisation...
Je développe actuellement une macro excel en VBA mais, étant novice, je rencontre quelques difficultées.
Voici la structure de ma feuille excel :
File name : GEO_RNSIR
Sheet name : RNSIR
1ère colonne = NOM
2ème colonne = PAYS
La table contient environ 20000 lignes
Je désire trier les pays chacun dans une feuille différente. Je m'explique :
NOM PAYS
BOB FRANCE
PIP ITALIE
JOE ALGERIE
TRU FRANCE
etc...
Le but est de créer une feuille FRANCE dans lequel sera copié la ligne complète de chaque personnes étant en FRANCE. BOB et TRU seront donc copié dans cette feuille FRANCE. Mais PIP va créer une feuille ITALIE et JOE une pour l'ALGERIE.
Le problème, c'est que je ne sais pas comment créer une boucle qui va permettre de créer une feuille pour chaque pays présents dans mon fichier et le remplir avec les infos de la feuille principale.
J'avais pensé à un select case, mais si je dois me farcir 500 case à la main j'suis pas arrivé et bonjour l'optimisation...
A voir également:
- [VBA] Selection conditionelle copy newsheet
- Exact audio copy - Télécharger - Conversion & Extraction
- Super copy - Télécharger - Gestion de fichiers
- Mise en forme conditionelle - Guide
- Copy protect - Télécharger - Chiffrement
- Total copy - Télécharger - Utilitaires
1 réponse
Bonjour CryingJoke,
Essaie ceci, ça doit marcher avec un peu d'adaptation
Essaie ceci, ça doit marcher avec un peu d'adaptation
Sub Macro() Dim R As Range For Each R In Range("B2:B" & Range("B65536").End(xlUp).Row) If Not (FeuilleExist(R.Value)) Then Sheets.Add ActiveSheet.name = R.Value End If Sheets(R.Value).Select Range("A" & Range("A65536").End(xlUp).Row + 1) = R.Offset(0, -1) Next R End Sub Function FeuilleExist(name As String) As Boolean FeuilleExist = False Dim sh As Worksheet For Each sh In Worksheets If sh.name = name Then FeuilleExist = True Exit For End If Next sh End Function