OVH Cloud OVH Cloud

Extraction données suivant sélection dans USF

24 réponses
Avatar
Théodore
Bonjour,

Je travaille en ce moment sur un petit programme mais comme je débute sous
VBA j'ai quelques difficultés !!!

En quelques mots :
Dans un USF on trouve :

- ListBoxA = liste de personnes
- ListBoxB = mois de l'année
- ComboBox1 = Années 2008, 2009 et 2010
- CheckBoxS1 = Site 1
- CheckBoxS2 = Site 2
- Bouton1 = Valider
- Bouton2 = Annuler

L'USF s'ouvre grace à un bouton qui se situe dans l'onglet "Synthèse".

Dans un 2ème onglet (BDonnées), se trouve une base de données (Site,
nom_personnes, mois, année, CA_net, nom_produits, Réf_produits, nom_clients,
Réf_clients)

Ma question :
Comment, suivant les différents choix dans mon USF, extraire les données de
la BD pour les copier dans la feuille "Synthèse" ?

Si vous avez une idée...

Merci et bon réveillon !

Théo

10 réponses

1 2 3
Avatar
Théodore
C'est bien plus clair à présent !
Un dernière question avant la fin de l'année 2009 :

Si je sélectionne dans le ListBoxA (la liste des personnes) "TOUS", comment
procéder ?

A+
Et bon réveillon !

Théo

"FFO" a écrit dans le message de
news:
Rebonjour à toi

"i = 2
et
Do While i < Sheets("BDonnées").Range("D65535").End(xlUp).Row + 1 "

J'ai réalisé une boucle en m'appuyant sur une variable i qui a pour valeur
2
au départ et qui évolue à chaque tour par la ligne i=i+1 jusqu'à atteindre
la
valeur correspondant à la derniere ligne de la cellule colonne D qui est
non
vide ce que veux dire la ligne :

Do While i < Sheets("BDonnées").Range("D65535").End(xlUp).Row + 1

Tour à tour donc je me sers de cette variable pour déterminer la ligne que
je traite (de la 2° à la dernière ligne de la cellule colonne D non vide):

If Sheets("BDonnées").Range("D" & i) & UCase(Format(Format(Date, "dd") &
"/"
& Sheets("BDonnées").Range("G" & i) & "/" & Format(Date, "yy"), "mmmm")) &
Sheets("BDonnées").Range("H" & i) & Sheets("BDonnées").Range("A" & i) > Sheets("infos").Range("A" & Me.ListBoxA.ListIndex + 1) &
Sheets("infos").Range("C" & Me.ListBoxM.ListIndex + 1) &
Sheets("infos").Range("E" & Me.ComboBoxAN.ListIndex + 1) & Site Then
Sheets("Synthèse").Range("A" & Ligne) = Sheets("BDonnées").Range("A" & i)
Sheets("Synthèse").Range("B" & Ligne) = Sheets("BDonnées").Range("H" & i)
Sheets("Synthèse").Range("C" & Ligne) = Sheets("BDonnées").Range("G" & i)
Sheets("Synthèse").Range("D" & Ligne) = Sheets("BDonnées").Range("D" & i)
Sheets("Synthèse").Range("E" & Ligne) = Sheets("BDonnées").Range("C" & i)
'Sheets("Synthèse").Range("F" & Ligne) = Sheets("BDonnées").Range("B" & i)
Sheets("Synthèse").Range("G" & Ligne) = Sheets("BDonnées").Range("B" & i)
Sheets("Synthèse").Range("H" & Ligne) = Sheets("BDonnées").Range("E" & i)
Sheets("Synthèse").Range("I" & Ligne) = Sheets("BDonnées").Range("F" & i)


Dans la ligne :

