Macro excel

Macro excel - Logiciels - Windows & Software

Marsh Posté le 07-05-2007 à 11:31:38    

Bonjour a tous!
j'ai un petit probleme concernant excel.
voila ce que j'aimerai faire:
 
1-dans une case de ma feuille j'ai créé une liste deroulante ou l'utilisateur choisi ce qu'il souhaite acheter (ex: table, chaise, fauteuil, ...etc).
 
2-ensuite, et c'est la que je bloque, je voudrais que, suivant le choix ci dessus, un petit dessin du produit s'affiche (uniquement celui du produit). pour cela j'ai donc mis les differents dessins de tous les produits sur ma feuille excel (5 ou 6 dessins). j'ai crée pour chaque dessin differentes macro pour lequelle je fais varier le contratse et la luminosité des different dessins, de facon a ce qu'ils apparaisse ou disparaisse de la feuille (en fait ils sont tjs la mais on ne les voit plus lorsque la luminosité est a 100% et le contraste a 0%).
 
La question est: comment lier ces macros au choix de l'utilisateur (voir 1-) ?
 
Ce que je pensais faire au debut c'est une formule qui testerait le resultat de la cellule dans lequel lutilisateur a fait son choix, et lancerai les differentes macro de facon a ne faire apparaitre que le bon dessin. le probleme c'est que je ne sait pas comment appeler une macro dans la formule... J'ai egalement lu qu'il n'etait pas possible de lancer une macro avec une formule...
pouvez vous m'aider? Merci d'avance
 
Laurent

Reply

Marsh Posté le 07-05-2007 à 11:31:38   

Reply

Marsh Posté le 07-05-2007 à 14:54:52    

Bonjour
 
Prenons l'exemple si ta liste est en A2 de l'onglet "Feuil1"
Tu vas dns VBE (visual basic editor) tu doubles click sur ton objet "Feuil1 (Feuil1)". Dans les pioches en haut, dans celle de gauche tu pioches "WorkSheet" et celle de droite "Change".
En gros il va executer ce code a chaque fois qu'une cellule est modifiée.
Et regardes ce bout de code :
 

Private Sub Worksheet_Change(ByVal Target As Range)
     
    Lignecellactive = ActiveCell.Row
    colonnecellactive = ActiveCell.Column
     
    'a chaque fois que tu vas changer de valeur une cellule comprise entre A1 et A1000
    Select Case colonnecellactive
        'N'execute le code que si les colonnes sont egales à 1 à toi de modifier
        Case 1
            'N'execute le code que si les lignes sont comprises entre 1 et 1000 à toi de modifier
            Select Case Lignecellactive
                Case 2 To 1000
                'Mettre ton code qui execute les macros ici
                MsgBox "Tu viens de modifier la cellule " & _
                Lignecellactive & "/" & colonnecellactive & " ayant la valeur " & _
                Cells(Lignecellactive, colonnecellactive).Value
            End Select
    End Select
 
End Sub


 
Ca ne marche que si tu pioches une autre valeur de la liste. Si tu fais entrée, en effet tu passes a la ligne d'en dessous.
 
Tiens moi au courant, ou si tu as besoin d'aide, no soucy
 
Cordialement


Message édité par SuppotDeSaTante le 07-05-2007 à 15:03:28

---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 07-05-2007 à 16:11:40    

Merci bien pour ton aide! je n'ai pas encore essayé ce que tu m'a dit, mais je te tiens au courant. Va falloir que je fasse quelques essais (je n'y connais rien en vbe, je decouvre!). Si jamais je bloque je saurais a qui m'adresser :)
merci encore
a+

Reply

Marsh Posté le 07-05-2007 à 17:00:20    

Bonjour
 
Comme je le propose toujours, tu peux aussi m'envoyer ton fichier que zieute avec un truc réel... C'est toujours plus pratique et precis...
 
Cordialement


---------------
Soyez malin, louez entre voisins !
Reply

Sujets relatifs:

Leave a Replay

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