Lancer une macro en fct d'1 cellule
Résolu
pitive35
Messages postés
75
Date d'inscription
Statut
Membre
Dernière intervention
-
pitive35 Messages postés 75 Date d'inscription Statut Membre Dernière intervention -
pitive35 Messages postés 75 Date d'inscription Statut Membre Dernière intervention -
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
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:
- Lancer une macro en fct d'1 cellule
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Lancer une application au démarrage windows 10 - Guide
- Excel cellule couleur si condition texte - Guide
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Aller à la ligne dans une cellule excel - Guide
3 réponses
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
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
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
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
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