If Sheets("BDonnées").Range("D" & i) & UCase(Format(Format(Date, "dd") &
"/"
& Sheets("BDonnées").Range("G" & i) & "/" & Format(Date, "yy"), "mmmm")) &
Sheets("BDonnées").Range("H" & i) & Sheets("BDonnées").Range("A" & i) > Sheets("infos").Range("A" & Me.ListBoxA.ListIndex + 1) &
Sheets("infos").Range("C" & Me.ListBoxM.ListIndex + 1) &
Sheets("infos").Range("E" & Me.ComboBoxAN.ListIndex + 1) & Site Then

je vérifie que pour la ligne traitée tous les paramètres selectionnés dans
le UserForm correspondent au paramêtre des collonnes appropriés pour
déclencher la recopie des données dans l'onglet "Synthèse" :

Sheets("Synthèse").Range("A" & Ligne) = Sheets("BDonnées").Range("A" & i)
Sheets("Synthèse").Range("B" & Ligne) = Sheets("BDonnées").Range("H" & i)
Sheets("Synthèse").Range("C" & Ligne) = Sheets("BDonnées").Range("G" & i)
Sheets("Synthèse").Range("D" & Ligne) = Sheets("BDonnées").Range("D" & i)
Sheets("Synthèse").Range("E" & Ligne) = Sheets("BDonnées").Range("C" & i)
'Sheets("Synthèse").Range("F" & Ligne) = Sheets("BDonnées").Range("B" & i)
Sheets("Synthèse").Range("G" & Ligne) = Sheets("BDonnées").Range("B" & i)
Sheets("Synthèse").Range("H" & Ligne) = Sheets("BDonnées").Range("E" & i)
Sheets("Synthèse").Range("I" & Ligne) = Sheets("BDonnées").Range("F" & i)


et ensuite de sortir de la boucle par la ligne :

Exit Do


Il va de soit donc qu'une seule ligne peux correpondre à la sélection

Je ne pensaits pas que plusieurs lignes pouvait répondre aux crières
choisis

Si tel est le cas inhibe la ligne :

Exit Do

en mettant une côte devant ainsi :

'Exit Do

rajoute juste aprés la ligne (avant le End If):

Ligne = Ligne + 1


La boucle donc ira systématiquement à son terme récupérant toutes les
données des lignes répondant aux différents choix réalisé dans ton
UserForm
pour les rapporter en onglet "Synthèse"

j'espère ainsi que celà te conviendra

Donnes moi des nouvelles !!!!!!




Avatar
FFO
Rebonjour à toi
Effectivement ce choix nécessite de mettre en début de code ceci juste avant
le i=2 :

If Sheets("infos").Range("A" & Me.ListBoxA.ListIndex + 1) = "TOUS" Then
Conditions = Sheets("infos").Range("C" & Me.ListBoxM.ListIndex + 1) &
Sheets("infos").Range("E" & Me.ComboBoxAN.ListIndex + 1) & Site
Données = UCase(Format(Format(Date, "dd") & "/"
& Sheets("BDonnées").Range("G" & i) & "/" & Format(Date, "yy"), "mmmm")) &
Sheets("BDonnées").Range("H" & i) & Sheets("BDonnées").Range("A" & i)
Else
Conditions = Sheets("infos").Range("A" & Me.ListBoxA.ListIndex + 1) &
Sheets("infos").Range("C" & Me.ListBoxM.ListIndex + 1) &
Sheets("infos").Range("E" & Me.ComboBoxAN.ListIndex + 1) & Site
Données = Sheets("BDonnées").Range("D" & i) & UCase(Format(Format(Date,
"dd") & "/"
& Sheets("BDonnées").Range("G" & i) & "/" & Format(Date, "yy"), "mmmm")) &
Sheets("BDonnées").Range("H" & i) & Sheets("BDonnées").Range("A" & i)
End If

