for each selon plusieurs critères

Y compris Power BI, Power Query et toute autre question en lien avec Excel
M
MILOUD57000
Membre fidèle
Membre fidèle
Messages : 216
Inscrit le : 13 février 2014
Version d'Excel : 2007

Message par MILOUD57000 » 18 août 2014, 15:47

J'ai déjà régler le problème de la création d'onglets automatique selon une liste, maintenant, j'ai souhaite dire à excel selon un modèle type d'extraire les données dans chaque sous tableau et dans chaque onglet.

j'ai par exemple, francis, sandra et jean philippe qui travaillent sur plusieurs dossiers, dossier compta, dossier secretariat et dossier educatif.

Je souhaiterai créer selon un modèle avec 3 sous-tableaux dans chaque onglet (compta - secretariat - educatif) l'extraction de toutes les données qui se trouvent dans une base de données commune.

voilà le code qui permet de créer un onglet selon une liste :

Sub Extrait()

Dim plage As Range

Application.DisplayAlerts = False
Application.ScreenUpdating = False
Set f = Sheets("base")
'--- Liste des travées
f.[J1] = f.[G1]
f.[A1:G10000].AdvancedFilter Action:=xlFilterCopy, CopyToRange:=f.[J1], Unique:=True
For Each c In f.Range("J2:J" & f.[J65000].End(xlUp).Row) ' pour chaque travée
On Error Resume Next
onglet = CStr(c.Value)
Sheets(onglet).Delete
On Error GoTo 0
Sheets("modèle").Copy After:=Sheets(Sheets.Count)
ActiveSheet.Name = onglet
'-- extraction



ligne = 2
For i = 2 To f.[A65000].End(xlUp).Row
If CStr(f.Cells(i, "G")) = onglet Then
Cells(ligne, "A") = f.Cells(i, "G")
Cells(ligne, "J") = f.Cells(i, "D")
Cells(ligne, "I") = f.Cells(i, "C")
ligne = ligne + 1
End If
Next i
Next c
End Sub


En faite c'est la boucle qui permet de dire à excel tant qu'il y a un nom sur la liste (onglet à créer), créer selon modèle avec 3 sous tableaux sur le même onglet en répartissant les données compta, educatif et secrétariat.

Quelqu'un pourrait m'aider svp à concevoir la macro ?
Avatar du membre
James007
Fanatique d'Excel
Fanatique d'Excel
Messages : 12'007
Appréciations reçues : 414
Inscrit le : 30 août 2014
Version d'Excel : 2007 EN

Message par James007 » 3 septembre 2014, 17:53

Bonjour,

Avant de te lancer dans une macro, tu peux essayer la souplesse du Tableau Croisé Dynamique ...

A+
:)
A+

:)

Quand on n’a qu’un marteau, tous les problèmes deviennent des clous…
M
MILOUD57000
Membre fidèle
Membre fidèle
Messages : 216
Inscrit le : 13 février 2014
Version d'Excel : 2007

Message par MILOUD57000 » 3 septembre 2014, 22:47

merci james, je ne suis pas à l'aise avec les tcd malheureusement, et je vise la programmation pour créer des applications personnalisées

merci d'avoir répondu james :)

à bientôt
Avatar du membre
James007
Fanatique d'Excel
Fanatique d'Excel
Messages : 12'007
Appréciations reçues : 414
Inscrit le : 30 août 2014
Version d'Excel : 2007 EN

Message par James007 » 3 septembre 2014, 22:58

Puisque tu as envie de pousser le code VBA, je te conseille d'uiliser l'enregistreur de macros et d'aller à travers ton processus avec un filtre avancé ... tu devrais obtenir l'essentiel de l'ossature de ton code...

A+
:)
A+

:)

Quand on n’a qu’un marteau, tous les problèmes deviennent des clous…
M
MILOUD57000
Membre fidèle
Membre fidèle
Messages : 216
Inscrit le : 13 février 2014
Version d'Excel : 2007

Message par MILOUD57000 » 4 septembre 2014, 00:04

merci pour tes conseils james, je peux t'envoyer ce que j'ai réaliser pour que tu vois ce dont je suis capable. Je souhaitais simplement avoir des pistes pour maitriser les boucles for each pour avancer dans ce que je suis en train de réaliser.

A bientôt
Avatar du membre
James007
Fanatique d'Excel
Fanatique d'Excel
Messages : 12'007
Appréciations reçues : 414
Inscrit le : 30 août 2014
Version d'Excel : 2007 EN

Message par James007 » 4 septembre 2014, 06:40

Pas de problème ...

Si tu veux poster ton code VBA : For Each .... Next, je suis ûr que tu obtiendras du Forum toutes les explications nécessaires ...

A+
:)
A+

:)

Quand on n’a qu’un marteau, tous les problèmes deviennent des clous…
M
MILOUD57000
Membre fidèle
Membre fidèle
Messages : 216
Inscrit le : 13 février 2014
Version d'Excel : 2007

Message par MILOUD57000 » 4 septembre 2014, 15:39

Ok je prépare tout ça et je le poste,

à bientôt james
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message