Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Répartir données en onglets

5 réponses
Avatar
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

5 réponses

Avatar
FFO
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



Avatar
JulieH
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





Avatar
JB
Bonsoir,

Exemple:

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

JB
http://boisgontierjacques.free.fr/

On 19 juil, 11:29, JulieH wrote:
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


Avatar
JB
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 wrote:
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


Avatar
Youky
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" a écrit dans le message de news:

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