et de changer ces lignes :
If Sheets("BDonnées").Range("D" & i) & UCase(Format(Format(Date, "dd") & "/"
& Sheets("BDonnées").Range("G" & i) & "/" & Format(Date, "yy"), "mmmm")) &
Sheets("BDonnées").Range("H" & i) & Sheets("BDonnées").Range("A" & i) =
Sheets("infos").Range("A" & Me.ListBoxA.ListIndex + 1) &
Sheets("infos").Range("C" & Me.ListBoxM.ListIndex + 1) &
Sheets("infos").Range("E" & Me.ComboBoxAN.ListIndex + 1) & Site Then
Par
If Données = Conditions Then

Celà devrait faire

Je n'ai pas pu testé n'étant plus à mon travail

Fais des essais et dis moi !!!!!
Avatar
FFO
Rebonjour à toi

Je me suis trompé dans ma dernière proposition
En lieu et place fais comme ceci :

Juste avant i=2 mets ces lignes :

If Sheets("infos").Range("A" & Me.ListBoxA.ListIndex + 1) = "TOUS" Then
Conditions = Sheets("infos").Range("C" & Me.ListBoxM.ListIndex + 1) &
Sheets("infos").Range("E" & Me.ComboBoxAN.ListIndex + 1) & Site
Else
Conditions = Sheets("infos").Range("A" & Me.ListBoxA.ListIndex + 1) &
Sheets("infos").Range("C" & Me.ListBoxM.ListIndex + 1) &
Sheets("infos").Range("E" & Me.ComboBoxAN.ListIndex + 1) & Site
End If

Juste aprés Do While i < Sheets("BDonnées").Range("D65535").End(xlUp).Row +
1 mets ces lignes :

If Sheets("infos").Range("A" & Me.ListBoxA.ListIndex + 1) = "TOUS" Then
Données = UCase(Format(Format(Date, "dd") & "/"
& Sheets("BDonnées").Range("G" & i) & "/" & Format(Date, "yy"), "mmmm")) &
Sheets("BDonnées").Range("H" & i) & Sheets("BDonnées").Range("A" & i)
Else
Données = Sheets("BDonnées").Range("D" & i) & UCase(Format(Format(Date,
"dd") & "/"
& Sheets("BDonnées").Range("G" & i) & "/" & Format(Date, "yy"), "mmmm")) &
Sheets("BDonnées").Range("H" & i) & Sheets("BDonnées").Range("A" & i)
End If

et à la place des lignes :

If Sheets("BDonnées").Range("D" & i) & UCase(Format(Format(Date, "dd") & "/"
& Sheets("BDonnées").Range("G" & i) & "/" & Format(Date, "yy"), "mmmm")) &
Sheets("BDonnées").Range("H" & i) & Sheets("BDonnées").Range("A" & i) =
Sheets("infos").Range("A" & Me.ListBoxA.ListIndex + 1) &
Sheets("infos").Range("C" & Me.ListBoxM.ListIndex + 1) &
Sheets("infos").Range("E" & Me.ComboBoxAN.ListIndex + 1) & Site Then

mets :

If Données = Conditions Then

Celà devrait faire

Tiens moi informé !!!!!
Avatar
Théodore
Bonsoir et bonne année 2010 !

Je viens de copier les nouvelles lignes de code mais j'ai une erreur :
"Erreur de compilation" Attendu : Expression

arrêt sur cette ligne : Conditions = Sheets("infos").Range("C" &
Me.ListBoxM.ListIndex + 1) &


A+
Théo

"FFO" a écrit dans le message de
news:
Rebonjour à toi

Je me suis trompé dans ma dernière proposition
En lieu et place fais comme ceci :

Juste avant i=2 mets ces lignes :

If Sheets("infos").Range("A" & Me.ListBoxA.ListIndex + 1) = "TOUS" Then
Conditions = Sheets("infos").Range("C" & Me.ListBoxM.ListIndex + 1) &
Sheets("infos").Range("E" & Me.ComboBoxAN.ListIndex + 1) & Site
Else
Conditions = Sheets("infos").Range("A" & Me.ListBoxA.ListIndex + 1) &
Sheets("infos").Range("C" & Me.ListBoxM.ListIndex + 1) &
Sheets("infos").Range("E" & Me.ComboBoxAN.ListIndex + 1) & Site
End If

