[VBA] Selection conditionelle copy newsheet
CryingJoke
-
aminea Messages postés 2 Statut Membre -
aminea Messages postés 2 Statut Membre -
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
- Copy file - Télécharger - Divers 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