changer l'initialize de la combobox en fonction du bouton cliqué !!

  • Initiateur de la discussion Creepy
  • Date de début
C

Creepy

Guest
re all,

J'ai deux bouton : ajouter et Modifier. En fonction de celui que vous cliquez, vous avez la même userform, mais avec un titre different et un bouton different en plus du "annulé" suivant le cas (bouton modifier ou ajouter !!)

J'ai donc fait :
BtnAjouter click()
...
btn = 2
Modifdial.show

btnmodifier click()
btn=1
modifdial.show

Dans mon initialisation de ma userform j'ai mis :

modifidal_initialize()

Select case btn
case btn=1 then
...
...
...
Case btn=2 then
...
...
...
End select

Mais quand je trace pas à pas j'ai bien btn=2 ou 1 avant mes modifdial.show, par contre quand je passe dans mon modifdial_initialize mon btn est = à 0

J'ai essayé avec case 1, avec case feuil1.btnajouter.activate, mais à chaque fois c'est pas bon

Comment faire ??

Encore une fois de plus un grand merci

Creepy
 
R

Ronan Quennec

Guest
Bonjour, le mieux serait de stocker dans une cellule d'une feuille (par exemple une feuille nommée index) de ton classeur le chiffre 1 ou 2 suivant le bonton que tu as cliqué par exemple :

BtnAjouter click()
sheets("index").range("a1").value = 2
Modifdial.show

btnmodifier click()
sheets("index").range("a1").value =1
modifdial.show

Puis d'initialiser ton 2ème userform en fonction de la valeur inscrite dans cette cellule (par exemple la cellule a1 de la feuille index)

modifidal_initialize()
if sheets("index").range("a1").value=1 then
modifidal.caption="MODIFIER"
elseif sheets("index").range("a1").value=2 then
modifidal.caption="AJOUTER"
end if

Et voilà, le tour est joué.
 
S

sousou

Guest
Ton problème est le suivant:

Ta variable btn n'est pas définie comme une variable public (accessible par tous les modules et toutes les procedures) ni même comme une variable locale "dim" accessible par toutes les procédures d'un même module.

Il est donc normal, que leorsque tu entre dans ton initialisation de userform qui est une procédure indépendante il ne voit pas cette variable.

Deux solutions:
1) Déclarer ta variable btn comme variable public
public btn
2) Une solution que j'utilise,
dans ton user form, ajoute un control de type label nommé btn par exemple, dont la proriété visible est = false, et initialise ce control avant d'employer la méthode show.

je résume:
btnmodifier click()
modifdial.btn=1
modifdial.show

ta procédure d'initialisation, peut rester la même.
 

Discussions similaires

Statistiques des forums

Discussions
312 489
Messages
2 088 853
Membres
103 975
dernier inscrit
denry