Juste aprés Do While i < Sheets("BDonnées").Range("D65535").End(xlUp).Row
+
1 mets ces lignes :

If Sheets("infos").Range("A" & Me.ListBoxA.ListIndex + 1) = "TOUS" Then
Données = UCase(Format(Format(Date, "dd") & "/"
& Sheets("BDonnées").Range("G" & i) & "/" & Format(Date, "yy"), "mmmm")) &
Sheets("BDonnées").Range("H" & i) & Sheets("BDonnées").Range("A" & i)
Else
Données = Sheets("BDonnées").Range("D" & i) & UCase(Format(Format(Date,
"dd") & "/"
& Sheets("BDonnées").Range("G" & i) & "/" & Format(Date, "yy"), "mmmm")) &
Sheets("BDonnées").Range("H" & i) & Sheets("BDonnées").Range("A" & i)
End If

et à la place des lignes :

If Sheets("BDonnées").Range("D" & i) & UCase(Format(Format(Date, "dd") &
"/"
& Sheets("BDonnées").Range("G" & i) & "/" & Format(Date, "yy"), "mmmm")) &
Sheets("BDonnées").Range("H" & i) & Sheets("BDonnées").Range("A" & i) > Sheets("infos").Range("A" & Me.ListBoxA.ListIndex + 1) &
Sheets("infos").Range("C" & Me.ListBoxM.ListIndex + 1) &
Sheets("infos").Range("E" & Me.ComboBoxAN.ListIndex + 1) & Site Then

mets :

If Données = Conditions Then

Celà devrait faire

Tiens moi informé !!!!!



Avatar
Théodore
Oups !
Je n'ai rien dit !
Cela fonctionne !
Je continue à tester...

A+
Théo


"Théodore" a écrit dans le message de
news:
Bonsoir et bonne année 2010 !

Je viens de copier les nouvelles lignes de code mais j'ai une erreur :
"Erreur de compilation" Attendu : Expression

arrêt sur cette ligne : Conditions = Sheets("infos").Range("C" &
Me.ListBoxM.ListIndex + 1) &


A+
Théo

"FFO" a écrit dans le message de
news:
Rebonjour à toi

Je me suis trompé dans ma dernière proposition
En lieu et place fais comme ceci :

Juste avant i=2 mets ces lignes :

If Sheets("infos").Range("A" & Me.ListBoxA.ListIndex + 1) = "TOUS" Then
Conditions = Sheets("infos").Range("C" & Me.ListBoxM.ListIndex + 1) &
Sheets("infos").Range("E" & Me.ComboBoxAN.ListIndex + 1) & Site
Else
Conditions = Sheets("infos").Range("A" & Me.ListBoxA.ListIndex + 1) &
Sheets("infos").Range("C" & Me.ListBoxM.ListIndex + 1) &
Sheets("infos").Range("E" & Me.ComboBoxAN.ListIndex + 1) & Site
End If

Juste aprés Do While i < Sheets("BDonnées").Range("D65535").End(xlUp).Row
+
1 mets ces lignes :

If Sheets("infos").Range("A" & Me.ListBoxA.ListIndex + 1) = "TOUS" Then
Données = UCase(Format(Format(Date, "dd") & "/"
& Sheets("BDonnées").Range("G" & i) & "/" & Format(Date, "yy"), "mmmm"))
&
Sheets("BDonnées").Range("H" & i) & Sheets("BDonnées").Range("A" & i)
Else
Données = Sheets("BDonnées").Range("D" & i) & UCase(Format(Format(Date,
"dd") & "/"
& Sheets("BDonnées").Range("G" & i) & "/" & Format(Date, "yy"), "mmmm"))
&
Sheets("BDonnées").Range("H" & i) & Sheets("BDonnées").Range("A" & i)
End If

et à la place des lignes :

