Extraction données suivant sélection dans USF

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 3
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
FFO
Le #20858731
Salut à toi

Afin de te répondre correctement il serait à mon avis judicieux de nous
transmettre un exemple ici :

http://www.cijoint.fr/index.php

en supprimant toutes les données confidentielles

Communiques le lien pour le récupérer
michdenis
Le #20858841
Bonjour,

Ta question manque de précision :
Un petit exemple que tu devras appliquer
selon ton application

Dim DerLig As Long

With Worksheets("Synthèse")
'Trouve la première ligne vide dans la feuille
DerLig = .Range("A65536").end(xlup)(1).row
'Copie de tes données affichées par tes contrôles
'dans les colonnes appropriées de la feuille.
.Range("A" & DerLig) = Userform1.Textbox1.value
.Range("B" & derLig) = Userform1.Combobox.Value
'ainsi de suite
End With



"Théodore" #3Ve#
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
Théodore
Le #20859291
Ci-joint le lien vers mon fichier :
http://www.cijoint.fr/cjlink.php?file=cj200912/cijtqZUuHw.xls


A+
Théo

"Théodore" news:%233Ve%
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


Fredo P.
Le #20861601
Sans utiliser l'usrf, les seules 4 premières colonnes prises en compte,
cellules(bleues) à validation en lieu et place, un aperçu de ce que l'on
peut obtenir.

-- http://cjoint.com/?mEsJO405HF

Fredo P.


"Théodore"
Ci-joint le lien vers mon fichier :
http://www.cijoint.fr/cjlink.php?file=cj200912/cijtqZUuHw.xls


A+
Théo

"Théodore" news:%233Ve%
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





Théodore
Le #20861771
C'est une option intéressante mais qui ne me convient pas.
Je préfère utiliser un USF.

Merci à toi.

A+
Théo


"Fredo P." de news:
Sans utiliser l'usrf, les seules 4 premières colonnes prises en compte,
cellules(bleues) à validation en lieu et place, un aperçu de ce que l'on
peut obtenir.

-- http://cjoint.com/?mEsJO405HF

Fredo P.


"Théodore"
Ci-joint le lien vers mon fichier :
http://www.cijoint.fr/cjlink.php?file=cj200912/cijtqZUuHw.xls


A+
Théo

"Théodore" news:%233Ve%
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









FFO
Le #20865071
Rebonjour à toi

Sur ce lien ma proposition

Réalises toute les choix dans ton Userform et valide

Vérifies le résultat obtenu dans ton onglet "Synthèse"

Je n'ai pas pu ramener la donnée "produit" ne figurant pas dans l'onglet
"BDonnées"

Si tu dois la rajouter mets à jour dans la ligne de code du bouton
validation du userform :

Sheets("Synthèse").Range("F" & Ligne) = Sheets("BDonnées").Range("B" & i)

la partie : Sheets("BDonnées").Range("B" & i)

et supprimes la côte en début

Fais des essais et dis moi !!!!!

http://www.cijoint.fr/cjlink.php?file=cj200912/cijwQLNKPN.xls
Théodore
Le #20865541
Bonjour et merci !
Je vais tester et je reviens vers le forum un peu plus tard...

Théo

"FFO" news:
Rebonjour à toi

Sur ce lien ma proposition

Réalises toute les choix dans ton Userform et valide

Vérifies le résultat obtenu dans ton onglet "Synthèse"

Je n'ai pas pu ramener la donnée "produit" ne figurant pas dans l'onglet
"BDonnées"

Si tu dois la rajouter mets à jour dans la ligne de code du bouton
validation du userform :

Sheets("Synthèse").Range("F" & Ligne) = Sheets("BDonnées").Range("B" & i)

la partie : Sheets("BDonnées").Range("B" & i)

et supprimes la côte en début

Fais des essais et dis moi !!!!!

http://www.cijoint.fr/cjlink.php?file=cj200912/cijwQLNKPN.xls




Théodore
Le #20866641
FFO,

Peux tu m'expliquer pourquoi
i = 2
et
Do While i < Sheets("BDonnées").Range("P65535").End(xlUp).Row + 1
?


A+
Théo


"FFO" news:
Rebonjour à toi

Sur ce lien ma proposition

Réalises toute les choix dans ton Userform et valide

Vérifies le résultat obtenu dans ton onglet "Synthèse"

Je n'ai pas pu ramener la donnée "produit" ne figurant pas dans l'onglet
"BDonnées"

Si tu dois la rajouter mets à jour dans la ligne de code du bouton
validation du userform :

Sheets("Synthèse").Range("F" & Ligne) = Sheets("BDonnées").Range("B" & i)

la partie : Sheets("BDonnées").Range("B" & i)

et supprimes la côte en début

Fais des essais et dis moi !!!!!

http://www.cijoint.fr/cjlink.php?file=cj200912/cijwQLNKPN.xls




Théodore
Le #20866891
J'ai une question concernant le fichier :

Le code VBA ne fonctionne qu'à moitié !
En effet, il copie que la première ligne trouvée et non les suivantes !
Sais-tu pourquoi ?

A+
Théo



"FFO" news:
Rebonjour à toi

Sur ce lien ma proposition

Réalises toute les choix dans ton Userform et valide

Vérifies le résultat obtenu dans ton onglet "Synthèse"

Je n'ai pas pu ramener la donnée "produit" ne figurant pas dans l'onglet
"BDonnées"

Si tu dois la rajouter mets à jour dans la ligne de code du bouton
validation du userform :

Sheets("Synthèse").Range("F" & Ligne) = Sheets("BDonnées").Range("B" & i)

la partie : Sheets("BDonnées").Range("B" & i)

et supprimes la côte en début

Fais des essais et dis moi !!!!!

http://www.cijoint.fr/cjlink.php?file=cj200912/cijwQLNKPN.xls




FFO
Le #20867721
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 !!!!!!
Publicité
Poster une réponse
Anonyme