OVH Cloud OVH Cloud

recherche

3 réponses
Avatar
olli_w
bonjour

j'ai un petit souci sur excel vba

je voudrais faire une rechercher sur une feuille excel selon un seul critère
(payé et non payé), puis récupérer sur la même ligne le numéro de la facture
correspondate et enfin récupérer ce numéro de facture dans un combobox

merci beaucoup par avance de votre aide

3 réponses

Avatar
olli_w
je précise un peu parce que je comprends pas trop ta réponse (je suis pas
très bon en info mais c'est un projet que je dois faire pour l'école)

en fait, j'affiche d'abord un premier userform avec deux option button, l'un
pour payé, l'autre pour non payé
l'utilisateur doit choisir puis cliquer sur un bouton suivant qui affiche un
nouveau userform avec le combobox ou on peut sélectionner le numéro de la
facture, puis il y a un nouveau bouton suivant qui affiche tous les résultats
grâce à des labels, la j'y arrive

mais je ne sais pas quand est ce que je dois insérer le code de ma fonction

il faudrait que dans le combobox il y ait toutes les factures de l'état que
l'utilisateur a choisi sur le userform précédent

merci encore
Avatar
anonymousA
re,

tu mets la proc que je t'ai communiquée dans l'evenement Initialize du
second UF. Ton combobox doit avoir le nom ComboBox1 pour que la procédure
marche telle quelle.
Si ca fonctionne et je ne vois pas pourquoi ce ne serait pas le cas, ton
combobox de ton second UF ne contiendra que les N° de facture payées.

SI tu veux introduire un choix entre payé ou non payé par une vérif de
bouton d'option p.e du userform1, il te faudra ecrire la proc suivante
toujours dans l'evenement Initialize du second UF (en admettant que ton
bouton d'option Payé s'appelle OptionButton1 dans ton 1er UF et que ce UF
s'appelle Userform1)

if Userform1.Controls("OptionButton1").Valueúlse then
variable="Non Payé"
else
variable="Payé"
end if

ThisWorkbook.Sheets("Feuil1").Range("_Filterdatabase").AutoFilter
Field:=1, Criteria1:=variable

Me.ComboBox1.Clear

With ThisWorkbook.Sheets("Feuil1").Range("_Filterdatabase")
For Each c In .Offset(1, 0).Resize(.Rows.Count - 1,
.Columns.Count).Columns(8).SpecialCells(xlCellTypeVisible)
Me.ComboBox1.AddItem c.Value
Next
End With

ThisWorkbook.Sheets("Feuil1").Range("_Filterdatabase").AutoFilter
Field:=1

Enfin, il te faudra sans doute aussi gérer le fait que ( je pense dasn ton
CommanButton du 1er UF) aucun bouton d'option ne soit coché. Puis décider si
à l'ouverture du second UF , il te faut fermer le 1er ou juste le cacher.

De plus, j'ai pas testé mais il se peut que la feuille sur lequel a lieu le
filtre doive être active.Ca m'étonnerait mais sait-on jamais ?
Par ailleurs, il faut bien sur que la feuille en question possède un filtre
et que l'orthographe du critère (criteria1) soit evidemment correspondante
avec l'occurence à rechercher.

A+


je précise un peu parce que je comprends pas trop ta réponse (je suis pas
très bon en info mais c'est un projet que je dois faire pour l'école)

en fait, j'affiche d'abord un premier userform avec deux option button, l'un
pour payé, l'autre pour non payé
l'utilisateur doit choisir puis cliquer sur un bouton suivant qui affiche un
nouveau userform avec le combobox ou on peut sélectionner le numéro de la
facture, puis il y a un nouveau bouton suivant qui affiche tous les résultats
grâce à des labels, la j'y arrive

mais je ne sais pas quand est ce que je dois insérer le code de ma fonction

il faudrait que dans le combobox il y ait toutes les factures de l'état que
l'utilisateur a choisi sur le userform précédent

merci encore


Avatar
olli_w
bon, j'y arrive vraiment pas, je viens de me prendre la tête dessus pendant
bien 2 heures

merci quand même

@ +