VBA EXCEL [Résolu]

fario75 13 Messages postés mardi 24 mars 2009Date d'inscription 30 juin 2009 Dernière intervention - 24 mars 2009 à 15:36 - Dernière réponse : fario75 13 Messages postés mardi 24 mars 2009Date d'inscription 30 juin 2009 Dernière intervention
- 15 mai 2009 à 14:05
Bonjour,




Je suis un débutant en programmation VBA - Excel, et je dois faire dans le cadre de mon stage une application, pour récupérer des données dans de différentes feuilles Excel qui sont en relation par des codes différents, et je n’en ai pas d'idée pour commencer mon projet, sachant que j'ai regardé déjà des cours en ligne, mais malheureusement ça ne m’a pas aidé vraiment.
Au fait, je ne vois pas comment interroger ces feuilles à partir du VBA, et par ou commencer ?

Merci pour votre aide  d'avance
Afficher la suite 

Votre réponse

16 réponses

Meilleure réponse
userrrqi115 181 Messages postés mardi 18 novembre 2008Date d'inscription 4 février 2011 Dernière intervention - 29 mars 2009 à 22:12
3
Merci
Hello,

Je crois que l'idée tu l'avais toi même : créer une userform avec 2 listbox  1 dans laquelle tu pourra sélectionner le code naf et 1 où tu pourras choisir un libellé.

Ensuite pour les infos à retrouver je les ferais apparaitre dans des textbox.

Pour lancer la recherche un bouton rechercher.

Pour le comment la faire marcher, 1 solution serait de se servir d'une feuille Excel en caché afin d'y appliquer les formules (recherchev) qui vont bien.

Sorry pour le délai et je dois avouer que j'avais un peu zappé.

BR

USERRRQI115
Simple user
Great brain

Merci userrrqi115 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de userrrqi115
Meilleure réponse
userrrqi115 181 Messages postés mardi 18 novembre 2008Date d'inscription 4 février 2011 Dernière intervention - 21 avril 2009 à 13:13
3
Merci
Hello,

Ceci pourra t'aider à transformer tout en majuscule:
Dim cell As Range
For Each cell In Range("a1:b2") 'ici modifier pour correspondre à la plage désirée
cell.Value = UCase(cell.Value)
Next cell

Pour les 2 listbox:
Tu peux paramétrer par défaut la listbox2.visible= false


Tu peux ajouter du code dans l'évennement Listbox1_Click. Code de ce type:
Listbox1.visible=false
(ici le code chargement de la listbox2)
listbox2.visible = true 

BR

USERRRQI115
Simple user
Great brain

Merci userrrqi115 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de userrrqi115
userrrqi115 181 Messages postés mardi 18 novembre 2008Date d'inscription 4 février 2011 Dernière intervention - 24 mars 2009 à 16:05
0
Merci
Hello,

Plus ton post sera précis quant au problème que tu rencontres plus tu auras de chance d'avoir des réponses.

Peux-tu être un peu plus précis : quelles données dois-tu récupérer ? As-tu un fichier Excel de base ?...

BR

USERRRQI115
Simple user
Great brain
Commenter la réponse de userrrqi115
fario75 13 Messages postés mardi 24 mars 2009Date d'inscription 30 juin 2009 Dernière intervention - 24 mars 2009 à 17:42
0
Merci
D'abord je te remercie pour ta réponse rapide,
je suis en stage (bases de donées et developpement) dans les assurances, donc je dois faire une application, qui permettra au gens de trouver des collectivités en entrant des codes NAF...

Au fait j'ai 4 feuilles excel, la 1ere feuille(NAF) contient des code NAF, la 2eme feuille(CCN), la 3eme feuille(CCN_NAF)" relation entre les 2 tables NAF et CCN, pour pouvoir chercher un code NAFdans l'application et à partir de ce code naf je doit avoir comme resultat une collectivité et bien sur son code CCN qui est dans la 2eme feuille et puis avoir des information complémentaires sur ce code CCN qui sont à leur tour dans la 4eme feuille(CCN_complément).
Donc maintenant, je dois creer une aplication VBA, genre avec un bouton rechercher( pour rentrer un CODE NAF ou UN libellé), et un bouton valider, et après des bouton genre fermer et retour.

