Scinder un onglet en plusieurs onglets

Résolu
netabisse -  
netabisse Messages postés 12 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour

J'ai un fichier avec un onglet général.
Je souhaite scinder cet onglet en créant un onglet par Direction 6 en tout
J'avais déjà un fichier du même type où la macro fonctionne bien, mais sur celui-ci qui est construit de façon identique ça ne fonctionne pas...
Pourriez-vous m'aider, SVP
voici mon code


Sub Copie()
Dim Sh As Object, Lg As Long
With ActiveSheet
For Each cel In .Range("C5:C" & .Range("C" & Rows.Count).End(xlUp).Row).Cells
Set Sh = Sheets("Q1_" & cel.Value)
Lg = Sh.Range("A" & Rows.Count).End(xlUp).Row + 1
If Application.WorksheetFunction.CountIf(Sh.Range("A:A"), Range("A" & cel.Row).Value) = 0 Then _
.Range("A" & cel.Row & ":U" & cel.Row).Copy Destination:=Sh.Range("A" & Lg)
Next
End With
End Sub

En fait, cela ne me copie que la 1ère donnée pour chaque onglet.
Je ne sais pas si je suis très claire...
L'onglet général fait environ 70 lignes
de la colonne A à U

Merci de votre aide

Isabelle

8 réponses

Gyrus Messages postés 3334 Date d'inscription   Statut Membre Dernière intervention   526
 
Bonjour,

La copie des données est conditionnée par l'instruction
If Application.WorksheetFunction.CountIf(Sh.Range("A:A"), Range("A" & cel.Row).Value) = 0
Traduction : si la donnée de la colonne A de la feuille Générale est déjà présente dans la colonne A de la feuille Q1_x, la copie n'est pas réalisée.

A+
0
netabisse
 
Bonjour Gyrus

Merci pour ton retour
Mais je n'ai pas vraiment compris, je ne suis pas du tout connaisseuse du langage VBA.
Dans l'onglet de synthèse "Q1", mes entêtes de colonnes sont en ligne 4, de la colonne A à U.
Dans la colonne C, j'ai le nom d'une région (Alsace, Lorraine...)
A noter que cet onglet est classé par ordre alphabétique sur la colonne C nom de la région

Les autres onglets sont construits de la façon suivante
- nom de l'onglet "Q1_NomdelaRégion".
- j'ai mis les mêmes entêtes de colonnes en ligne 5 de A à U.
- les lignes sous les entêtes de colonnes sont vides.

En espérant que ces explications complémentaires pourront t'aider à m'aider

Merci encore

Isabelle
0
Gyrus Messages postés 3334 Date d'inscription   Statut Membre Dernière intervention   526
 
Ton programme balaye chaque cellule de la colonne C de la feuille de synthèse "Q1". J'ai bien compris qu'il s'agit de régions.
Sur la même ligne, en colonne A il y a une valeur que tu ne cites pas dans ton explication. Je l'appelle Vx dans la suite.
Le programme va contrôler dans la feuille qui correspond à cette région si la donnée Vx est présente dans la colonne A.
Si elle n'est pas présente, la copie est réalisée. Si elle est présente, la copie n'est pas réalisée.
Voila qui peut expliquer pourquoi tu n'obtiens une copie que pour la 1ère donnée pour chaque feuille.

Sans être connaisseuse du langage VBA, tu peux comprendre que je ne suis pas devin. Sans voir le classeur, je peux difficilement t'aider d'avantage à moins que tu fournisses la boule de cristal :)

A+
0
netabisse Messages postés 12 Date d'inscription   Statut Membre Dernière intervention  
 
heu, ok mais je fais comment pour insérer le fichier?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Gyrus Messages postés 3334 Date d'inscription   Statut Membre Dernière intervention   526
 
0
netabisse Messages postés 12 Date d'inscription   Statut Membre Dernière intervention  
 
Super merci
voici donc mon fichier

https://www.cjoint.com/?3IrrcRxcItY

A +
0
Gyrus Messages postés 3334 Date d'inscription   Statut Membre Dernière intervention   526
 
Tu peux commencer par regarder le résultat obtenu en supprimant la condition citée précédemment
https://www.cjoint.com/?CIrrDycaCDJ

A+
0
netabisse Messages postés 12 Date d'inscription   Statut Membre Dernière intervention  
 
Juste génial!
merci beaucoup
je crois avoir repéré l'erreur dans mon code.



Merci encore et bonne soirée:
0