Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

worksheet change target

  • Initiateur de la discussion Initiateur de la discussion ozthewizard
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

O

ozthewizard

Guest
Bonjour à tous!
venant depuis quelques temps sur ce forum lire vos bons conseils, je me suis inscrit car je n'arrive pas à trouver la solution à mon problème:

je fais un fichier qui peut gérer les ventes et les stocks;
les ventes sont rentrées au jour le jour (le lendemain de celles-ci)
j'ai fait un système pour voir lorsque j'arrive au 7° jour de ventes, pour que les dépannages se mettent dans les stocks de façon définitive (bêtement les déplacer)
mon problème est que je n'arrive pas à trouver comment paramètrer target pour qu'il se référe à la cellule AV1

deplus, il faudrait que ma macro se lance non pas quand je tape "7", ni dans une liste déroulante mais quand le résultat de la somme est 7 (lorsque les ventes du 7° jour sont rentrées...)

je n'ai jamais travaillé avec les événements et je dois avouer que je suis un peu perdu :S


merci d'avance de m'aider,
 
Re : worksheet change target

Bonjour,

mon problème est que je n'arrive pas à trouver comment paramètrer target pour qu'il se référe à la cellule AV1

tu veux déclencher la procédure événementielle uniquement sur la cellule AV1 ??? tout ceci manque un peu de détail, j'avoiue que je n'ai pas tout compris...

bon après midi
@+
 
Re : worksheet change target

donc, AV1 est une somme, lorsque le resultat de la somme est égal à 7, j'aimerai que ma macro se lance...



avec l'exemple, ce sera plus simple:

pour vérifier le combientiemme de jour on est,
j'ai fait une addition de toutes les ventes par jour,
ensuite, plus loin à droite, j'ai 7 cases avec des SI; si la somme des ventes est égale à " ", il indique 0, autrement, il indique 1;
j'ai (en AS1 sur l'exemple), la somme de ces 1 et 0, ce que je voudrais, c'est lorsque cette somme équivaut à 7, lancer une macro automatiquement...

merci d'avance!
 

Pièces jointes

Dernière modification par un modérateur:
Re : worksheet change target

bonjour ozthewizard

Salut ami Pierrot 🙂

Teste:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$AV$1" And Target.Value = 7 Then
 'la macro
End If
End Sub
 
Re : worksheet change target

merci de ton aide, mais cela ne fonctionne pas; voici la macro complète, je me suis ptet trompé...

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$AV$1" And Target.Value = 7 Then
'la macro:
Range("CC16:CC162").Select
Selection.Copy
Range("BT16").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("CC16:CC162").Select
Selection.ClearContents
End If
End Sub
 
Re : worksheet change target

Re, bonjour PierreJean🙂

dans ce cas, peut être utiliser l'événement "calculate" de la feuille :
Code:
Option Explicit
Private Sub Worksheet_Calculate()
If Range("AS1").Value = 7 Then
    With Range("CC16:CC162")
        Range("BT16:BT162").Value = .Value
        .ClearContents
    End With
End If
End Sub

bon après midi
@+
 
Re : worksheet change target

merci pierrot, ça m'a tout l'air de fonctionner (sur l'exemple en tout cas)
je teste ça sur le fichier complet!

merci et bonne aprem!
 
Re : worksheet change target

Bonjour le fil, bonjour le forum,

Comme l'événement ne se fait pas sur la modification (Change) de AS1 qui contient une formule, je te propose d'utiliser plutôt la macro événementielle Calculate ci-dessous :
Code:
Private Sub Worksheet_Calculate()
If Range("AS1").Value = 7 Then 'condition : si AS1 = 7
    Range("CC16:CC162").Copy 'copie la plage CC16:CC162
    'colle en BT16 les valeurs de cette plage
    Range("BT16").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("CC16:CC162").ClearContents 'efface le contenu de la plage
End If  'fin de la condition
End Sub

[Édition]
Arf ! Trop rapide le Pierrot ! Bonjour à toi et à PierreJean
 
Re : worksheet change target

c'est encore moi! (décidément, quel emmerdeur 😉 )
j'ai testé la macro et elle semble se lancer mais excel plante complétement, est-ce possible que cela soit du au fait qu'il essaye de la lancer pour toutes les feuilles en même temps ( 52 feuilles de semaines + 2 feuilles) ?
 
Re : worksheet change target

Bonjour Robert,
j'ai essayé ta version aussi mais cela ne fonctionne pas plus ( il me dit que la méthode 'copy' de l'objet 'range' à échoué...)
 
Re : worksheet change target

Bonjour le fil, bonjour le forum

Ozthewizard, tu l'as mis où le code ? il faut le mettre dans le composant Feuil233(semaine(28)) de ton exemple.
Mais si tu veux que ça agisse pour plusieurs onglets il faudra dire lesquels et revoir la macro en la plaçant dans le composant ThisWorkbook et en remplaçant l'événement Calculate par SheetCalculate. En attendant tes instructions...
 
Re : worksheet change target

ah, je l'avais mis dans worksheet
autrement, le problème est résolu en ajoutant
Range("AV1").Value = "OK"
il faisait bien une boucle...
j'ai testé comme ça et cela ne modifie que la feuille en cours... ( ce que je voulais)

c'est mieux de le mettre dans chaque feuille?

merci beaucoup à tous en tout cas!


Edit: suis fatigué moi...
worksheet= feuille, pas classeur... moi besoin faire dodo!

encore merci
 
Dernière modification par un modérateur:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
588
Réponses
12
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…