Répartir données en onglets

Le
JulieH
Bonjour à toutes et tous,

J'ai une feuille "Données" avec environ 1000 lignes de données, en
colonne C il y a des origines : toto - tata - titi (20 différentes).
Parrallèlement, j'ai 20 feuilles nommées : toto - tata

Ce que je souhaiterais réaliser :
- Copier la feuille "Données" dans chacune des feuilles.
- Pour chacune des feuille effacer toutes les lignes, dont la colonne C
est différente du nom de la feuille.

Globalement, j'arrive à réaliser cela en VBA, mais feuille par feuille !!!
Quelqu'un pourrait-il m'aider à le réaliser d'un seul coup avec un "For
each" par exemple ?

Merci par avance

Julie
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
FFO
Le #4626901
Salut Julie
Je te propose ceci

Code
For i = 1 to Sheets.Count
Sheets(i).Select
Code
Next

J'espère que tu pourras en tirer profit
Dis mi !!!!

Bonjour à toutes et tous,

J'ai une feuille "Données" avec environ 1000 lignes de données, en
colonne C il y a des origines : toto - tata - titi ...(20 différentes).
Parrallèlement, j'ai 20 feuilles nommées : toto - tata...

Ce que je souhaiterais réaliser :
- Copier la feuille "Données" dans chacune des feuilles.
- Pour chacune des feuille effacer toutes les lignes, dont la colonne C
est différente du nom de la feuille.

Globalement, j'arrive à réaliser cela en VBA, mais feuille par feuille !!!
Quelqu'un pourrait-il m'aider à le réaliser d'un seul coup avec un "For
each" par exemple ?

Merci par avance

Julie



JulieH
Le #4626881
Bonjour et merci pour ta réponse rapide,

Je pense que c'est quelque chose comme cela que je cherchais, j'ai
commencé les adaptations. Cela devrait aller.

Julie




Salut Julie
Je te propose ceci

Code
For i = 1 to Sheets.Count
Sheets(i).Select
Code
Next

J'espère que tu pourras en tirer profit
Dis mi !!!!

Bonjour à toutes et tous,

J'ai une feuille "Données" avec environ 1000 lignes de données, en
colonne C il y a des origines : toto - tata - titi ...(20 différentes).
Parrallèlement, j'ai 20 feuilles nommées : toto - tata...

Ce que je souhaiterais réaliser :
- Copier la feuille "Données" dans chacune des feuilles.
- Pour chacune des feuille effacer toutes les lignes, dont la colonne C
est différente du nom de la feuille.

Globalement, j'arrive à réaliser cela en VBA, mais feuille par feuille !!!
Quelqu'un pourrait-il m'aider à le réaliser d'un seul coup avec un "For
each" par exemple ?

Merci par avance

Julie





JB
Le #4623851
Bonsoir,

Exemple:

http://boisgontierjacques.free.fr/fichiers/Onglets/CreeOngletsService.xls

JB
http://boisgontierjacques.free.fr/

On 19 juil, 11:29, JulieH
Bonjour à toutes et tous,

J'ai une feuille "Données" avec environ 1000 lignes de donnée s, en
colonne C il y a des origines : toto - tata - titi ...(20 différentes).
Parrallèlement, j'ai 20 feuilles nommées : toto - tata...

Ce que je souhaiterais réaliser :
- Copier la feuille "Données" dans chacune des feuilles.
- Pour chacune des feuille effacer toutes les lignes, dont la colonne C
est différente du nom de la feuille.

Globalement, j'arrive à réaliser cela en VBA, mais feuille pa r feuille !!!
Quelqu'un pourrait-il m'aider à le réaliser d'un seul coup av ec un "For
each" par exemple ?

Merci par avance

Julie


JB
Le #4623791
Bonsoir,

Sub Extrait()
Sheets("Donnees").Select
'--- Liste des services
[A1:D10000].AdvancedFilter Action:=xlFilterCopy, CopyToRange:=[G1],
Unique:=True
Sheets("Donnees").Select
For Each c In Range("G2", [G65000].End(xlUp)) ' pour chaque
service
[G2] = c.Value
On Error Resume Next
Sheets(c.Value).Select ' la feuille existe t-
elle?
If Err <> 0 Then
Sheets("Modèle").Copy After:=Sheets(Sheets.Count) ' création
ActiveSheet.Name = c.Value
End If
'-- extraction
Sheets("donnees").[A1:D10000].AdvancedFilter
Action:=xlFilterCopy, _
CriteriaRange:=Sheets("donnees").[G1:G2],
CopyToRange:=[A1:D1]
Sheets("donnees").Select
Next c
End Sub

http://cjoint.com/?htvgmCzQsx


JB

On 19 juil, 11:29, JulieH
Bonjour à toutes et tous,

J'ai une feuille "Données" avec environ 1000 lignes de donnée s, en
colonne C il y a des origines : toto - tata - titi ...(20 différentes).
Parrallèlement, j'ai 20 feuilles nommées : toto - tata...

Ce que je souhaiterais réaliser :
- Copier la feuille "Données" dans chacune des feuilles.
- Pour chacune des feuille effacer toutes les lignes, dont la colonne C
est différente du nom de la feuille.

Globalement, j'arrive à réaliser cela en VBA, mais feuille pa r feuille !!!
Quelqu'un pourrait-il m'aider à le réaliser d'un seul coup av ec un "For
each" par exemple ?

Merci par avance

Julie


Youky
Le #4623781
Bonsoir ,
une autre solution à tester, elle fait direct ce que tu attends
Si la feuille n'existe pas elle est ajoutées.
Youky
Sub dispatche()
For sh = 1 To Sheets.Count
If Sheets(sh).Name <> "Données" Then _
Sheets(sh).Cells.ClearContents
Next
For k = 2 To [Données!C65536].End(3).Row
onglet = Sheets("Données").Cells(k, 3)
On Error Resume Next
lg = Sheets(onglet).[C65536].End(3).Row + 1
If Err <> 0 Then
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = onglet
lg = 1: Err.Clear
End If
Sheets(onglet).Rows(lg).Value = Sheets("Données").Rows(k).Value
Next
End Sub

"JulieH"
Bonjour à toutes et tous,

J'ai une feuille "Données" avec environ 1000 lignes de données, en colonne
C il y a des origines : toto - tata - titi ...(20 différentes).
Parrallèlement, j'ai 20 feuilles nommées : toto - tata...

Ce que je souhaiterais réaliser :
- Copier la feuille "Données" dans chacune des feuilles.
- Pour chacune des feuille effacer toutes les lignes, dont la colonne C
est différente du nom de la feuille.

Globalement, j'arrive à réaliser cela en VBA, mais feuille par feuille !!!
Quelqu'un pourrait-il m'aider à le réaliser d'un seul coup avec un "For
each" par exemple ?

Merci par avance

Julie


Publicité
Poster une réponse
Anonyme