[VBA-E] Adaptation avec des listbox ou combobox
Bonjour,
J'ai voulu adapter cette exemple en remplacant les textbox par des listbox mais sans succes quelqu'un pourrait m'aider.
Je voudrais obliges des utilisateurs à choisir les donnes à saisir dans des listes déroulantes.
contributions VBA
[Sources]Utiliser un Userform pour Lire et écrire facilement ds 1 feuille de calculs
merci par avance.
Adaptation avec des listbox
Bonjour,
J'ai essaye avec des listbox ou des combobox sans succes.
voici le fichier donc je parle. il a ete fait par ouskel'n'or.
http://cjoint.com/?ennpvfYnxx
à la place des textbox, je voudrais utiliser des listes déroulantes soit listbox ou combobox ( differentes ? ).
merci
Adaptation avec des listbox
Bonjour,
Voici le fichier excel que j'ai crée. Tu pourras voir se que j'ai fait. Par contre, je ne peux divulger les donnes du tableau c'est pour cela que j'ai mis des X.
http://cjoint.com/?enoBd4DUKx
Je voudrais exploiter ton exemple pour remplir mon tableau.
Soit avec listbox ou combobox ( quel est le plus pratique ? ) mais donnes sont par fixer en nombre, il fait que je puisse en rajouter => je croix que le plus pratique dans mon cas est le combobox.
ici dans mon exemple, je copie un tableau dans chaqu'une de mes feuilles. J'ai crée des validations en listes deroulantes allant chercher les donnees dans le tableau copie.
Ce qui m'a pose des problemes de selection de cellules d'ailleurs. Ce n'est pas encore robuste car je dois de temps en temps bidouille le numéro de selection de cellule. Et je ne sais pourquoi ? ( ici cela doit etre 5 jusqu'à detection de la derniere ). Mais j'ai des cas ou je dois mettre 3 ou autre car il me decale ma selection. C'est problématique dans mon tableau global car il y a des lignes qui disparaissent .
On m'a demandé si on pouvait copier un ligne pour eviter de redocumenter une ligne entierement. J'ai teste on peut copier manuellemnt la ligne et renommer le numero de la colonne A pour continuer mon incrémentation de ligne. Je n'ai trouve que cette maniere pour inserer une ligne et copier.
C'est pas facile à expliquer ce que l'on voudrais. En te donnant mon tableau, tu vas comprendre ce que j'ai essaye de faire.
J'espere que tu va mieux comprendre ce que j'ai essaye de faire. Je debute en vba. Et ma maniere de proceder est la suivante : je recupere des bouts de code à droite et à gauche et je teste . Et c'est pas evident.
merci.
Adaptation avec des listbox
Donnees d'une combobox ou listbox
j'ai deux possibilite soit je pointe sur une zone d'une feuille soit je met mes donnes dans mon code ?
Adaptation avec des listbox
desole pour protection je l'avais pas ote sur cette version .
Je vais t'expliquer comment fonctionne mon tableau....
La feuille 25 est copie sur feuille 2 à 21.
Si tu prends feuille 2 , REP 1 ( LIGNE 5 ) tu peux choisir des donnees dans une liste deroulante, j'ai fait cela pour chaque colonne etc...
En cliquant sur copie ligne tu copie REP 1 puis cela renomme REP 2 ETC...
Tu peux faire cela sur toutes les feuilles.
Mon tableau global recopie tableau feuille 2 avec titre puis mes lignes documentes pour feuille 3 à 21.
Voici un peu plus d'explication sur le fonctionnement de mon tableau .
Je n'y ai pas encore integrer ton bout de code avec useform car je n'arrive pas à l'adapter avec des combobox....
La finalite est de pouvoir inserer ou copie une ligne, en effacer et modifier une, "voir en supprimer sauf si cela me supprime des donnees de mon deuxieme tableau" , mettre des protections.
Adaptation avec des listbox ou combobox
j'ai travaille un peu sur ce que j'aimerais faire. Mais je bloque sur la verification des lignes cela bug, insertion de mes donnees de mes combobox avec le ScrollBar cela bug... Pour le reste cela marche j'ai pu reprendre ce qui avait ete fait.
http://cjoint.com/?eoaW2jOUaX
erreur execution '-24470248809(800700057)':
bonjour,
je n'arrive pas à resoudre cette erreur ( objet specifie introuvable ).
Il bloque sur la ligne en rouge.
Code:
1 2 3 4 5 6 7
| Function verifligne() 'Vérifie si la ligne est vide
Dim NoCol As Integer, NomControle As String
For NoCol = 1 To NbreColonnes
NomControle = "Textbox" & NoCol
verifligne = verifligne Or Me.Controls(NomControle).Text <> "" Next
End Function |
Adaptation avec des combobox
J'ai essayer d'utiliser plutot des combobox.
J'ai remplace tous les textbox par des combobox.
J'avais remplacer
Code:
NomControle = "Textbox" & NoCol
par
Code:
NomControle = "Combobox" & NoCol
cela n'a rien resolu.
De plus, mon tableau que je veux remplir à 19 colonnes dont trois possibilite de rentrer des valeurs manuellement. ( A - S )
Mes 16 combobox vont chercher les donnees à choisir en AA - AM.
Je pense qu'avoir deux tableaux sur la meme feuille pertube la verification sur le tableau à remplir. Je suis en train de regarder pour utiliser additem.
Mais cela ne resoud pas mon probleme sur ses quelques lignes de code.
J'ai besion un peu plus d'explication sur ce bout de programme.
Adaptation avec des combobox
bon j'ai pas mal avance. J'ai resolu un grand nombre de mes problemes.
J'arrive à inserer mon choix de comobobox sur une ligne et puis une autre ...,
effacer une ligne et detruire, par contre j'ai un probleme lorsque je quitte userforme.
Code:
1 2 3 4 5 6 7 8
| Sub Init() 'Renseigne les combobox pour la ligne NoLigne
Dim NoCol As Integer, NomControle As String
For NoCol = 1 To NbreColonnes
NomControle = "Combobox" & NoCol
Me.Controls(NomControle) = fl.Cells(NoLigne, NoCol).Value
Me.NuméroLigne = " Ligne " & NoLigne 'Affichage du N° de ligne
Next
End Sub |
il me met erreur execution 380 ( impossible de definir la propriete value. valuer de propropriete non valide .
avant j'avais Me.Controls(NomControle).text = fl.Cells(NoLigne, NoCol).Value
mais cela bloque sur text est rien ne marchait par contre.
Je ne sais pas faire apparaitre les bug par un code... desole
Adaptation avec des listbox ou combobox
J'ai utiliser msgbox : la reponse un FAUX sur ma derniere erreur
Je ne comprends pas trop le resultat ?????
mais si cela te parle ....
Adaptation avec des listbox ou combobox
Code:
1 2 3 4 5 6 7 8
| Sub Init() 'Renseigne les combobox pour la ligne NoLigne
Dim NoCol As Integer, NomControle As String
For NoCol = 1 To NbreColonnes
NomControle = "Combobox" & NoCol
Msgbox Me.Controls(NomControle) = fl.Cells(NoLigne, NoCol).Value
Me.NuméroLigne = " Ligne " & NoLigne 'Affichage du N° de ligne
Next
End Sub |
Je l'ai place devant la ligne souligne en jaune lors du debogage
Par contre, c'est pas pratique. Cela m'a tout bloque. Impossible de reprendre la main.
J'ai aussi essayer avec debug.print mais rien ne s'est passe. Cela imprime sur imprimante ? ( la mien est en rade ).
Adaptation avec des listbox ou combobox
Voici le resultat
NomControle = Combobox1
cellule = Véhicule
Merci pour les explications. C'est plus clair maintenant.
Est que cela te parle car pour moi je n'ai pas encore tout compris au niveau du code.