Macro pour créer des feuilles et supprimmer des lignes

  • Initiateur de la discussion Initiateur de la discussion océanne
  • Date de début Date de début

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 !

océanne

XLDnaute Occasionnel
Bonsoir le forum,

Voici mes deux nouveaux soucis :

Dans un classeur qui comporte trois feuilles, j'ai sur un des onglets une liste de prénoms sans doublons sur une colonne, cette liste peut varier . je renomme cette plage variable lors de chaque traitement

Problème 1
J'aimerai pouvoir générer autant de feuilles que de prénoms dans ma liste et renommer toutes ces feuilles par les différents prénoms qui composent ma liste.
Problème 2
Ensuite je colle sur toute ces nouvelles feuilles une même base de données sur la même plage de cellules. Et là je voudrai supprimer toutes les lignes qui contiennent dans la colonne A un prénom différent de celui du nom de ma feuille.(je veux répéter cette opération de suppression sur chacune des nouvelles feuilles crées)

Une grosse bise virtuelle par avance à celui ou celle qui prendra de son temps pour examiner mon problème et réaliser si c'est possible une petite macro.

Océanne
 
Dernière édition:
Re : Macro pour créer des feuilles et supprimmer des lignes

Bonsoir océanne,

Voilà un petit fichier qui va créer les feuilles avec les prénoms de la colonne (A)
pour le reste essaye de donner un peu plus d'explication avec l'aide de ce fichier et renvoie le.
Salut Yves
 

Pièces jointes

Re : Macro pour créer des feuilles et supprimmer des lignes

Bonjour Oceanne,

Une question dans la liste de prénoms il y aura des prénoms identique?
Car excel ne peu pas nommés des feuilles 2 fois de la même façon.
Sinom il faudra ajouter un numéro exemple toto1, tata2,
toto3, tata4.
@+ Yves
 
Re : Macro pour créer des feuilles et supprimmer des lignes

Bonjour,

Je te propose une solution avec :

PHP:
Private Sub CommandButton1_Click()
DerLi = Sheets("Feuil1").Range("A65536").End(xlUp).Row
For i = 2 To DerLi
  NomFeuille = Sheets("Feuil1").Cells(i, 1)
  Sheets.Add.Name = NomFeuille
  Sheets("Feuil1").Range("A1:B" & DerLi).Copy Destination:=Sheets(NomFeuille).Range("A1:B" & DerLi)
  For j = 2 To DerLi
    If Sheets(NomFeuille).Cells(j, 1) <> NomFeuille Then Sheets(NomFeuille).Rows(j).Delete
  Next j
Next i
End Sub

A essayer ...
 
Re : Macro pour créer des feuilles et supprimmer des lignes

Bonjour Papaye,

C'est très sympa de t'être également penché sur mon problème, mais à l'exécution, j'ai un bug une feuil8 est générée (alors que 6 seulement devraient être créees puisque je n'ai que 6 prénoms distincts dans ma liste soit 6 feuilles + la feuille 1 ) et excel ne parvient pas à renommer cette feuil8. (ce qui est normal puisqu'il n'y a bien que 6 prénoms)

Et je ne parviens pas à modifier le code pour parvenir à mon résultat.

à bientôt peut être

Océanne
 
Re : Macro pour créer des feuilles et supprimmer des lignes

Re,

Si tu as bug, cela provient surement du fait que tu as deux prénoms identiques dans ta liste. Excel plante, car il ne peut créer deux onglets avec le même nom.
Dans ton message précédant, tu indiquais que ce cas n'est pas possible (2 prénoms identiques dans ta liste).
Ma question est donc : peut tu avoir plusieurs lignes avec le même prénom ?
 
Re : Macro pour créer des feuilles et supprimmer des lignes

Je ne suis pas certaine d'avoir compris ton problème ... je te propose une autre solution.

PHP:
Private Sub CommandButton1_Click()
DerLi = Sheets("Feuil1").Range("A65536").End(xlUp).Row
For i = 2 To DerLi
  NomFeuille = Sheets("Feuil1").Cells(i, 1)
  ExisteDeja = False
  For j = 1 To ActiveWorkbook.Sheets.Count
    If Sheets(j).Name = NomFeuille Then ExisteDeja = True
  Next j
  If ExisteDeja = False Then
    Sheets.Add.Name = NomFeuille
    Sheets("Feuil1").Range("A1:B" & DerLi).Copy Destination:=Sheets(NomFeuille).Range("A1:B" & DerLi)
    For j = DerLi To 2 Step -1
      If Sheets(NomFeuille).Cells(j, 1) <> NomFeuille Then Sheets(NomFeuille).Rows(j).Delete
    Next j
  End If
Next i
End Sub

Ce code permet de tester si un prénom a déjà été vu. Si c'est le cas, rien ne se fait. Sinon, il crée un onglet avec le prénom rencontré et supprime les lignes qui ne contiennent pas ce prénom.
 
Re : Macro pour créer des feuilles et supprimmer des lignes

Coucou ZIopizza et Papaye

Merci encore à vous deux, la dernière solution proposée par "l'oncle Pizza" (si mon italien me fait pas défaut) me va parfaitement.

Pour répondre à Papaye, sur la liste de publication des feuilles, je n'avais pas de doublons dans les prénoms, par contre dans la base de donnée que je colle dans toutes les feuilles crées là Oui.

Je vous embrasse très fort tous les deux.

Océanne
 
- 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
7
Affichages
975
Retour