VBA EXCEL 2003 - Comment remplir un tableau

Résolu/Fermé
geraldao - 4 févr. 2008 à 22:29
 Lislandais - 5 févr. 2008 à 00:04
Bonjour, comme vous allez le voir je débute !! soyez indulgent ;-)

Je ne sais pas quel programme utiliser pour remplir mon tableau, a savoir

3 colonnes : rouge, bleu, vert
3 lignes banane, cerise, pomme

Un formulaire permet de selectionner une couleur et un fruit et d'attribuer une note !

Mon probleme = comment placer ma note au "croisement" du fruit et de la couleur...

Merci à vous.
A voir également:

3 réponses

Sub noter_fruit()
'ici la localisation du tableau
Set couleur = Range("B1:D1")
Set fruits = Range("A2:A4")

'ici lecture des réponses
La_couleur = Range("F1").Value
le_fruit = Range("F2").Value
note = Range("F3").Value

' Le plus simple est d'utiliser la fonction Equiv() d'Excel (attention faire précéder la fonction de Application et utiliser le terme anglais de la fonction
ligne = Application.Match(le_fruit, fruits, 0) + 1
'+1 car le tableau commence à la seconde ligne, à adapter donc

colonne = Application.Match(La_couleur, couleur, 0)+ 1
'idem

Cells(ligne, colonne) = note
End Sub
3
La solution d'Eriiic est intéressante mais il faut la complèter de la manière suivante

Range(La_couleur & " " & le_fruit).Value = note

à la place de
Range("cerise bleu") = 8
qui donnera toujours la même note au même couple de valeurs.

Lislandais
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 213
4 févr. 2008 à 23:33
Bonsoir,

Tu peux nommer nommer tes zones avant:
Selectionne ton tableau avec les titres de colonne et de ligne (rouge, bleu, vert et banane, cerise, pomme) soit 4 lignes x 4 colonnes.
Puis menu 'insertion / nom / créer...', tu coches 'ligne du haut' et 'colonne de gauche', ce qui te définit 3 noms pour les zones horizontales et 3 noms pour les zones verticales à partir de tes titres.
Sachant que pour excel l'espace est une intersection, en vba
Range("cerise bleu") = 8
te mettra 8 à l'intersection de la zone nommée 'cerise' et de la zone nommée 'bleu'

Autre solution:
tu nommes la cellule en haut et gauche 'toto' par exemple, et avec range("toto").offset(l,c) = 8 tu remplis la cellule située l lignes plus bas et c colonnes à droite de toto.

La 1ère solution est très lisible ensuite mais quand même plus pratique pour les formules sur une feuille, la 2nde permet d'utiliser les boucles sur l et c

eric
-1