If Sheets("BDonnées").Range("D" & i) & UCase(Format(Format(Date, "dd") &
"/"
& Sheets("BDonnées").Range("G" & i) & "/" & Format(Date, "yy"), "mmmm"))
&
Sheets("BDonnées").Range("H" & i) & Sheets("BDonnées").Range("A" & i) >> Sheets("infos").Range("A" & Me.ListBoxA.ListIndex + 1) &
Sheets("infos").Range("C" & Me.ListBoxM.ListIndex + 1) &
Sheets("infos").Range("E" & Me.ComboBoxAN.ListIndex + 1) & Site Then

mets :

If Données = Conditions Then

Celà devrait faire

Tiens moi informé !!!!!






Avatar
Théodore
Bonjour FFO...et les autres !

Le programme fonctionne parfaitement, je vais essayer de l'améliorer.

Cependant, j'ai une dernière question :

Comment procéder si je sélectionne tous les mois pour une seule personne ?

Encore merci.
Cdt,
Théo


"FFO" a écrit dans le message de
news:
Rebonjour à toi

Je me suis trompé dans ma dernière proposition
En lieu et place fais comme ceci :

Juste avant i=2 mets ces lignes :

If Sheets("infos").Range("A" & Me.ListBoxA.ListIndex + 1) = "TOUS" Then
Conditions = Sheets("infos").Range("C" & Me.ListBoxM.ListIndex + 1) &
Sheets("infos").Range("E" & Me.ComboBoxAN.ListIndex + 1) & Site
Else
Conditions = Sheets("infos").Range("A" & Me.ListBoxA.ListIndex + 1) &
Sheets("infos").Range("C" & Me.ListBoxM.ListIndex + 1) &
Sheets("infos").Range("E" & Me.ComboBoxAN.ListIndex + 1) & Site
End If

Juste aprés Do While i < Sheets("BDonnées").Range("D65535").End(xlUp).Row
+
1 mets ces lignes :

If Sheets("infos").Range("A" & Me.ListBoxA.ListIndex + 1) = "TOUS" Then
Données = UCase(Format(Format(Date, "dd") & "/"
& Sheets("BDonnées").Range("G" & i) & "/" & Format(Date, "yy"), "mmmm")) &
Sheets("BDonnées").Range("H" & i) & Sheets("BDonnées").Range("A" & i)
Else
Données = Sheets("BDonnées").Range("D" & i) & UCase(Format(Format(Date,
"dd") & "/"
& Sheets("BDonnées").Range("G" & i) & "/" & Format(Date, "yy"), "mmmm")) &
Sheets("BDonnées").Range("H" & i) & Sheets("BDonnées").Range("A" & i)
End If

et à la place des lignes :

If Sheets("BDonnées").Range("D" & i) & UCase(Format(Format(Date, "dd") &
"/"
& Sheets("BDonnées").Range("G" & i) & "/" & Format(Date, "yy"), "mmmm")) &
Sheets("BDonnées").Range("H" & i) & Sheets("BDonnées").Range("A" & i) > Sheets("infos").Range("A" & Me.ListBoxA.ListIndex + 1) &
Sheets("infos").Range("C" & Me.ListBoxM.ListIndex + 1) &
Sheets("infos").Range("E" & Me.ComboBoxAN.ListIndex + 1) & Site Then

mets :

If Données = Conditions Then

Celà devrait faire

Tiens moi informé !!!!!



Avatar
FFO
Rebonjour à toi

Pour pouvoir sélectionner tous les mois utilises le même principe que pour
la liste des personnes
Un choix "TOUS" dans la listeBoxM

Avant le i = 2 mets comme ceci :

If Sheets("infos").Range("A" & Me.ListBoxA.ListIndex + 1) = "TOUS" Then
Nom = ""
Else
Nom = Sheets("infos").Range("A" & Me.ListBoxA.ListIndex + 1)
End If
If Sheets("infos").Range("C" & Me.ListBoxM.ListIndex + 1) = "TOUS" Then
Mois = ""
Else
Mois = Sheets("infos").Range("C" & Me.ListBoxM.ListIndex + 1)
End If

