Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

macro evenementielle-plusieurs onglets

1 réponse
Avatar
Sunburn
Bonjour,
puis-je faire une macro, sur une feuille "10", qui me dise :
si en feuille "GA11" ou "GA12" ou GA13", j'ai les cellules C6 ou D6 qui sont
modifiées,alors j'excute la procédure, sinon, rien.
je précise, mes cellules C6 et D6 sont des sommes.
Donc je voudrais executer une procedure sur "10", seulement si une de mes
sommes dans 1 de mes onglets "GA11" ou "GA12" ou GA13" est modifiée. est-ce
possible ???
Merci.
YANN
PS voici ce que je veux executer uniquement si mes somms changent :
----
Sub Import10()
'supprimer les anciennes lignes
Application.ScreenUpdating = False
Sheets("10").Activate
For I = Cells(Rows.Count, "a").End(1).Row To 2 Step -1
If Cells(I, 1) > 100000 And Cells(I, 1) < 99999999 Then Rows(I).Delete
Next
'ajoute les lignes
Sheets("10").Select
Range("DETAIL10").Select
For Each C In Worksheets("GA14").Range("A2:A1000")
n1 = Mid(C, 1, 1)
n2 = Mid(C, 1, 4)
n4 = Mid(C, 1, 4)
n5 = Mid(C, 1, 4)
n10 = Mid(C, 1, 4)
n11 = Mid(C, 1, 4)
n12 = Mid(C, 1, 4)
n13 = Mid(C, 1, 3)
n14 = Mid(C, 1, 4)
If n1 = 1 Or n2 = 6611 Or n4 = 6874 Or n5 = 6875 _
Or n10 = 7865 Or n11 = 7874 Or n12 = 7875 Or n13 = 777 Or n14 = 7872 _
Then
Selection.EntireRow.Insert Shift:=xlDown
ActiveCell.Offset(0, 0).Select
Range(C, C.Offset(0, 255).End(xlToLeft)).Copy
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
End If
Next
End Sub
----

1 réponse

Avatar
FFO
Salut à toi

Si je comprends bien tu voudrais une macro qui réagissent en fonction d'un
changement de cellules de certaines feuilles

Hors mis les macros évennementielles affectées aux feuilles ou au classeur
qui réagissent dés que l'évennement survient pour la feuille si la macro est
dans le VBA de la feuille pour toutes les feuilles si la macro est dans le
ThisWorkbook du classeur je ne connais pas de macro standard qui puisse
réagir de la même manière

Tu souhaiterais dans le VBA de la feuille "10" déclencher une procédure si
un changement survient dans les feuilles "GA11" "GA12" "GA13"
L'évennement qui concerne le changement pour une feuille ne concerne que les
cellules de la feuille et non pas celles des autres feuilles

La solution consisterait à rajouter des cellules de référence (C7 et D7 par
exemple) à chaque feuille qui permettrait de comparer avec les cellules (C6
et D6) de ces feuilles afin de déterminer si il y a changement ou pas et de
les remettre à jour à la fin de l'éxécution du code pour les comparaisons
suivantes

La procédure sur la feuille "10" pourrait être piloté par un bouton avec ce
code :

For Each i In Sheets(Array("GA11", "GA12", "GA13"))
If i.Range("C6").Value <> i.Range("C7") Or i.Range("D6").Value <>
i.Range("D7")
n = 1
Exit For
End If
Next
If n = 1 then
Run("Import10")
Sheets("GA11").Range("C7").Value = Sheets("GA11").Range("C6").Value
Sheets("GA11").Range("D7").Value = Sheets("GA11").Range("D6").Value
Sheets("GA12").Range("C7").Value = Sheets("GA12").Range("C6").Value
Sheets("GA12").Range("D7").Value = Sheets("GA12").Range("D6").Value
Sheets("GA13").Range("C7").Value = Sheets("GA13").Range("C6").Value
Sheets("GA13").Range("D7").Value = Sheets("GA13").Range("D6").Value
End If

Celà devrait te convenir
Dis moi !!!!