VBA EXCEL 2003 - Comment remplir un tableau

Résolu
geraldao -  
 Lislandais -
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.
Configuration: Windows Vista
Internet Explorer 7.0

3 réponses

  1. Lislandais
     
    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
  2. Lislandais
     
    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
  3. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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