Macro en fonction d'une autre

Fermé
Ayuritenshi Messages postés 281 Date d'inscription vendredi 15 mai 2015 Statut Membre Dernière intervention 5 mai 2016 - 3 juin 2015 à 08:50
eriiic Messages postés 24595 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 2 septembre 2024 - 3 juin 2015 à 10:59
Bonjour
Tout d'abord merci de vous attardez sur mon sujet.
Alors mon problème est le suivant :
J'aimerais faire une macro qui se lance si une autre n'a pas de résultats
Quelqu'un pourrait-il ou elle m'aider ou simplement me donner quelques petits conseils sympa ?
Merci bonne journée
A voir également:

4 réponses

Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
3 juin 2015 à 09:09
Bonjour,

Tu peux t'inspirer de cet exemple
Sub Macro1()
Dim Reponse As String
Reponse = MsgBox("Ceci est la macro1 ..." & Chr(10) & _
"Le résultat est-il correct ?", vbYesNo)
If Reponse = vbYes Then
Macro2
End If
MsgBox "Traitement terminé"
End Sub
Sub Macro2()
MsgBox "Ceci est la macro2"
End Sub


A+
1
Ayuritenshi Messages postés 281 Date d'inscription vendredi 15 mai 2015 Statut Membre Dernière intervention 5 mai 2016 53
3 juin 2015 à 09:19
Merci pour ta réponse mais je ne voit pas comment l'intégré a mes macros ... dont une que tu m'as faite .
j'aimerais que si celle-ci ne donne pas de résultats :
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

alors lancer celle la :
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




peux tu encore m'aider ?
0
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
3 juin 2015 à 10:15
Mouais ! le moins que l'on puisse dire, c'est que la question n'est pas bien posée.

Si je comprends bien, tu souhaites que si le filtrage ne retourne aucune ligne, alors on lance une procédure.
Tu peux intégrer le test suivant en fin de procédure :
If Range("A" & Rows.Count).End(xlUp).Row = 6 Then ...
(si la dernière ligne renseignée est la ligne d'en-têtes, alors ...).

Par contre, tu ne dis pas quelle est la procédure que tu souhaites lancer.
Dans ton message, tu cites 7 procédures :
CommandButton1_Click,
CommandButton2_Click,
OptionButton1_Click, ...
etc.

Il s'agit peut-être simplement d'ouvrir un UserForm ???

A+
0
Ayuritenshi Messages postés 281 Date d'inscription vendredi 15 mai 2015 Statut Membre Dernière intervention 5 mai 2016 53
3 juin 2015 à 10:16
oui de le lancé a vrai dire
0
Ayuritenshi Messages postés 281 Date d'inscription vendredi 15 mai 2015 Statut Membre Dernière intervention 5 mai 2016 53
Modifié par Ayuritenshi le 3/06/2015 à 10:24
J'ai fais ça du coup mais ça ne marche pas :/
Sub boucle_while()

Dim i As Integer
Dim max_boucles As Integer
If Range ("A" & Rows.Count).End(xlUp).Row = 6 Then
Userform2.show
If OptionButton1_Click=1 then
range (« F4 ») =range (« F4 ») + 5
End if
If OptionButton2_Click=1 then
range (« I4 ») =range (« I4 ») + 5
End if
If OptionButton3_Click=1 then
cells (« I4 & F4 ») = cells (« I4 & F4 ») + 5
End if
i= range ("H5")
For i= 1 to 10 'TANT QUE la variable i est <= 10, la boucle est répétée
If i > max_boucles Then
Exit For 'Si condition vrai, on quitte la boucle For
End If
If i = 10 and (Worksheet_Change)= no-result then unload userform 2
End if
Msgbox(« il n'y a pas de résultats pour cette recherche »)

Wend

End Sub
0
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
3 juin 2015 à 10:40
Désolé, je ne comprends rien à ton affaire !
Sans un exemple concret et des explications claires, je ne peux rien pour toi.

A+
0
Ayuritenshi Messages postés 281 Date d'inscription vendredi 15 mai 2015 Statut Membre Dernière intervention 5 mai 2016 53
3 juin 2015 à 10:44
ok merci quand même.
0
eriiic Messages postés 24595 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 2 septembre 2024 7 235
3 juin 2015 à 10:59
Bonjour,

C'est très mal vu de poster sur plusieurs forums sans le signaler. Tu devrais éviter, ou attendre 24h sans réponse pour le faire.

eric
0