VBA EXCEL 2003 - Comment remplir un tableau
Résolu/Fermé
A voir également:
- VBA EXCEL 2003 - Comment remplir un tableau
- Tableau croisé dynamique - Guide
- Comment faire un tableau - Guide
- Comment imprimer un tableau excel sur une seule page - Guide
- Trier un tableau excel - Guide
- Liste déroulante excel - Guide
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
'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
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
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
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 240
4 févr. 2008 à 23:33
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
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