Lancer une macro en fct d'1 cellule

Résolu
pitive35 Messages postés 81 Statut Membre -  
pitive35 Messages postés 81 Statut Membre -
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

3 réponses

  1. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
    1. pitive35 Messages postés 81 Statut Membre 1
       
      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
  2. pitive35 Messages postés 81 Statut Membre 1
     
    .
    0
  3. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
    1. pitive35 Messages postés 81 Statut Membre 1
       
      Ok, merci cela fonctionne
      0