workshett change

beatrice2fr

XLDnaute Nouveau
bonjour
je ne metrise pas bien cette fonction vba et j'ai donc un soucis

je voudrai que en fonction de la valeur ( 1 a 4 (obtenu par fonction)) de la cellule "T15", que soit lancer une macro ( macro1 a macro4 qui modifie differement le format de la cellule), mais que pour cette cellule "T15"
merci
 

CB60

XLDnaute Barbatruc
Re : workshett change

Bonjour
Essai cela:
HTML:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Target, [T15]) Is Nothing And Target.Count = 1 Then
    Select Case Target.Value
      Case Is = 1
        MsgBox "vous pouvez lancer la macro1"
      Case Is = 2
         MsgBox "vous pouvez lancer la macro2"
      Case Is = 3
         MsgBox "vous pouvez lancer la macro3"
      Case Is = 4
         MsgBox "vous pouvez lancer la macro4"
      Case Else
        MsgBox "seul les valeurs 1 à 4 sont dispo pour lancer une macro"
      End Select
   End If
End Sub
 

JNP

XLDnaute Barbatruc
Re : workshett change

Bonjour le fil :),
je voudrai que en fonction de la valeur ( 1 a 4 (obtenu par fonction)) de la cellule "T15", que soit lancer une macro ( macro1 a macro4 qui modifie differement le format de la cellule), mais que pour cette cellule "T15"
Si T15 est le résultat d'une formule, ce qui semble être le cas, Target ne va pas renvoyer T15... Il faudrait donc connaître la zone qui en changeant va affecter T15 pour le tester au niveau de l'Intersect, tout en faisant le test en dur sur T15.
Bonne journée :cool:
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : workshett change

Bonjour,

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Target, [T15]) Is Nothing And Target.Count = 1 Then
     Run Array("macro1", "macro2", "macro3", "macro4")(Target - 1)
  End If
End Sub

ou

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Target, [A1]) Is Nothing And Target.Count = 1 Then
    Run "macro" & Target
  End If
End Sub

JB
 
Dernière édition:

beatrice2fr

XLDnaute Nouveau
Re : workshett change

merci de vos reponse

J'ai testée les differentes solutions , elles fonctionnent mais comme le dis JNP, la valeur obtenu par formule n'est pas reconnu ( par contre si je tape directemnt la valeur dans la cellule T15, lorsque je valide, la macro se lance et s'applique sur T16 et non T15 comme je le voudrai).
Je joint une feuille exemple pour etre plus precis sur mon objectif
 

Pièces jointes

  • exemple.xls
    23.5 KB · Affichages: 58
  • exemple.xls
    23.5 KB · Affichages: 60
  • exemple.xls
    23.5 KB · Affichages: 62
Dernière édition:

CB60

XLDnaute Barbatruc
Re : workshett change

Bonjour
La macro pourrais ressembler à ça:
HTML:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Target, [D18]) Is Nothing And Target.Count = 1 Then
    Select Case Target.Offset(0, -1).Value
      Case Is = 1
        MsgBox "vous pouvez lancer la macro1"
      Case Is = 2
         MsgBox "vous pouvez lancer la macro2"
      Case Is = 3
         MsgBox "vous pouvez lancer la macro3"
      Case Is = 4
         MsgBox "vous pouvez lancer la macro4"
      Case Else
        MsgBox "seul les valeurs 1 à 4 sont dispo pour lancer une macro"
      End Select
          Select Case Target.Offset(0, 1).Value
      Case Is = 1
        MsgBox "vous pouvez lancer la macro5"
      Case Is = 2
         MsgBox "vous pouvez lancer la macro6"
      Case Is = 3
         MsgBox "vous pouvez lancer la macro7"
      Case Is = 4
         MsgBox "vous pouvez lancer la macro8"
      Case Else
        MsgBox "seul les valeurs 1 à 4 sont dispo pour lancer une macro"
      End Select
   End If
End Sub
mais tu n'a pas que quatre choix, tu en a Huit
j'ai mis macro 5 pour le 1 de E18, macro6 pour 2 en E18 et ainsi de suite
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 523
Messages
2 089 312
Membres
104 119
dernier inscrit
karbone57