Juste aprés Do While i < Sheets("BDonnées").Range("D65535").End(xlUp).Row+1
Mets ceci :

If Sheets("infos").Range("A" & Me.ListBoxA.ListIndex + 1) = "TOUS" Then
Donnée1 = ""
Else
Donnée1 = Sheets("BDonnées").Range("D" & i)
End If
If Sheets("infos").Range("C" & Me.ListBoxM.ListIndex + 1) = "TOUS" Then
Donnée2 = ""
Else
Donnée2 = UCase(Format(Format(Date, "dd") & "/"
& Sheets("BDonnées").Range("G" & i) & "/" & Format(Date, "yy"), "mmmm"))




End If

Et à la place de :

If Données = Conditions Then

Mets

If Nom & Mois & Sheets("infos").Range("E" & Me.ComboBoxAN.ListIndex + 1) &
Site = Donnée1 & Donnée2 & Sheets("BDonnées").Range("H" & i) &
Sheets("BDonnées").Range("A" & i) Then

et la suite :

Sheets("Synthèse").Range("A" & Ligne) = Sheets("BDonnées").Range("A" & i)
Sheets("Synthèse").Range("B" & Ligne) = Sheets("BDonnées").Range("H" & i)
Sheets("Synthèse").Range("C" & Ligne) = Sheets("BDonnées").Range("G" & i)
Sheets("Synthèse").Range("D" & Ligne) = Sheets("BDonnées").Range("D" & i)
Sheets("Synthèse").Range("E" & Ligne) = Sheets("BDonnées").Range("C" & i)
'Sheets("Synthèse").Range("F" & Ligne) = Sheets("BDonnées").Range("B" & i)
Sheets("Synthèse").Range("G" & Ligne) = Sheets("BDonnées").Range("B" & i)
Sheets("Synthèse").Range("H" & Ligne) = Sheets("BDonnées").Range("E" & i)
Sheets("Synthèse").Range("I" & Ligne) = Sheets("BDonnées").Range("F" & i)
etc....


Je pense que celà devrait convenir

Biensur je n'ai pas essayé


Fais des essais et dis moi !!!!!
Avatar
FFO
Rebonjour à toi

Pour pouvoir sélectionner tous les mois utilises le même principe que pour
la liste des personnes
Un choix "TOUS" dans la listeBoxM

Avant le i = 2 mets comme ceci :

If Sheets("infos").Range("A" & Me.ListBoxA.ListIndex + 1) = "TOUS" Then
Nom = ""
Else
Nom = Sheets("infos").Range("A" & Me.ListBoxA.ListIndex + 1)
End If
If Sheets("infos").Range("C" & Me.ListBoxM.ListIndex + 1) = "TOUS" Then
Mois = ""
Else
Mois = Sheets("infos").Range("C" & Me.ListBoxM.ListIndex + 1)
End If

Juste aprés Do While i < Sheets("BDonnées").Range("D65535").End(xlUp).Row+1
Mets ceci :

If Sheets("infos").Range("A" & Me.ListBoxA.ListIndex + 1) = "TOUS" Then
Donnée1 = ""
Else
Donnée1 = Sheets("BDonnées").Range("D" & i)
End If
If Sheets("infos").Range("C" & Me.ListBoxM.ListIndex + 1) = "TOUS" Then
Donnée2 = ""
Else
Donnée2 = UCase(Format(Format(Date, "dd") & "/"
& Sheets("BDonnées").Range("G" & i) & "/" & Format(Date, "yy"), "mmmm"))




End If

Et à la place de :

If Données = Conditions Then

Mets

If Nom & Mois & Sheets("infos").Range("E" & Me.ComboBoxAN.ListIndex + 1) &
Site = Donnée1 & Donnée2 & Sheets("BDonnées").Range("H" & i) &
Sheets("BDonnées").Range("A" & i) Then