MERCI d'avance .
Commenter la réponse de fario75
fario75 13 Messages postés mardi 24 mars 2009Date d'inscription 30 juin 2009 Dernière intervention - 27 mars 2009 à 17:13
0
Merci
ta pas eu une idée depuis,?!
Commenter la réponse de fario75
fario75 13 Messages postés mardi 24 mars 2009Date d'inscription 30 juin 2009 Dernière intervention - 30 mars 2009 à 11:11
0
Merci
Salut USERRRQI115!
merci pour ta réponse, j'ai commencé à avoir des idées la dessus, et comme ça tu me rassure aussi , donc il reste du code  à faire maintenant.
merci encore !
Commenter la réponse de fario75
userrrqi115 181 Messages postés mardi 18 novembre 2008Date d'inscription 4 février 2011 Dernière intervention - 30 mars 2009 à 12:40
0
Merci
Hello,

Si je peux te donner un coup de pouce sur le code n'hésites pas.

BR

USERRRQI115
Simple user
Great brain
Commenter la réponse de userrrqi115
fario75 13 Messages postés mardi 24 mars 2009Date d'inscription 30 juin 2009 Dernière intervention - 30 mars 2009 à 17:05
0
Merci
ok té super gentil, jte dirais ça après .


merci encore
Commenter la réponse de fario75
fario75 13 Messages postés mardi 24 mars 2009Date d'inscription 30 juin 2009 Dernière intervention - 20 avril 2009 à 10:56
0
Merci
salut USERRRQI115,
ça fait longtemps, mais au fait c'est vrai j'ai avancé, je suis un pe content enfin un peu, puisque ce n'est pas fini!, je voulais te demander si tu savais comment on peu éviter 2 lisBox, et à partir juste du 1er affichage on click dessu et il nous renvoi sur un 2eme affichage( soit disant les info d'une autre feuille)? et aussi comment on peut faire pour que la saisie en miniscule et en majuscule soit la même( j'ai que du majuscule dans mes feuilles, mais a la recherche on peu taper en miniscule), j'espere tu comprend ce que je veux dire, j'attend ta réponse stp. a bientôt.MERCI
Commenter la réponse de fario75
userrrqi115 181 Messages postés mardi 18 novembre 2008Date d'inscription 4 février 2011 Dernière intervention - 20 avril 2009 à 15:18
0
Merci
Hello,

Pour l'histoire de majuscule/minuscule le plus simple est de retraivailler la saisie :
laisser la saisie "libre" et transformer la saisie en Majuscule en utilisant Ucase.


En ce qui concerne les 2 listbox, j'aurais besoins de plus de détails, mais globalement, tu pourrais au choix :


- Recharger ta listbox avec d'autre données.


-Avoir 2 Listbox supperposées mais une seule visible à la fois.


BR
USERRRQI115
Simple user
Great brain
Commenter la réponse de userrrqi115
fario75 13 Messages postés mardi 24 mars 2009Date d'inscription 30 juin 2009 Dernière intervention - 20 avril 2009 à 16:09
0
Merci
merci pour ta réponse trés rapide!
pour les majuscule, jai essayé Ucase sa marche ,mais comme c'est la même fonction pour les autres colones, donc c'est un probleme,(car je dois aussi saisir un libellé ex:"" Elevage de volailles" qui est en miniscule lui dans la feuille" je sais pas si je dois mettre ttes les feuilles en majuscules ou pas , en tout cas pour l'instant c'est le plus facile pour moi.
sinon, je vois pas trop pour la superposition, en fait dans la 1ere listBox, j'affiche ex: le code 012G( = 012g), et dans la 2em les informations concernant ce code 012g (012G), donc ce que je veux c'est une fois que j'affiche le 012g (012G), je clik dessus et il me donne le reste, c'est à dire(la 2eme listBox). sinon il y aura trop de données au même temps et l'utilisateur se perdera. j'espere que c'est plus clair.MERCI
Commenter la réponse de fario75
fario75 13 Messages postés mardi 24 mars 2009Date d'inscription 30 juin 2009 Dernière intervention - 21 avril 2009 à 15:31
0
Merci
ah oui cool! ça marche super bien pour les majuscules, je regarderai les listBox (je ne sais pas encore) et je reviendrai vers toi.MERCI
Commenter la réponse de fario75
fario75 13 Messages postés mardi 24 mars 2009Date d'inscription 30 juin 2009 Dernière intervention - 28 avril 2009 à 10:38
0
Merci
Salut,
j'ai suprimé la 2ème listBox, et j'ai regroupé l'affichage dans la 1ère, et sa me va comme ça normalement!...Par contre j'ai une autre question stp,pour la saisie, dans mon programme, si tu tape un code complet ou un libellé complet sans faute ( par rapport à la feuille excel) il t'affiche tout, sinon il te met saisie incorrecte, moi ce que je veux mnt c'est la saisie automatique, je sai pas si on peut l'appler comme ça!! ganre tu tape juste 012 il t'affiche : "012G","012j","012f" ou si tu met juste "01" et ben la il t'affiche tt les codes ou il ya "01", et la même chose pour les libellé, mnt si tu tape "elevage de volailles" il t'affiche tt normal, mais s'il y une faute il trouve pas , donc je cherche comment faire pour faciliter la recherche... j"espere que je suis clair. Merci d'avance userrrqi115
Commenter la réponse de fario75
fario75 13 Messages postés mardi 24 mars 2009Date d'inscription 30 juin 2009 Dernière intervention - 14 mai 2009 à 11:43
0
Merci
salut,
peut être tu n'avais pas eu le temps de me répondre, mais ça ce n'est pas vraiment important ( la question que je t'ai posée la dernière fois), par contre là je te demande si tu saurai comment SUPRIMER les doublons dans l'affichage dans ma liste box, car par exemple je saisi un code:9524Z et il affiche 361K,361K et 361A, donc je cherche comment afficher seulement une fois le même code. Réponds moi si tu as le temps stp.
MERCI
Commenter la réponse de fario75
userrrqi115 181 Messages postés mardi 18 novembre 2008Date d'inscription 4 février 2011 Dernière intervention - 15 mai 2009 à 11:33
0
Merci
Hello,
Désolé pour la dernière fois, le temps est une denrée rare actuellement (2 enfants c'est du taf 17 et 4 mois). J'ai du lire ce que tu demandais et puis n'est pas eu le temps de répondre, et c'est parti aux oubliettes.
Pour ta demande actuelle, je ne garantie pas une réponse rapide mais si tu pouvais au moins envoyer le code de chargement de ta listbox ça sera utile.

BR

USERRRQI115
Simple user
Great brain
Commenter la réponse de userrrqi115
fario75 13 Messages postés mardi 24 mars 2009Date d'inscription 30 juin 2009 Dernière intervention - 15 mai 2009 à 14:05
0
Merci
salut!
tout d'abord je te dis bon courage.
sinon j'espere que je ne te dérange pas trop, mais voila tu le fait si tu as le temps sinon je comprend, merci bcp.
voila le code :( JE TE MET TOUT LE CODE DE MA 2ème APPLICATION, juste NV et ancien code NAf, et les bouts de code en commentaire ça marche pas, c juste des petits essais).....
----------------------------------------------
Private Sub CommandButton1_Click()

Dim cpt, notreligne1, notreligne2, cptCCN_Naf As Integer
Dim codeNaf As String
Dim collection_naf As New collection

cptCCN_Naf = 0

ListBox1.Clear ' réinitialiser la listBox a chaque fois

cpt = 2
notreligne = 0
'-------------------------------------- transformer tout en majuscule:
Dim cell As Range
For Each cell In Range("B2:B710") 'ici modifier pour correspondre à la plage désirée( 714: est la derniere ligne
cell.Value = UCase(cell.Value)
Next cell
codeNaf = TextBox1.Text 'saisie
codeNaf = UCase(TextBox1.Text)


While Worksheets("Naf5-Naf4").Range("A" & cpt).Value <> "" 'tant qu'on est pas à la fin
If (codeNaf = Worksheets("Naf5-Naf4").Range("A" & cpt).Value) Then
codeNaf = (Worksheets("Naf5-Naf4").Range("A" & cpt).Value)
notreligne = cpt
End If
cpt = cpt + 1
Wend
If notreligne <> 0 Then ' car on sorti de la boucle en haut dc fo vérifier
Label2.Caption = "Code Naf :" & Worksheets("Naf5-Naf4").Range("A" & notreligne).Value & vbCrLf & "Dénomination: " & Worksheets("Naf5-Naf4").Range("B" & notreligne).Value
'----------------------------------------
notreligne = 0 ' réinitialisation
cpt = 2
While Worksheets("Naf5-Naf4").Range("A" & cpt).Value <> ""
If (codeNaf = Worksheets("Naf5-Naf4").Range("A" & cpt).Value) Then
collection_naf.Add (Worksheets("Naf5-Naf4").Range("C" & cpt).Value) 'on stock ds la collection
End If
cpt = cpt + 1
Wend
cpt = 2
While Worksheets("Naf5-Naf4").Range("C" & cpt).Value <> ""
For cptCCN_Naf = 1 To collection_naf.Count
If (collection_naf.Item(cptCCN_Naf) Worksheets("Naf5-Naf4").Range("C" & cpt).Value) Then 'Or (collection_naf.Item(cptCCN_Naf) Worksheets("Naf5-Naf4").Range("C" & cpt).Value)) Then
notreligne = cpt

ListBox1.AddItem ("l'ancien code naf: " & Worksheets("Naf5-Naf4").Range("C" & notreligne).Value)
ListBox1.AddItem (" :" & Worksheets("Naf5-Naf4").Range("D" & notreligne).Value)
ListBox1.AddItem ("_______________________________________________________ ")
ListBox1.AddItem (" ")
End If
'collection_naf.Sorted = True
'Boucle qui élimine les doublons dans la liste
' While cptCCN_Naf < collection_naf.Items.Count
' If collection_naf.Items(cptCCN_Naf + 1) = collection_naf.Items(cptCCN_Naf) Then
' collection_naf.Items.Remove (collection_naf.Items(cptCCN_Naf))
' cptCCN_Naf = 0
'Else
' cptCCN_Naf = cptCCN_Naf + 1
' End If
'Wend
Next
cpt = cpt + 1
Wend
' For cptCCN_Naf = 1 To collection_naf.Count
'If cptCCN_Naf = collection_naf.Count Then
'Exit Sub
'End If
'If (collection_naf.Item(cptCCN_Naf) = collection_naf.Item(cptCCN_Naf + 1)) Then
'détruire collection_naf.Item(cptCCN_Naf + 1)
'End If
'Next
Else
MsgBox "Aucune donnée trouvée"
End If
End Sub

Private Sub Image1_Click()

End Sub

Private Sub CommandButton2_Click()
'Sortie du programme
'msg " voulez vous vraiment quitter l'application"
'MsgBox msg
End

End Sub

Private Sub Label1_Click()

End Sub

Private Sub Label2_Click()

End Sub

Private Sub ListBox1_Click()
' c la quand doit afficher
End Sub

Private Sub TextBox1_Change()

End Sub

Private Sub UserForm_Click()

End Sub
Commenter la réponse de fario75

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.