imput box & combobox

imput box & combobox - VB/VBA/VBS - Programmation

Marsh Posté le 09-03-2006 à 19:57:29    

bonsoir,  
 
Voici encore des interrogations, peut-on envisager que la réponse d'une imput box soit récupérée via une combobox.
Je souhaite en effet pour différente ligne poser une question et sélectionner la réponse dans une combobox
alors j'ai un truc de ce type utilisant imputbox pour arrêter ma boucle et attendre une réponse:
Range("A2" ).Activate
Do While Not (IsEmpty(ActiveCell))
 ' Ici j voudrais poser via imput box, ou autre , ma question et récupérer ma réponse dans ma combobox (Cbotuyau) initialisée auparavat. Comment faire?
'InputBox("type de tuyau pour la jonction" & Str(n), "type tuyau" )
Range("d2" ).Offset(n, 0) = val
n = n + 1
ActiveCell.Offset(1, 0).Activate
Loop
dans cette boucle je passe bien d'une ligne à l'autre mais comment interrompre la boucle pour aller lire et récupérer le resultat de ma combobox?
 
voila en espérant avoir était clair.
a bientôt

Reply

Marsh Posté le 09-03-2006 à 19:57:29   

Reply

Marsh Posté le 10-03-2006 à 12:25:07    

bonjour,
N'ayant pas de retour et par habitude du site, cela doit venir d'un manque de données ou d'une question mal posées? je pense cependant qu'il doit y avoir un truc  
quand est il ?
en attendant bon ap
A+

Reply

Marsh Posté le 10-03-2006 à 14:16:09    

Code :
  1. Dim tmp as String
  2. tmp = InputBox("type de tuyau pour la jonction" & Str(n), "type tuyau" )
  3. Cbotuyau.AddItem tmp


Message édité par Profil supprimé le 10-03-2006 à 15:47:35
Reply

Marsh Posté le 10-03-2006 à 14:59:45    

merci pour la reponse,
cependant il doit y avoir une erreur de frappe, parceque en utilisant la syntaxe donnée, je bloque sur input box qui attend quelque chose.
j'ai mis un = entre Cbotuyau.AddItem  et input box mais la j'ai aussi une erreur de compilation.
quel serait l'erreur de syntaxe ?
merci encore
 
voici le prog
dim n as integer
dim val as string
n = 1
Do While Not (IsEmpty(ActiveCell))
Cbotuyau.AddItem = InputBox("type de tuyau pour la jonction" & Str(n), "type tuyau" )
val = Cbotuyau.Value
Worksheets("database" ).Range("d2" ).Offset(n, 0) = val
n = n + 1
ActiveCell.Offset(1, 0).Activate
Loop

Reply

Marsh Posté le 10-03-2006 à 20:06:02    

visiblement en cherchant sur d'autres sites, il semble que cela n'est pas possible ou bien un génie!
on peut me confirmer ?

Reply

Marsh Posté le 10-03-2006 à 21:45:09    

Bonjour,
Il faut mettre comme acecel l'a indiqué  
Cbotuyau.AddItem  InputBox("type de tuyau pour la jonction" & Str(n), "type tuyau" )
et non pas  :
Cbotuyau.AddItem = InputBox("type de tuyau pour la jonction" & Str(n), "type tuyau" )
Ensuite il faudra  selectionner la valeur  ajoutée dans la Combo. Dans ces conditions, il vaut mieux écrire :
 
tmp = InputBox("type de tuyau pour la jonction" & Str(n), "type tuyau" )
Cbotuyau.AddItem tmp
Cbotuyau.Value = tmp
val = Cbotuyau.Value
Worksheets("database" ).Range("d2" ).Offset(n, 0) = val
 
Finalementrs pourquoi passer par un combo  si val est déterminé par  inputbox et mettre simplement :
 
val= InputBox("type de tuyau pour la jonction" & Str(n), "type tuyau" )
Worksheets("database" ).Range("d2" ).Offset(n, 0) = val
 
A+
Epéna
 

Reply

Marsh Posté le 10-03-2006 à 23:22:14    

Epena a écrit :

Bonjour,
Il faut mettre comme acecel l'a indiqué  
Cbotuyau.AddItem  InputBox("type de tuyau pour la jonction" & Str(n), "type tuyau" )
et non pas  :
Cbotuyau.AddItem = InputBox("type de tuyau pour la jonction" & Str(n), "type tuyau" )
Ensuite il faudra  selectionner la valeur  ajoutée dans la Combo. Dans ces conditions, il vaut mieux écrire :
 
tmp = InputBox("type de tuyau pour la jonction" & Str(n), "type tuyau" )
Cbotuyau.AddItem tmp
Cbotuyau.Value = tmp
val = Cbotuyau.Value
Worksheets("database" ).Range("d2" ).Offset(n, 0) = val
 
Finalementrs pourquoi passer par un combo  si val est déterminé par  inputbox et mettre simplement :
 
val= InputBox("type de tuyau pour la jonction" & Str(n), "type tuyau" )
Worksheets("database" ).Range("d2" ).Offset(n, 0) = val
 
A+
Epéna

En gros tu as resumé ce que j'allais répondre (mais j'ai du quitter mon pc  :D )
 

Reply

Marsh Posté le 11-03-2006 à 10:05:27    

merci pour vos réponses à vous deux, mais il semble que je n'ai pas été bien clair.
Evidemment je pourrais écrire directemement
val= InputBox("type de tuyau pour la jonction" & Str(n), "type tuyau" )  
Worksheets("database" ).Range("d2" ).Offset(n, 0) = val  
mais je ne souhaite pas que l'utilisateur entre ce qu'il veut et qu'il est le choix juste avec les données d'une combobox auparavant remplie (voila l'intérêt de la combobox) Par la suite en fonction de la réponse je calcul différente valeur, je souhaite donc aucune erreur d'orthographe.
Cela change la donne et j'espère avoir été plus clair et désolé de ne pas y avoir été avant.
Donc, je ne suis même pas sur que input box soit le meilleur choix, moi ce qui m'mporte c'est de pourvoir passer d'une ligne à l'autre (jusqu'a atteindre une ligne vide) puis de poser une question et d'inscrire le résultat dans une autre colonne.
 
Je rempli ainsi mon tableau.  
Lorsque j'utilise la  
Do While Not (IsEmpty(ActiveCell))  
le problème est que si je ne pose pas une question type input box ou msgbox vba ne s'arrête pas et je n'ai pas la main pour rentrer mes valeurs à slectionner dans la combobox.
 
voila, mais merci encore et peut être que la solution vous paraitra tout aussi évidente mais moi je vois pas!
 
 
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed