|
|
|
|
Bonjour!
Je voudrais savoir s'il est possible de réaliser une macro qui :
1) S'ouvre en même temps que la feuille excel,
2) Se lance automatiquement lorsque l'utilisateur change la valeur d'une cellule précise.
Exemple (très simple, dans ma macro c'est pas ca!):
A5 = A3 + A6
Si je change la formule de A6 alors automatiquement la valeur de A5 aussi change.
Merci!!
Configuration: Windows XP Firefox 2.0.0.5
Bonjour,
Public Function MaFonction (ByVal Cible As Range) As Variant
Application.Volatile
MaFonction = Cible.Value + 10
End Function
soit : vous utlisé l'évènement derrière la feuille :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Range("A2").value = Target.Value + 10
End Sub
Lupin |
Re Salut!
|
Re:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
' Code
' ...
End Sub
'
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
' Code
'...
End Sub
ou la feuille est désigné par [ Sh As Object ]. Lupin |
Arf!
|
------------------------------------
Option Explicit
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Select Case (Sh.Name)
Case "Feuil1": Routine1 Target
Case "Feuil2": Routine2 Target
Case "Feuil3": Routine3 Target
End Select
End Sub
'
Sub Routine1(ByVal Cible As Range)
Cells(5, 1).Value = "Valeur = " & Cible.Value
End Sub
'
Sub Routine2(ByVal Cible As Range)
Cells(5, 1).Value = "Adresse = " & Cible.Address
End Sub
'
Sub Routine3(ByVal Cible As Range)
Cells(5, 1).Value = "Formule = " & Cible.Formula
End Sub
'
Lupin |
Merci, j'ai enfin compris comment ca marchait!
|
Re :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim a As Double
Application.EnableEvents = False
' Code ...
' ...
Application.EnableEvents = True
End Sub
'
Lupin |
Re!
|
Re salut,
Sub ActiveEvenements()
Application.EnableEvents = True
End Sub
'
et pour bien cibler la cellule et le travail a effectuer :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Intersection As Range
Set Intersection = Application.Intersect(Target, Range("B15"))
If Intersection Is Nothing Then
MsgBox "Pas dans la plage de B15"
Set Intersection = Application.Intersect(Target, Range("B16"))
If Intersection Is Nothing Then
MsgBox "Pas dans la plage de B16"
Else
' Ici le code pour B16
' ...
End If
Else
' Ici le code pour B15
' ...
End If
End Sub
'
Lupin |