execution automatique de macro sur chgt de val cellule

  • Initiateur de la discussion Initiateur de la discussion excellentt
  • 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 !

E

excellentt

Guest
J'ai ecrit cette macro ( avec l'aide du forum )

Elle semblait bien marcher mais a de plus en plus de mal a s'executer ( je ne sais pas pourquoi )

Elle se lancais lorsque je changais une valeur dans la plage manuellement.

Y'a t'il une astuce pour que la macro se lance automatiquement si une valeur dans les cellules de la plage change ?

cdlt

Private Sub Worksheet_Change(ByVal Target As Range)

'Dim flag As Boolean


Dim i As Integer
Dim Plage As Range, Intersection As Range
If flag = True Then Exit Sub
flag = True
Application.EnableEvents = False
Set Plage = Range("B9:B55")
Set Intersection = Application.Intersect(Plage, Target)

If Not (Intersection Is Nothing) Then
With Sheets(Target.Worksheet.Name)
For i = 9 To 55 Step 1

If .Cells(i, 8).Value = "ACHAT" Then
If .Cells(i, 2).Value <> "FAUX" Then
If IsNumeric(.Cells(i, 7)) Then
If .Cells(i, 7).Value < .Cells(4, 2).Value Then
.Range(.Cells(i, 1), .Cells(i, 7)).Copy
Sheets("portefeuille- compte").Range("A9").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Sheets("portefeuille- compte").Rows("9:9").Insert Shift:=xlDown
With Sheets("portefeuille- compte")
.Rows(8).Copy .Rows(9)
End With
.Range(.Cells(i, 1), .Cells(i, 7)).Copy
Sheets("histo").Range("A5").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Sheets("histo").Rows("5:5").Insert Shift:=xlDown
Else
End If
Else
End If
Else
End If
Else
End If
Next i
End With
End If
flag = False
Application.EnableEvents = True

End Sub
 
Re : execution automatique de macro sur chgt de val cellule

bonjour excellentt,

ton code se déclenche chaque fois que tu change de cellule
Private Sub Worksheet_Change(ByVal Target As Range)

essaie avec l'évènement suivant
Code:
Private Sub Worksheet_Calculate()
[COLOR="Blue"]ton code.................[/COLOR]
End Sub

et dis-nous
 
Re : execution automatique de macro sur chgt de val cellule

Bonjour le forum 🙂,
Tu ne peux pas compiler directement. Dans
Code:
Private Sub Worksheet_Change(ByVal [B][COLOR=red]Target[/COLOR][/B] As Range)
tu envoie la référence de la cellule qui vient de changer et que tu utilises à partir de
Code:
Set Intersection = Application.Intersect(Plage, [COLOR=red][B]Target[/B][/COLOR])

If Not ([COLOR=red][B]Intersection[/B][/COLOR] Is Nothing) Then
With Sheets([COLOR=red][B]Target[/B][/COLOR].Worksheet.Name)
alors qu'avec
Code:
Private Sub Worksheet_Calculate()
tu n'envoie aucune donnée, ce qui est logique puisque plusieurs cellules peuvent avoir été calculées en même temps.
Bonne soirée 😎
 
- 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
5
Affichages
931
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
4
Affichages
743
Retour