RESOLU - COMBOBOX MULTILIGNE

RESOLU - COMBOBOX MULTILIGNE - VB/VBA/VBS - Programmation

Marsh Posté le 03-04-2006 à 15:29:43    

la question est dans le sujet...
 
Comment faire pour faire un retour chariot dans une combobox ???
 
Je voudrais pouvoir rentré dans cette combobox 3 lignes différentes dépendantes de la rowsource
 
ex : la combobox est alimenté par des items genre aa, bb, cc,...
j'aimerais choisir aa, aller a la ligne du combobox et pouvoir ajouter bb à ce meme combobox
 
Est-ce possible ??? Je ne trouve pas de propriété style multiligne pour combobox...
 
Merci d'avance meme si je sais que la question est compliquée


Message édité par mckoy25 le 08-05-2006 à 02:52:50
Reply

Marsh Posté le 03-04-2006 à 15:29:43   

Reply

Marsh Posté le 03-04-2006 à 16:38:16    

Une combobox est un contrôle qui affiche une ligne par élément ou liste d'éléments (multi colonnes).
Tu ne peux pas avoir un élément sur plusieurs lignes (du moins avec les contrôles que je connais).
 
Je ne comprends pas vraiment ta demande

Reply

Marsh Posté le 03-04-2006 à 17:19:56    

euh, ca marche pas

 

Combobox1.AddItem = "ligne1" & chr(10) & chr(13) & "ligne 2", 0

 

?

Reply

Marsh Posté le 03-04-2006 à 18:51:23    

Oui tegu as raison il est impossible avec une combo d'écrire sur plusieurs lignes.
 
Kennybis pour moi la synthaxe serait plutot  
 
chaine="ligne1" & chr(10) & chr(13) & "ligne2"
Combobox1.Additem(chaine)
 
Additem est une fonction

Reply

Marsh Posté le 03-04-2006 à 20:20:22    

Une petite remarque :
La constante vbCrLf équivaut à la combinaison des deux caractères Chr(13) + Chr(10) (retour chariot et de saut de ligne) ;)

Reply

Marsh Posté le 04-04-2006 à 10:02:39    

vbCrLf  ? Et tu te retrouves avec une marque de fin de paragraphe au milieu de ton texte... sur la même ligne que le reste.

Reply

Marsh Posté le 04-04-2006 à 19:07:16    

Ba je me doutais bien que la question posée était complexe
en meme temps cette  combobox me permet de choisir des valeurs par sa rowsource
en meme temps elle me permet de valider des données et de les introduire dans une cellule mais cette cellule doit pouvoir contenir 1, 2 ou 3 lignes...
 
Vous comprenez mieux ????
 

Reply

Marsh Posté le 04-04-2006 à 19:49:41    

tegu a écrit :

vbCrLf  ? Et tu te retrouves avec une marque de fin de paragraphe au milieu de ton texte... sur la même ligne que le reste.


Je faisais référence à une situation standard, pas à l'utilisation de vbCrLf dans une ComboBox. J'aurais dû le préciser  :jap:
 
Désolé ;)

Reply

Marsh Posté le 04-04-2006 à 19:52:55    

mckoy25 a écrit :

Ba je me doutais bien que la question posée était complexe
en meme temps cette  combobox me permet de choisir des valeurs par sa rowsource
en meme temps elle me permet de valider des données et de les introduire dans une cellule mais cette cellule doit pouvoir contenir 1, 2 ou 3 lignes...
 
Vous comprenez mieux ????


Je vais dans le sens des autres : je pense qu'il te reste plus qu'à séparer ces lignes sur plusieurs cellules et gérer cette nouvelle situation...

Reply

Marsh Posté le 04-04-2006 à 23:45:01    

J'ai trouvé une autre solution  
1- remplacer le combobox par un textbox
2- faire un nouvel usf avec 3 combobox (j'ai besoin au max de 3 lignes dans la cellule)
3- renvoyer les valeurs de ces combobox vers le textbox
 
J'ai maintenant un nouvel userform avec 3 combobox ayant les memes rowsource...
 
Problème n°1 :  
 
Comment, après avoir choisi une valeur dans un combobox, la supprimer des rowsources des 2 autres combobox afin d'éviter la saisie de doublons ????
 
Problème n°2
 
Comment simuler l'action de la touche "entrée" pour alimenter la textbox par les différentes valeurs des combobox ???
 
--> un truc du genre textbox.value = combobox1.value & chr(10) & combobox2.value
 

Reply

Marsh Posté le 04-04-2006 à 23:45:01   

Reply

Marsh Posté le 05-04-2006 à 08:59:17    

Citation :

Comment, après avoir choisi une valeur dans un combobox, la supprimer
des rowsources des 2 autres combobox afin d'éviter la saisie de
doublons ????

J'suis loin d'etre un dieu mais j'aurai fait genre :
 

'peuplage de tes comboboxs
sub init()
    Combobox1.AddItem = item1, 0
    Combobox1.AddItem = itemN, N
    Combobox2.AddItem = item1, 0
    Combobox2.AddItem = itemN, N
    Combobox3.AddItem = item1, 0
    Combobox3.AddItem = itemN, N
End Sub
 
'sur le changement de combobox1, peuplage des combobox puis suppression de l'entrée de combobox1 dans les 2 autres
Sub Combobox1.Change(...)
    init()
    Combobox2.RemoveItem(x)
    Combobox3.RemoveItem(x)
End Sub


 
Le seul truc ou je seche c'est comment récupérer x. Il doit etre le numéro d'index du champ a supprimer. En meme temps, j'suis pas super doué en algo donc il y a peut etre plus simple, plus pro  :jap:  
 
 
 

Citation :

Comment simuler l'action de la touche "entrée" [...] --> un truc du genre textbox.value = combobox1.value & chr(10) & combobox2.value

toutafay  :o  (je rajouterai meme " & chr(13) & " dedans)


Message édité par kennybis le 05-04-2006 à 08:59:43
Reply

Marsh Posté le 05-04-2006 à 20:27:29    

Merci de vos réponses
 
J'ai trouvé plus simple en comparant les valeurs des combobox et d'inscrire un message d'alerte concernant l'entrée de doublons si il y a.
trop compliqué d'aller chercher la valeur index d'un combobox pour la supprimer dans l'autre et encore plus compliqué avec 3 combobox...
maintenant la seconde combobox s'affiche que si une valeur est choisie dans la première et pareil pour la troisième...
 
pour récupérer les combobox dans le textbox j'ai toujours pas la solution.
J'ai essayé textbox.text = combobox1.value & chr(10) & combobox2.value mais le résultat donne les choix sur la même ligne séparer par le caractère "paragraphe".
 Je vais essayer :
 
textbox.value = combobox1.value & vbcrlf & combobox2.value
 
Je vous donne une réponse plus tard
Bon appétit

Reply

Marsh Posté le 06-04-2006 à 09:55:55    

As-tu passé la propriété .Multiline de ta textbox à True ?

Reply

Marsh Posté le 11-04-2006 à 10:25:35    

salu réponse tardive...
 
 
la meilleure méthode est d'écrire :
 
textbox.text = combobox1.value & chr(10) & combobox2.value
 
le vbcrlf marche bien mais me pose problème ensuite pour extraire les données du textbox vers une cellule
 
merci et j'ai RESOLU mon problème

Reply

Sujets relatifs:

Leave a Replay

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