et la suite :

Sheets("Synthèse").Range("A" & Ligne) = Sheets("BDonnées").Range("A" & i)
Sheets("Synthèse").Range("B" & Ligne) = Sheets("BDonnées").Range("H" & i)
Sheets("Synthèse").Range("C" & Ligne) = Sheets("BDonnées").Range("G" & i)
Sheets("Synthèse").Range("D" & Ligne) = Sheets("BDonnées").Range("D" & i)
Sheets("Synthèse").Range("E" & Ligne) = Sheets("BDonnées").Range("C" & i)
'Sheets("Synthèse").Range("F" & Ligne) = Sheets("BDonnées").Range("B" & i)
Sheets("Synthèse").Range("G" & Ligne) = Sheets("BDonnées").Range("B" & i)
Sheets("Synthèse").Range("H" & Ligne) = Sheets("BDonnées").Range("E" & i)
Sheets("Synthèse").Range("I" & Ligne) = Sheets("BDonnées").Range("F" & i)
etc....


Je pense que celà devrait convenir

Biensur je n'ai pas essayé


Fais des essais et dis moi !!!!!
Avatar
Théodore
Bonjour à Toi !

Merci pour ton code.

Mais n'y a t'il pas une erreur ici :

& Sheets("BDonnées").Range("G" & i) & "/" & Format(Date, "yy"), "mmmm"))




End If

Le ">>" !

A+
Théo


"FFO" a écrit dans le message de
news:
Rebonjour à toi

Pour pouvoir sélectionner tous les mois utilises le même principe que pour
la liste des personnes
Un choix "TOUS" dans la listeBoxM

Avant le i = 2 mets comme ceci :

If Sheets("infos").Range("A" & Me.ListBoxA.ListIndex + 1) = "TOUS" Then
Nom = ""
Else
Nom = Sheets("infos").Range("A" & Me.ListBoxA.ListIndex + 1)
End If
If Sheets("infos").Range("C" & Me.ListBoxM.ListIndex + 1) = "TOUS" Then
Mois = ""
Else
Mois = Sheets("infos").Range("C" & Me.ListBoxM.ListIndex + 1)
End If

Juste aprés Do While i <
Sheets("BDonnées").Range("D65535").End(xlUp).Row+1
Mets ceci :

If Sheets("infos").Range("A" & Me.ListBoxA.ListIndex + 1) = "TOUS" Then
Donnée1 = ""
Else
Donnée1 = Sheets("BDonnées").Range("D" & i)
End If
If Sheets("infos").Range("C" & Me.ListBoxM.ListIndex + 1) = "TOUS" Then
Donnée2 = ""
Else
Donnée2 = UCase(Format(Format(Date, "dd") & "/"
& Sheets("BDonnées").Range("G" & i) & "/" & Format(Date, "yy"), "mmmm"))




End If

Et à la place de :

If Données = Conditions Then

Mets

If Nom & Mois & Sheets("infos").Range("E" & Me.ComboBoxAN.ListIndex + 1) &
Site = Donnée1 & Donnée2 & Sheets("BDonnées").Range("H" & i) &
Sheets("BDonnées").Range("A" & i) Then

et la suite :

Sheets("Synthèse").Range("A" & Ligne) = Sheets("BDonnées").Range("A" & i)
Sheets("Synthèse").Range("B" & Ligne) = Sheets("BDonnées").Range("H" & i)
Sheets("Synthèse").Range("C" & Ligne) = Sheets("BDonnées").Range("G" & i)
Sheets("Synthèse").Range("D" & Ligne) = Sheets("BDonnées").Range("D" & i)
Sheets("Synthèse").Range("E" & Ligne) = Sheets("BDonnées").Range("C" & i)
'Sheets("Synthèse").Range("F" & Ligne) = Sheets("BDonnées").Range("B" & i)
Sheets("Synthèse").Range("G" & Ligne) = Sheets("BDonnées").Range("B" & i)
Sheets("Synthèse").Range("H" & Ligne) = Sheets("BDonnées").Range("E" & i)
Sheets("Synthèse").Range("I" & Ligne) = Sheets("BDonnées").Range("F" & i)
etc....


Je pense que celà devrait convenir

Biensur je n'ai pas essayé


Fais des essais et dis moi !!!!!



Avatar
Mgr T. Banni
bonjour théodore
essaie de partir de la réponse originale de FFO
tu y verras que le style Citroen (deux chevrons, donc) n'y figure pas
d'ailleurs regarde ci-dessous, il y a même maintenant un chevron de plus
c'est ton programme de messagerie qui ajoute ces chevrons pour te permettre
de différencier les réponses dans un même fil
voili voilou
Mgr T.B.

"Théodore" a écrit dans le message de news:

Bonjour à Toi !

Merci pour ton code.

Mais n'y a t'il pas une erreur ici :

& Sheets("BDonnées").Range("G" & i) & "/" & Format(Date, "yy"), "mmmm"))




End If

Le ">>" !

A+
Théo


"FFO" a écrit dans le message de
news:
Rebonjour à toi

Pour pouvoir sélectionner tous les mois utilises le même principe que
pour
la liste des personnes
Un choix "TOUS" dans la listeBoxM

Avant le i = 2 mets comme ceci :

If Sheets("infos").Range("A" & Me.ListBoxA.ListIndex + 1) = "TOUS" Then
Nom = ""
Else
Nom = Sheets("infos").Range("A" & Me.ListBoxA.ListIndex + 1)
End If
If Sheets("infos").Range("C" & Me.ListBoxM.ListIndex + 1) = "TOUS" Then
Mois = ""
Else
Mois = Sheets("infos").Range("C" & Me.ListBoxM.ListIndex + 1)
End If

Juste aprés Do While i <
Sheets("BDonnées").Range("D65535").End(xlUp).Row+1
Mets ceci :

If Sheets("infos").Range("A" & Me.ListBoxA.ListIndex + 1) = "TOUS" Then
Donnée1 = ""
Else
Donnée1 = Sheets("BDonnées").Range("D" & i)
End If
If Sheets("infos").Range("C" & Me.ListBoxM.ListIndex + 1) = "TOUS" Then
Donnée2 = ""
Else
Donnée2 = UCase(Format(Format(Date, "dd") & "/"
& Sheets("BDonnées").Range("G" & i) & "/" & Format(Date, "yy"),
"mmmm"))




End If

Et à la place de :

If Données = Conditions Then

Mets

If Nom & Mois & Sheets("infos").Range("E" & Me.ComboBoxAN.ListIndex + 1)
&
Site = Donnée1 & Donnée2 & Sheets("BDonnées").Range("H" & i) &
Sheets("BDonnées").Range("A" & i) Then

et la suite :

Sheets("Synthèse").Range("A" & Ligne) = Sheets("BDonnées").Range("A" & i)
Sheets("Synthèse").Range("B" & Ligne) = Sheets("BDonnées").Range("H" & i)
Sheets("Synthèse").Range("C" & Ligne) = Sheets("BDonnées").Range("G" & i)
Sheets("Synthèse").Range("D" & Ligne) = Sheets("BDonnées").Range("D" & i)
Sheets("Synthèse").Range("E" & Ligne) = Sheets("BDonnées").Range("C" & i)
'Sheets("Synthèse").Range("F" & Ligne) = Sheets("BDonnées").Range("B" &
i)
Sheets("Synthèse").Range("G" & Ligne) = Sheets("BDonnées").Range("B" & i)
Sheets("Synthèse").Range("H" & Ligne) = Sheets("BDonnées").Range("E" & i)
Sheets("Synthèse").Range("I" & Ligne) = Sheets("BDonnées").Range("F" & i)
etc....


Je pense que celà devrait convenir

Biensur je n'ai pas essayé


Fais des essais et dis moi !!!!!






1 2 3