VBA EXCEL Formulaire : prénom et initiales

chrisdemontigny Messages postés 70 Statut Membre -  
Le Pingou Messages postés 12714 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

j'ai créé deux colonnes :
- la première regroupe des prénoms de collaborateur
- la seconde regroupe leurs initiales
Evidemment, pour une ligne, une personne a son prénom dans la 1ère colonne et ses initiales dans la 2nde colonne.

Je veux créer un formulaire (vous le trouverez dans le fichier joint: http://cjoint.com/12dc/BLBrLZiOKTJ.htm), qui me fasse choisir un prénom dans un combobox et m'affiche, en conséquence, les initiales correspondantes dans l'autre combobox.
J'espère avoir été clair.

J'étais parti, de manière aventureuse et avec mes maigres connaissances de vba, dans le code suivant qui est resté dans la fenêtre de code du fichier joint.

Cela m'affiche une erreur 1004. Je ne sais jamais géré ce type d'erreur; est-ce que qqun peut m'aider sur ce point?

Sachant qu'un autre code permet d'aller chercher les données de la feuille, voici le code commencé :
sub Combobox1_change()
dim val1 as integer
if combobox1.value=thisworkbook.sheets("Feuil1").cells(val1,1).value then
combobox2.value=thisworkbook.sheets("Feuil1").cells(val1,2).value
end if
end sub

C'est la ligne du "if" qui bloque.

Voilà, en espérant avoir été clair.

Merci par avance pour votre aide
A voir également:

10 réponses

Le Pingou Messages postés 12714 Date d'inscription   Statut Contributeur Dernière intervention   1 467
 
Bonjour,
Regarder si c'est dans le bon sens : https://www.cjoint.com/?3LBxr6NMISk
0
chrisdemontigny Messages postés 70 Statut Membre
 
merci pour ta réponse.
Je ne connais pas trop ces écritures de code. Je reposterai peut-être un message si je ne comprends pas tout.
Bonne soirée
0
chrisdemontigny Messages postés 70 Statut Membre
 
Bonjour Le Pingou,

J'ai remplacé les initiales par des numéros de matricule.
Cela me met une erreur d'exécution 380 qui m'indique une valeur de propriété non valide.

Peux-tu m'aider?
Pour info, j'utilisais ton code dans un autre fichier et je me suis rendu compte que c'est les nombres qui créait cette erreur.

As-tu une idée pour éviter cette erreur sachant que je veux mettre absolument des chiffres?

Merci par avance
0
Le Pingou Messages postés 12714 Date d'inscription   Statut Contributeur Dernière intervention   1 467
 
Bonjour,
Normalement il ne devrait pas y avoir de problème.
Pouvez-vous mettre le fichier tel qu'il est sur https://www.cjoint.com/ et poster le lien !

Salutations.
Le Pingou
0
chrisdemontigny Messages postés 70 Statut Membre
 
En fait, j'ai juste repris votre lien et j'ai remplacé les initiales par des nombres. Vous pouvez donc reprendre votre propre lien...
Cordialement
0
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
Bonjour

J'ai l'impression que tu compares des patates et des carottes.

if combobox1.value=thisworkbook.sheets("Feuil1").cells(val1,1).value then
combobox1 est du texte, .cells(val1,1) est du numérique d'après ce que tu dis.
Essaie avec :
cdbl(combobox1.value)=thisworkbook.sheets("Feuil1").cells(val1,1).value then

eric
0
Le Pingou Messages postés 12714 Date d'inscription   Statut Contributeur Dernière intervention   1 467
 
Bonjour eriiic,
Pour information ces lignes de code ne sont plus utilisées dans celui que j'ai transmis avec le fichier.
Amicale salutaions
Le Pingou
0
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
Salut le pingou,

Désolé, j'aurai pu regardé...
Bonnes fêtes de fin d'année :-)
eric
0
Le Pingou Messages postés 12714 Date d'inscription   Statut Contributeur Dernière intervention   1 467
 
Merci eriiic, tous mes voeux pour l'an nouveau.
Le pigou
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Le Pingou Messages postés 12714 Date d'inscription   Statut Contributeur Dernière intervention   1 467
 
Bonjour chrisdemontigny,
Avant de vous répondre j'ai testé le fichier que je vous avais transmis avec des nombres, des textes et un mélange chiffre et texte sans aucun problème.
Ce serait bien de montrer le fichier sur lequel vous avez le problème ....

Salutations.
Le Pingou
0
chrisdemontigny Messages postés 70 Statut Membre
 
Bonjour Le Pingou,

excusez-moi mais c'est vrai que j'ai oublié une information : en plus, j'ai modifié la propriété style sur 2 - fmstyledropdownlist pour éviter que l'utilisateur ne puisse saisir autre chose.

L'erreur d'exécution 380 ne vient que quand je rajoute des chiffres; cette erreur est vraiment ennuyeuse car elle empêche in fine d'utiliser le formulaire alors que l'erreur 91 nous permet de recommencer si on ne fait pas le débogueur.

Merci d'avance si idée
0
Le Pingou Messages postés 12714 Date d'inscription   Statut Contributeur Dernière intervention   1 467
 
Bonjour,
Merci.
Je vous répètes ceci : ce serait bien de montrer le fichier sur lequel vous avez le problème ....

0
chrisdemontigny Messages postés 70 Statut Membre
 
voici ton fichier sur lequel j'ai retravaillé:
http://cjoint.com/12dc/BLEp21wN2lb.htm

cdlt
0
Le Pingou Messages postés 12714 Date d'inscription   Statut Contributeur Dernière intervention   1 467
 
Bonjour,
Merci, j'ai modifié le code.
Le fichier : https://www.cjoint.com/?3LEr2tQfiSg

0
chrisdemontigny Messages postés 70 Statut Membre
 
Merci Le Pingou.
Je comprends que "application.enabledevents=false " bloque en particulier userform_initialize.
Mais je comprends pas pourquoi les chiffres gênaient et quelle est l'utilité de option explicit?
0
Le Pingou Messages postés 12714 Date d'inscription   Statut Contributeur Dernière intervention   1 467
 
Bonjour,
Est-ce que cela fonctionne .... ?
Concerne :
Je comprends que "application.enabledevents=false " bloque en particulier userform_initialize.
Ce qui est faux ; sert à désactiver des événements avant l'attribution d'une valeur de la [Combobox] de telle sorte que l'événement Change n'ait pas lieu.

Mais je ne comprends pas pourquoi les chiffres gênaient
Ce ne sont pas les chiffres qui provoque l'erreur mais simplement l'activation de la propriété [Style] sur [fmStyleDropDownList] qui oblige l'utilisation d'une valeur de la liste [Combobox] (toute valeur externe, même si cette valeur existe provoque une erreur) c'est pourquoi j'ai modifié les 2 procédures événementielle sur [xx_change] .
Vous pouvez essayer de mettre du mélange nombre, texte, chiffre et lettre et vous constaterez que maintenant il n'y a plus de problème... !

Quelle est l'utilité de option explicit?
Instruction utilisée au niveau module pour imposer la déclaration explicite de toutes les variables de ce module

Salutations.
Le Pingou
0
chrisdemontigny Messages postés 70 Statut Membre
 
Merci le Pingou car ton nouveau fichier fonctionne bien avec les chiffres.
Mais je ne comprends pas pourquoi si je mets autre chose que des chiffres, cela ne me met pas une erreur 380, alors que je mets bien 2 - fmstyledropdownlist dans la propriété style.

Bon Réveillon.
Cordialement.
0
Le Pingou Messages postés 12714 Date d'inscription   Statut Contributeur Dernière intervention   1 467
 
Bonjour,
Eh bien, je vous avait mentionnée ceci : c'est pourquoi j'ai modifié les 2 procédures événementielles sur [xx_change]
Si vous regardez le code vous constaterez que j'utilise les valeurs des 2 listes [cbxcolla] et [cbxinit] et de cette manière il n'y a plus de conflit possible.
Tous mes voeux pour l'an nouveau.
0