et bien en gros j'ai une macro "filtre avancer" et j'aimerais que s'il celle-ci n'a pas de résulta la deuxième macro se lance (incrémentation de la température) je vous met le code de mes deux macros :
Macro du filtre :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cel As Range
If Target.Count > 1 Then Exit Sub
If Not Application.Intersect(Target, Range("A4:O4")) Is Nothing Then
Application.ScreenUpdating = False
Application.EnableEvents = False
For Each Cel In Range("A4:O4")
If Cel <> "" Then
If Not IsNumeric(Cel) Then
Cel.Offset(-1) = "*" & Cel.Value & "*"
Else
Cel.Offset(-1) = Cel.Value
End If
Else
Cel.Offset(-1).ClearContents
End If
Next Cel
Application.EnableEvents = True
Range("A6:P1000").AdvancedFilter Action:=xlFilterInPlace, _
CriteriaRange:=Range("A2:O3"), Unique:=False
End If
End Sub
Macro de l'incrémentation:
Private Sub CommandButton1_Click() 'Fermeture de la boite de dialogue apres un click sur "Valider"
Incrémentation_de_Tmin = IIf(OptionButton1.Value = True, "OK", "NON")
Incrémentation_de_Tmax = IIf(OptionButton2.Value = True, "OK", "NON")
Incrémentation_des_deux = IIf(OptionButton3.Value = True, "OK", "NON")
If MsgBox("confirmez-vous incrementation?", vbYesNo, "confirmation") = vbYes Then Unload UserForm2
Unload Me
End Sub
Private Sub CommandButton2_Click() ' Si l'on clique sur "Quittez" les valeurs des variables sont réinitialisées
Unload UserForm2
End Sub
Private Sub OptionButton1_Click()
Range("F4").Value = Range("F4").Value - Range("H5").Value
End Sub
Private Sub OptionButton2_Click()
Range("I4").Value = Range("I4").Value + Range("H5").Value
End Sub
Private Sub OptionButton3_Click()
Range("F4").Value = Range("F4").Value - Range("H5").Value
Range("I4").Value = Range("I4").Value + Range("H5").Value
End Sub
Private Sub TextBox1_Change()
Range("H5") = TextBox1
End Sub
Private Sub UserForm_Initialize()
OptionButton1.Value = IIf(Incrémentation_de_Tmin = "OK", True, False)
OptionButton2.Value = IIf(Incrémentation_de_Tmax = "OK", True, False)
OptionButton3.Value = IIf(Incrémentation_des_deux = "OK", True, False)
End Sub
Merci pour vos réponses