Transfert vers autres feuilles

  • Initiateur de la discussion Initiateur de la discussion Harold
  • 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 !

H

Harold

Guest
Bonjour à tous,

Voilà, je crois avoir déjà vu, sur ce forum, ce que je recherche, mais je ne le trouve plus.

Voilà mon problème :
sur une feuille (Feuil1), j'ai une liste de ville en A, les Nom en B et les grade en C.
J'aurai aimer pouvoir transférer (tout en gardant la Feuil1 intacte) les Nom et les grades, par rapport à chaque ville, sur une feuille qui porterait le nom de la ville.

Mais voilà je ne sais pas comment faire pourriez vous m'aider SVP

Merci d'avance
 

Pièces jointes

Re : Transfert vers autres feuilles

Bonjour Harold, bonjour le forum,

Une petite macro mais attention elle ne fonctionne que si les onglets de toutes les villes existent au préalable.

Code:
Sub Macro1()
Dim cel As Range 'déclare la variable cel (CELlule)
Dim dest As Range 'déclare la variable dest (DESTination)
 
'boucle sur toutes les cellules éditées cel de la colonne A de l'onglet "Feuil1"
For Each cel In Sheets("Feuil1").Range("A2:A" & Sheets("Feuil1").Range("A65536").End(xlUp).Row)
    Set dest = Sheets(cel.Value).Range("A65536").End(xlUp).Offset(1, 0) 'définit la cellule de destination
    cel.EntireRow.Copy Destination:=dest 'copie et colle la ligne entière de la cellule cel
Next cel 'prochaine cellule de la boucle
End Sub
 
Re : Transfert vers autres feuilles

Merci Robert,

Ca fonctionne, le seul problème, comme tu me l'as précisé est que les feuilles doivent être créée dans un premier temps (j'en ai 380), mais bon je vais fais avec.

En tout cas un grand merci à toi Robert, ça va beaucoup m'aider

Si quelqu'un avait le complément de la macro pour créer les feuilles par rapport au nom, ce serait bien Merci
 
Re : Transfert vers autres feuilles

Bonjour Harold, Robert,

Puisque j'avais fait un exemple avant de m'absenter, le voici:

Par contre il ne reprend pas le nom de la ville dans les feuilles créées, seulement Nom et le Grade

A bientôt
 
Re : Transfert vers autres feuilles

Merci Hasco,

Seulement il me dit qu'il y a une erreur de compilation sur cette partie

Plage.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal

en surlignant
xlSortNormal

lorsque je clique sur le bouton, est-ce normal?
 
Re : Transfert vers autres feuilles

Re bonjour Harold,

Alors tu supprime tout ce qu'il y a après xlTopBottom pour que ta ligne ressemble à:

Code:
Plage.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

En effet le paramètre DataOption1 dépend, je crois des versions excel utilisées, de plus il n'est pas strictement nécessaire dans ton cas.

A bientôt
 
Re : Transfert vers autres feuilles

Bonjour le fil, bonjour le forum,

Plus lent... Une première boucle génere les onglets, la seconde copie...
Code:
Sub Macro1()
Dim cel As Range
Dim dest As Range 'déclare la variable dest (DESTination)
Dim sh As Worksheet
 
For Each cel In Sheets("Feuil1").Range("A2:A" & Sheets("Feuil1").Range("A65536").End(xlUp).Row)
  
    For Each sh In Sheets
        If UCase(sh.Name) = UCase(cel.Value) Then GoTo suite
    Next sh
    Sheets("Feuil1").Copy After:=Sheets(Sheets.Count)
    With ActiveSheet
        .Range("A2:C" & .Range("A65536").End(xlUp).Row).ClearContents
        .Name = cel.Value
    End With
suite:
Next cel
 
'boucle sur toutes les cellules éditées cel de la colonne A de l'onglet "Feuil1"
For Each cel In Sheets("Feuil1").Range("A2:A" & Sheets("Feuil1").Range("A65536").End(xlUp).Row)
    Set dest = Sheets(cel.Value).Range("A65536").End(xlUp).Offset(1, 0) 'définit la cellule de destination
    cel.EntireRow.Copy Destination:=dest 'copie et colle la ligne entière de la cellule cel
Next cel 'prochaine cellule de la boucle

End Sub
 
Re : Transfert vers autres feuilles

Merci Hasco et Robert,

J'ai pris la macro d'Hasco, j'ai dû retiré une partie du code :

Plage.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

pour que ça foncionne sur excel 2000 (la macro fonctionne très bien comme elle est sur excel 2003) et maintenant tout fonctionne bien à part qu'il ne faut que 31 caractères maxi pour le nom des feuilles, mais ça s'est pas grave je les ferais manuellement.

Un grand merci à vous deux
 
Re : Transfert vers autres feuilles

bonjour Harold,

Harold à dit:
j'ai dû retiré une partie du code :

Plage.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

tu es conscient que la macro nécessite une plage triée pour pouvoir y retrouver ses petits. Donc si tu enlève cette partie de macro, il faudra faire le tri manuellement avant de la lancer.

A bientôt
 
Re : Transfert vers autres feuilles

Re,

Le tri est déjà fait à l'origine pour la vérification des données, donc la macro, n'a pas besoin de le faire.

mais merci quand même de l'info, au cas ou j'ai encore besoin de cette macro.

à bientôt
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
15
Affichages
791
Réponses
3
Affichages
499
Retour