Duuuuurrrrrrrrrrr

  • Initiateur de la discussion lichem01
  • Date de début
L

lichem01

Guest
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("A1").Value <= Range("A2").Value Then
ActiveSheet.Shapes("Object 48").Select
Selection.Verb Verb:=xlPrimary
End If
If Range("A1").Value >= Range("A2").Value Then
ActiveSheet.Shapes("Object 41").Select
Selection.Verb Verb:=xlPrimary
End If

End Sub

Le Probleme est que lorsque la valeur de n'importe quelle cellule de la feuille change, la commande est lancée.
Est-il possible que cette commande ne fonctionne que si une certaine cellule de la feuille change.
 
T

Ti

Guest
à supposer que la cellule dont tu veux tester le changement de valeur soit la "B1", voici ta procédure corrigée


Private Sub Worksheet_Change(ByVal Target As Range)
If Target = Range("B1") Then
If Range("A1").Value <= Range("A2").Value Then
ActiveSheet.Shapes("Object 48").Select
Selection.Verb Verb:=xlPrimary
ElseIf Range("A1").Value >= Range("A2").Value Then
ActiveSheet.Shapes("Object 41").Select
Selection.Verb Verb:=xlPrimary
End If
End If
End Sub
 
L

lichem01

Guest
TI si t'es encore là HELP

la formule fonctionne mais 2 Problemes se pose:
1)Cela ne fonctione que si l'on change manuellement la cellule par ex:B2, mais si la cellule change sur une requete prenant les données sur le net cela marche pas
2) si le changement correspond a une plage de cellules, çà ne marche pas non plus ex: if target= Range ("PlageDeCellules"),le message d'erreur est
erreur d'execution 13
Imcompatibilté de type
 
T

Ti

Guest
Re: TI si t'es encore là HELP

1ere question : si ça ne marche pas avec l'événement Change, essaie alors avec l'événement Calculate
2ème question, pour tester si la cellule se trouve à l'intérieur d'une plage donnée (ici B1:C5), tu peux corriger ta proc. comme ça :

'pour tester si la cellule se trouve dans la plage B1:C5

Private Sub Worksheet_Change(ByVal Target As Range)
With Target
If .Row >= 1 And .Row <= 5 And .Column >= 2 And .Column <= 3 Then
If Range("A1").Value <= Range("A2").Value Then
ActiveSheet.Shapes("Object 48").Select
Selection.Verb Verb:=xlPrimary
ElseIf Range("A1").Value >= Range("A2").Value Then
ActiveSheet.Shapes("Object 41").Select
Selection.Verb Verb:=xlPrimary
End If
End If
End With
End Sub
 

Statistiques des forums

Discussions
311 733
Messages
2 082 019
Membres
101 872
dernier inscrit
Colin T