RechercheV VBA à partir d'un usf vers Txtbox
Résolu/Fermé
lanetmel
Messages postés
200
Date d'inscription
mercredi 24 août 2011
Statut
Membre
Dernière intervention
15 mars 2018
-
8 avril 2012 à 19:42
lanetmel Messages postés 200 Date d'inscription mercredi 24 août 2011 Statut Membre Dernière intervention 15 mars 2018 - 14 avril 2012 à 19:49
lanetmel Messages postés 200 Date d'inscription mercredi 24 août 2011 Statut Membre Dernière intervention 15 mars 2018 - 14 avril 2012 à 19:49
A voir également:
- RechercheV VBA à partir d'un usf vers Txtbox
- Creer un groupe whatsapp a partir d'un autre groupe - Guide
- Virginie organise un rallye avec 30 équipes. elle veut créer un code pour désigner chaque équipe. elle a commencé à la main, mais elle voudrait le faire calculer à l'aide d'une formule. proposez une formule comportant une seule fonction et à recopier vers le bas dans la colonne a du fichier à télécharger. quelle formule sera en a9 ? ✓ - Forum Programmation
- Il est en cours de transport vers votre site de livraison ✓ - Forum Consommation & Internet
- Comment faire une recherche à partir d'une photo - Guide
- Recherchev + somme plusieurs lignes ✓ - Forum Excel
10 réponses
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 311
9 avril 2012 à 07:34
9 avril 2012 à 07:34
Bonjour
Private Sub ComboBox1_Change() Dim Lig As Integer With Sheets("feuil1") Lig = .Columns("B").Find(What:=ComboBox1, after:=Range("B2"), LookIn:=xlValues).Row TextBox3 = .Cells(Lig, "C") TextBox4 = .Cells(Lig, "I") End With
lanetmel
Messages postés
200
Date d'inscription
mercredi 24 août 2011
Statut
Membre
Dernière intervention
15 mars 2018
4
9 avril 2012 à 16:24
9 avril 2012 à 16:24
merci beaucoup!
MÉlanie
MÉlanie
lanetmel
Messages postés
200
Date d'inscription
mercredi 24 août 2011
Statut
Membre
Dernière intervention
15 mars 2018
4
9 avril 2012 à 17:04
9 avril 2012 à 17:04
ça fonctionne très bien merci. Donc avec ma combobox1, ça va rechercher dans ma feuil1 et me donne ce qui se trouve dans la colonne B, dans un textbox de mon usf.. Aussi j'aimerais que ce que je vais entrer manuellement dans ma Textbox1 aille se placer dans la colonne 7 de la même ligne de ma feuil1..j'ai essayé quelques codes mais ils ne fonctionnent pas.. merci à l'avance
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 311
10 avril 2012 à 08:25
10 avril 2012 à 08:25
Bonjour,
Je te répond dans la journée, patience :o)
Je te répond dans la journée, patience :o)
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 311
10 avril 2012 à 11:48
10 avril 2012 à 11:48
Re,
Lorsque tu construis un userform, il est vivement préférable de nommer les contrôles plutôt que de laisser listbox1,combobox1, commandbutton1.... Cela facilite grandement la maintenance et l'évolution du temps de codage total (soit environ 80% du temps passé à automatiser)
donc j'ai rebaptisé les contrôles jusqu'à la 2° ligne des mémos: à toi de finir; attention la propriété "rowsource" des combo doit être Feuil3!G30:G300 et non G30:G300
d'autre part la propriété Tabindex est à 3 pour memo1 et à 4 pour mémo2, là aussi termine
Tabindex te permet de passer d'un mémo à l'autre avec la touche "tab" plut^t qu'avec la souris (on commence ici par le numéro de facture)
Concernant le numéro et la date de facture, je vérifie que le numéro est bien à 5 chiffres et que la date est au format jj/mm/aaaa ( un peu comme sur les sites web )
ci joint le classeur
https://www.cjoint.com/?3DklVhQDtlk
Lorsque tu construis un userform, il est vivement préférable de nommer les contrôles plutôt que de laisser listbox1,combobox1, commandbutton1.... Cela facilite grandement la maintenance et l'évolution du temps de codage total (soit environ 80% du temps passé à automatiser)
donc j'ai rebaptisé les contrôles jusqu'à la 2° ligne des mémos: à toi de finir; attention la propriété "rowsource" des combo doit être Feuil3!G30:G300 et non G30:G300
d'autre part la propriété Tabindex est à 3 pour memo1 et à 4 pour mémo2, là aussi termine
Tabindex te permet de passer d'un mémo à l'autre avec la touche "tab" plut^t qu'avec la souris (on commence ici par le numéro de facture)
Concernant le numéro et la date de facture, je vérifie que le numéro est bien à 5 chiffres et que la date est au format jj/mm/aaaa ( un peu comme sur les sites web )
ci joint le classeur
https://www.cjoint.com/?3DklVhQDtlk
lanetmel
Messages postés
200
Date d'inscription
mercredi 24 août 2011
Statut
Membre
Dernière intervention
15 mars 2018
4
11 avril 2012 à 06:05
11 avril 2012 à 06:05
Bonjour,
merci beaucoup (encore une fois!) J'ai suivi tes conseils et changé les noms des tbox et cbox... j'ai fais quelques changements.. il ne me reste juste une chose qui me bloque pour terminer.. le mémo est choisi via la combobox, la quantité (nbre) s'affiche selon le choix de cbox.. par contre le prix est entré manuellement (comme le numéro de facture et la date) donc il faudrait qu'il aille s'ajouter sur la ligne correspondante ("I").. j'ai fais un test mais cela ne fonctionne pas..
https://www.cjoint.com/?BDlgeOS64cy
merci beaucoup (encore une fois!) J'ai suivi tes conseils et changé les noms des tbox et cbox... j'ai fais quelques changements.. il ne me reste juste une chose qui me bloque pour terminer.. le mémo est choisi via la combobox, la quantité (nbre) s'affiche selon le choix de cbox.. par contre le prix est entré manuellement (comme le numéro de facture et la date) donc il faudrait qu'il aille s'ajouter sur la ligne correspondante ("I").. j'ai fais un test mais cela ne fonctionne pas..
https://www.cjoint.com/?BDlgeOS64cy
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 311
11 avril 2012 à 08:27
11 avril 2012 à 08:27
Bonjour
par contre le prix est entré manuellement (comme le numéro de facture et la date) donc il faudrait qu'il aille s'ajouter sur la ligne correspondante
--
Fallait peut-^tre le dire AVANT !
je regarderai peut-^tre dans la journée mais la méthode est la m^me que pour le numéro de facture avec cells(lig, la colonne)
il faut que tu modifies l'orde des tabindex pour aller directement dans le prix après le choix dans le combo
Essaies et tu dis si tu bloques de trop: d'accord pour un coup de main mais pas pour faire "à la place"
Michel
par contre le prix est entré manuellement (comme le numéro de facture et la date) donc il faudrait qu'il aille s'ajouter sur la ligne correspondante
--
Fallait peut-^tre le dire AVANT !
je regarderai peut-^tre dans la journée mais la méthode est la m^me que pour le numéro de facture avec cells(lig, la colonne)
il faut que tu modifies l'orde des tabindex pour aller directement dans le prix après le choix dans le combo
Essaies et tu dis si tu bloques de trop: d'accord pour un coup de main mais pas pour faire "à la place"
Michel
lanetmel
Messages postés
200
Date d'inscription
mercredi 24 août 2011
Statut
Membre
Dernière intervention
15 mars 2018
4
11 avril 2012 à 17:11
11 avril 2012 à 17:11
Bonjour,
Alors voici ce que j'ai fais comme correction :
https://www.cjoint.com/?BDlq5vcK04P
ça fonctionne mais il reste 2 petites choses à règler : quand ça va porter les données dans la feuille1, elles ne vont pas se mettre sur la ligne correspondant au mémo mais dans la première ligne vide disponible...Aussi même si je rempli seulement les 3 premières lingnes, sur la feuille 3, il me donne 9 fois la date et le numéro de facture.. je sais pas trop comment le faire.. Dois-je mettre ce code dans la sub Combobox change ou mettre une condition
Aussi j e ne comprend pas cette ligne du code, peux-tu me l'expliquer svp :
lig = .Columns("G").Find("*", , , , , xlPrevious).Row + 1
que veulent dire les espaces?
quel est le fonctionnenent de "*"
merci, je commence mais je veux comprendre et apprendre!
Mélanie
Alors voici ce que j'ai fais comme correction :
https://www.cjoint.com/?BDlq5vcK04P
ça fonctionne mais il reste 2 petites choses à règler : quand ça va porter les données dans la feuille1, elles ne vont pas se mettre sur la ligne correspondant au mémo mais dans la première ligne vide disponible...Aussi même si je rempli seulement les 3 premières lingnes, sur la feuille 3, il me donne 9 fois la date et le numéro de facture.. je sais pas trop comment le faire.. Dois-je mettre ce code dans la sub Combobox change ou mettre une condition
Aussi j e ne comprend pas cette ligne du code, peux-tu me l'expliquer svp :
lig = .Columns("G").Find("*", , , , , xlPrevious).Row + 1
que veulent dire les espaces?
quel est le fonctionnenent de "*"
merci, je commence mais je veux comprendre et apprendre!
Mélanie
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 311
11 avril 2012 à 18:42
11 avril 2012 à 18:42
Ok, il faut que je me remette en t^te le truc; je regarde demain... :o)
Au passage, je te signale que j'avais modifié le code des boutons; regarde sur mon classeur
lig = .Columns("G").Find("*", , , , , xlPrevious).Row + 1
que veulent dire les espaces?
ce sont des paramètres dont je n'ai pas besoin mais je dois garder l'ordre d'écriture de ces parametres
on pourrait écrire
Lig=.columns("G").Find(What:="*", SearchDirection:=xlprevious).Row
"xlprevious" veut dire "précédant" par opposition à xlnext: "suivant"
* est un terme générique qui veut dire: il y a quelque chose dans la cellule
donc on trouve la ligne de la dernière cellule utilisée et on ajoute 1 qui est la première cellule vide
Il y a d'autres formules pour trouver première cellule vide
pas exemple si on est sûr qu'il n'y a pas de cellule vide intercalées
lig=Range("A3").end(xldown).row+1
Au passage, je te signale que j'avais modifié le code des boutons; regarde sur mon classeur
lig = .Columns("G").Find("*", , , , , xlPrevious).Row + 1
que veulent dire les espaces?
ce sont des paramètres dont je n'ai pas besoin mais je dois garder l'ordre d'écriture de ces parametres
on pourrait écrire
Lig=.columns("G").Find(What:="*", SearchDirection:=xlprevious).Row
"xlprevious" veut dire "précédant" par opposition à xlnext: "suivant"
* est un terme générique qui veut dire: il y a quelque chose dans la cellule
donc on trouve la ligne de la dernière cellule utilisée et on ajoute 1 qui est la première cellule vide
Il y a d'autres formules pour trouver première cellule vide
pas exemple si on est sûr qu'il n'y a pas de cellule vide intercalées
lig=Range("A3").end(xldown).row+1
lanetmel
Messages postés
200
Date d'inscription
mercredi 24 août 2011
Statut
Membre
Dernière intervention
15 mars 2018
4
11 avril 2012 à 19:44
11 avril 2012 à 19:44
Bonjour Michel
merci beaucoup pour tes éclaircissements.. je comprends maintenant, alors c'est pour ça que ce que je veux faire ne fonctionne pas.. Le code dit d'aller chercher la première ligne vide à la suite de la dernière rempli et d'y mettre mes infos.
Tandis que moi je voudrais que ça recherche la valeur de ma Combobox et qu'un fois trouvée elle aille mettre les données de mes txbox prix, facture et date de facture via à vis la ligne correpsondante au numéro de mémo
Mélanie
merci beaucoup pour tes éclaircissements.. je comprends maintenant, alors c'est pour ça que ce que je veux faire ne fonctionne pas.. Le code dit d'aller chercher la première ligne vide à la suite de la dernière rempli et d'y mettre mes infos.
Tandis que moi je voudrais que ça recherche la valeur de ma Combobox et qu'un fois trouvée elle aille mettre les données de mes txbox prix, facture et date de facture via à vis la ligne correpsondante au numéro de mémo
Mélanie
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 311
12 avril 2012 à 14:51
12 avril 2012 à 14:51
bonjour Mélanie
Version 2 remaniée pour saisie prix dans usf et format numéro et date facture
fait sur le classeur que je t'avais envoyé
rappel:
"Au passage, je te signale que j'avais modifié le code des boutons"
et
"la propriété "rowsource" des combo doit être Feuil3!G30:G300 et non G30:G300 ":
en cours d'essai et maintenance on est + souvent sur la feuil1 que 3 donc G30:G300 sans précisions t'envoies les valeurs G30:G300 de la feuil1==> moment de soilitude
https://www.cjoint.com/?3DmoYq71YHj
Version 2 remaniée pour saisie prix dans usf et format numéro et date facture
fait sur le classeur que je t'avais envoyé
rappel:
"Au passage, je te signale que j'avais modifié le code des boutons"
et
"la propriété "rowsource" des combo doit être Feuil3!G30:G300 et non G30:G300 ":
en cours d'essai et maintenance on est + souvent sur la feuil1 que 3 donc G30:G300 sans précisions t'envoies les valeurs G30:G300 de la feuil1==> moment de soilitude
https://www.cjoint.com/?3DmoYq71YHj
lanetmel
Messages postés
200
Date d'inscription
mercredi 24 août 2011
Statut
Membre
Dernière intervention
15 mars 2018
4
12 avril 2012 à 18:58
12 avril 2012 à 18:58
Bonjour
merci encore.. Donc là le montant de la facture va se mettre à la bonne place mais pas le numéro de facture ni la date de la facture (eux vont sur la première ligne vide)..tout doit se mettre sur la même ligne.
https://www.cjoint.com/?BDms4FkCcAv
merci encore.. Donc là le montant de la facture va se mettre à la bonne place mais pas le numéro de facture ni la date de la facture (eux vont sur la première ligne vide)..tout doit se mettre sur la même ligne.
https://www.cjoint.com/?BDms4FkCcAv
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 311
12 avril 2012 à 19:14
12 avril 2012 à 19:14
ok, je n'avais pas saisi le truc que je trouvais d'ailleurs bizarre..
donc le num de facture et la date sur la m^ ligne que le mémo, c'est bien cà?
donc le num de facture et la date sur la m^ ligne que le mémo, c'est bien cà?
lanetmel
Messages postés
200
Date d'inscription
mercredi 24 août 2011
Statut
Membre
Dernière intervention
15 mars 2018
4
12 avril 2012 à 21:29
12 avril 2012 à 21:29
excact
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 311
13 avril 2012 à 07:57
13 avril 2012 à 07:57
Bonjour,
le numéro et date de facture se placent maintenant sur la ligne du numéro de mémo
En espèrant que...
le numéro et date de facture se placent maintenant sur la ligne du numéro de mémo
Private Sub Btn_ok_Click() Dim Lig_fact As Integer Dim Tbox_prix As Variant, cptr As Byte With Sheets("feuil1") For cptr = 0 To 8 Tbox_prix = Array(Me.Tbox_prix1, Me.Tbox_prix2, Me.Tbox_prix3, Me.Tbox_prix4, Me.Tbox_prix5, _ Me.Tbox_prix6, Me.Tbox_prix7, Me.Tbox_prix8, Me.Tbox_prix9) If Tbox_prix(cptr) > 0 And T_lig(cptr + 1) > 0 Then .Cells(T_lig(cptr + 1), "I") = Tbox_prix(cptr) .Cells(T_lig(cptr + 1), "G") = Me.Tbox_num_fact .Cells(T_lig(cptr + 1), "H") = Me.Tbox_date_fact Next End With 'sortie Unload Facture Sheets("feuil3").Activate End Sub
En espèrant que...
lanetmel
Messages postés
200
Date d'inscription
mercredi 24 août 2011
Statut
Membre
Dernière intervention
15 mars 2018
4
13 avril 2012 à 16:44
13 avril 2012 à 16:44
Bonjour Michel,
On va y arriver.. ça me donne un message d'erreur :
erreur 1004
erreur définie par l'application ou l'objet
et ça me met cette ligne du code en jaune
.Cells(T_lig(cptr + 1), "G") = Me.Tbox_num_fact
Si je regarde les valeur : T_lig(cptr + 1) = 0
Mélanie
On va y arriver.. ça me donne un message d'erreur :
erreur 1004
erreur définie par l'application ou l'objet
et ça me met cette ligne du code en jaune
.Cells(T_lig(cptr + 1), "G") = Me.Tbox_num_fact
Si je regarde les valeur : T_lig(cptr + 1) = 0
Mélanie
lanetmel
Messages postés
200
Date d'inscription
mercredi 24 août 2011
Statut
Membre
Dernière intervention
15 mars 2018
4
13 avril 2012 à 16:50
13 avril 2012 à 16:50
Re-Bonjour,
une fois le code reparti, je suis allée voir et tout s'est bien placé.. reste juste à savoir pourquoi le code d'erreur...
Et si tu avais la gentillesse de m'expliquer ton code j'aimerais comprendre afin de pouvoir le réutiliser et m'améliorer
merci beaucoup
Mélanie
une fois le code reparti, je suis allée voir et tout s'est bien placé.. reste juste à savoir pourquoi le code d'erreur...
Et si tu avais la gentillesse de m'expliquer ton code j'aimerais comprendre afin de pouvoir le réutiliser et m'améliorer
merci beaucoup
Mélanie
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 311
Modifié par michel_m le 14/04/2012 à 07:52
Modifié par michel_m le 14/04/2012 à 07:52
Bonjour
un peu de précipitation de ma part, excuses moi (je n'avais testé que les 2 premiers combo, les autres n'étant pas rebaptisés )
un peu de précipitation de ma part, excuses moi (je n'avais testé que les 2 premiers combo, les autres n'étant pas rebaptisés )
If Tbox_prix(cptr) > 0 And T_lig(cptr + 1) > 0 Then .Cells(T_lig(cptr + 1), "I") = Tbox_prix(cptr) .Cells(T_lig(cptr + 1), "G") = Me.Tbox_num_fact .Cells(T_lig(cptr + 1), "H") = Me.Tbox_date_fact End If
lanetmel
Messages postés
200
Date d'inscription
mercredi 24 août 2011
Statut
Membre
Dernière intervention
15 mars 2018
4
14 avril 2012 à 19:49
14 avril 2012 à 19:49
Bonjour Michel,
Un énorme merci! ça fonctionne parfaitement!
Mélanie
Un énorme merci! ça fonctionne parfaitement!
Mélanie