Recherches valeur dans tableau => indication position (macro)

Recherches valeur dans tableau => indication position (macro) - VB/VBA/VBS - Programmation

Marsh Posté le 17-10-2007 à 23:53:07    

Bonjour,  
 
Je vous explique ce que je souhaite faire (cela concerne un macro excel) :  
 
J'ai un tableau composé de 5 lignes y (ex pour la fréquence de repas) et de 5 colonnes x (ex pour le contenu du repas).  
Quelqu'un vient alors remplir le tableau en mettant seulement un X (ou une autre lettre) à l'endroit correspondant à sa façon de faire. Le X donne donc une position sur les lignes y et sur les colonnes x. J'aimerai qu'alors en cliquant sur un bouton, dans une zone précise d'une seconde feuille, apparaisse le N° (de 1 à 5) de la ligne, sur la cellule d'en dessous le N° (de 1 à 5) de la colonne, ainsi que l'insertion d'une phrase (ex de conseil) sur la cellule d'à coté.  
 
Est-ce possible en macro ? Si oui comment s'appel cette "technique" , pourriez vous me mettre sur la piste où me donner un code pouvant m'aider ? N'ayant pas le bon mot pour formuler ma demande je n'arrive pas à trouver des résultats corrects dans les moteurs de recherches et les forums.  
 
Etant débutant j'ai réussi à faire quelque chose avec "If ActiveCell.FormulaR1C1 " cependant une seconde personne est obligé d'écrire le nbr x (colonne) et le nbr y (ligne) à part, donc c'est une perte de temps. Sans compter que le code prends une place énorme ; vu qu'il me faut un "If ActiveCell.FormulaR1C1" pour chaques possibilités. Merci d'avance :)

Reply

Marsh Posté le 17-10-2007 à 23:53:07   

Reply

Marsh Posté le 18-10-2007 à 08:55:51    

Bonjour,
La bonne nouvelle...c'est que c'est possible.
Pour résumé :
Dans ta feuille1, tu as un tableau de 5 colonnes(A,B,C,D,E) et 5 lignes(1,2,3,4,5).
Dans ta feuille2, tu as 1 bouton qui permet de récupérer la colonne et la ligne sur lequel se trouve le X dans le tableau de la feuille1.
 
Adapte le code suivant : le bouton CommandButton1 ets sur la feuille2
Private Sub CommandButton1_Click()
    Dim MonTableau As Range
     
    Set MonTableau = Sheets(1).Range("B2:F6" )
     
    For Each cel In MonTableau
        If cel.Value = "X" Then msg = cel.Row & "--" & cel.Column
    Next
    MsgBox msg
End Sub
 
Un détail : au cas où il y plusieurs X positionnés ca ne marche pas forcément très bien.


Message édité par Paul Hood le 18-10-2007 à 08:57:35
Reply

Marsh Posté le 18-10-2007 à 10:45:16    

Je te remercie, je vais tester ça. (c'est possible youhouu !!)
J'ai oublié de préciser qu'il y'aurait 5 ou 6 tableau sur la même fueille, mais ton code semble être prévu pour.
Je vous tiens au courant si j'ai des pbs

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed