Lancer une macro en fct d'1 cellule

Résolu/Fermé
pitive35 Messages postés 75 Date d'inscription mardi 21 août 2012 Statut Membre Dernière intervention 14 juillet 2022 - 27 avril 2013 à 17:40
pitive35 Messages postés 75 Date d'inscription mardi 21 août 2012 Statut Membre Dernière intervention 14 juillet 2022 - 27 avril 2013 à 19:34
Bonjour,
ci-joint ma macro que j'ai enregistré( valeur cible)
Sub S_1()
'
' S_1 Macro
'

'
ActiveWindow.SmallScroll ToRight:=19
Range("AT70:AU70").Select
ActiveCell.FormulaR1C1 = "1"
Range("BD70:BI70").Select
ActiveWindow.SmallScroll ToRight:=1
Range("BD70").GoalSeek Goal:=0, ChangingCell:=Range("AT70")
Range("AT72:AU72").Select
ActiveCell.FormulaR1C1 = "1"
Range("BD72:BI72").Select
Range("BD72").GoalSeek Goal:=0, ChangingCell:=Range("AT72")
ActiveWindow.SmallScroll ToRight:=-24
ActiveWindow.SmallScroll Down:=-2
Range("F55:G55").Select
End Sub

J'aimerai non pas qu'elle se déclenche via un bouton mais via le changement de plusieurs cellules ( f39, f47 4t f55).

Pour un autre tableau voila la macro que l'on m'avais donné, mais qui ne fonctionne pas pour ce tableau
Private Sub Worksheet_Change(ByVal Target As Range)
Dim plage As Range, li As Long
' à toi d'ajouter les plages/cellules à prendre en compte
Set plage = Union(Range("D20:D44"), Range("F10"), Range("F12"))
If Not Intersect(Target, plage) Is Nothing Then
li = Target.Row
For li = 20 To 44
' si la ligne li de la colonne D n'est pas vide, on modifie le scenario
If Range("D" & li) <> "" Then Call scenario(li)
Next li
End If
End Sub

Si vous pouvez m'aider à l'adapter ca serai sympa

A savoir que j'aurais une macro identique par feuille de calcul dans mon classeur.

Merci

A voir également:

3 réponses

Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
27 avril 2013 à 18:05
Salut,

dans les propriétés de ta feuille

Private Sub Worksheet_Change(ByVal Target As range)
Dim plage As range, li As Long
' à toi d'ajouter les plages/cellules à prendre en compte
Set plage = Union(range("F39"), range("F47"), range("F55"))
If Not Intersect(Target, plage) Is Nothing Then
Call S_1
End If
End Sub

0
pitive35 Messages postés 75 Date d'inscription mardi 21 août 2012 Statut Membre Dernière intervention 14 juillet 2022 1
27 avril 2013 à 18:28
Rebonjour,
Merci, c'est ce que j'avais fait sauf que je ne l'ai pas mis au bon endroit, je l'ai mis dans le module ou est ma macro.
Encore une petite question
Que dois-je changer soit dans ma macro S_1 ou dans ma propriété, pour que mon curseur revienne dans la cellule ou j'étais avant le lancement de ma macro.

Merci encore de ton aide
0
pitive35 Messages postés 75 Date d'inscription mardi 21 août 2012 Statut Membre Dernière intervention 14 juillet 2022 1
Modifié par pitive35 le 27/04/2013 à 18:28
.
0
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
27 avril 2013 à 18:47
Regarde comme cela

Private Sub Worksheet_Change(ByVal Target As range)
Dim Plage, AdresCell As range, li As Long
' à toi d'ajouter les plages/cellules à prendre en compte
Set Plage = Union(range("F39"), range("F47"), range("F55"))
Set AdresCell = Target

If Not Intersect(Target, Plage) Is Nothing Then
Call ta_macro
End If
AdresCell.Select
End Sub
0
pitive35 Messages postés 75 Date d'inscription mardi 21 août 2012 Statut Membre Dernière intervention 14 juillet 2022 1
27 avril 2013 à 19:34
Ok, merci cela fonctionne
0