VBA EXCEL - remplissage tableau [RESOLU] - VB/VBA/VBS - Programmation
Marsh Posté le 11-02-2008 à 10:54:17
Hum...
Bon, après, pour mettre un "sélecteur", je sais pas trop,
mais tu peux toujours faire un truc du style :
Code :
|
Marsh Posté le 11-02-2008 à 19:57:58
je me permets de mettre un petit bemol a ton code, thejulienlepage si tu permets
a la place de Couleur & Fruit je ferai un truc du genre
... if lcase(cells(Ligne,1)) = lcase(Couleur) ...
ca permet d'eviter des inconsistences sur des casses differentes entre ce qu'est rentré l(utilisateur et les valeurs des celluls...
apres, comme tu dis un selecteur est le plus efficace mais dans ce cas, il faudrait utiliser une VBForm et un bouton de commande pour afficher cette fenetre et ca doit se compliquer serieusement
Marsh Posté le 11-02-2008 à 23:16:26
Bah question perf, c'est pas terrible :
si la cellule à trouver se trouve à la position [70,20], on fait 20*70 itérations (*2 comparaisons) : 2800 comparaisons (car je crois que VBA ne fait pas de l'évaluation en "court-circuit" ).
Avec deux boucles consécutives, on fait 20+70 : 90 Comparaisons
Code :
|
Sinon pour être encore plus efficace, il vaut (bien) mieux utiliser la fonction find
Code :
|
Marsh Posté le 12-02-2008 à 22:05:07
merci a tous de vos réponses, je vais tout prendre et tout tenter !
Si quelqu'un peut me dire pourquoi ma solution ne fonctionne pas !!
j'ai d'abord, sous excel, selectionné mon tableau ensuite dans le menu j'ai fait INSERTION / NOM / CREER => ligne du haut et colonne de gauche ...
ensuite sous VBA => Ds un formulaire on choisit une couleur (checkbox) et un fruit (listbox) on indique une note
et enfin ma ligne de code qui ne fonctionne pas..
RANGE(fruit & " " & couleur).value = note
Merci d'avance...
Marsh Posté le 12-02-2008 à 22:41:39
Bah en fait range ne prend que deux structures de string à ma connaissance :
L[xx]C[xx]:L[xx]C[xx]
où
a[xx]:b[xx] (où a et b peuvent valoir de A à IV ex : A10:B40)
Toute autre syntaxe sera refusée, donc "Orange Rouge" n'est pas une plage valide
Marsh Posté le 12-02-2008 à 22:54:38
en fait cela fonctionne sur un tableau tres petit !!!
je l'ai testé !!!!
l'espace est l'opérateur d'intersection de plages pour excel. Comme ; (; pour les feuilles en français et , en vba) est l'opérateur d'union de plages
Marsh Posté le 10-02-2008 à 22:08:56
Bonjour a tous, voila je débute et je cherche le facon la plus "simple" pour integrer des valeurs dans un tableau au croisement d'une ligne et d'une colonne... je m'explique
20 colonnes avec des couleurs
70 lignes avec des fruits
Un formulaire s'ouvre, on selectionne 1 fruit et 1 couleur et on donne une note ...
Cette note doit s'integrer dans le tableau au croisement du fruit et de la couleur choisie !!!
Merci d'avance.
Message édité par geraldao59 le 17-02-2008 à 11:02:06