deux macros à la suite l'une de l'autre ?

Le
URIANE
Re-bonjour,
Est-ce possible d'enchaîner deux macros lorsque la première à remplie sa
condition de mettre l'autre à la suite, car j'essaie en vain
cf ci-dessous :
Ma première macro
Sub importation()
If MsgBox("Attention cette commande va recopier vos données mensuelles" &
vbLf & "Etes-vous certain de vouloir continuer", vbQuestion + vbYesNo,
"Confirmer") = vbYes Then
Dim i As Long, ligneRecap As Long
nf = [A1]
Application.ScreenUpdating = False
Sheets(nf).Range("A7:L65536").ClearContents
ligneRecap = 6
For i = 6 To [a65536].End(xlUp).Row
If Cells(i, 15) <> "NON" And Cells(i, 3) <> "" Then
ligneRecap = ligneRecap + 1
Cells(i, 1).Resize(1, 12).Copy
Sheets(nf).Cells(ligneRecap, 1).PasteSpecial Paste:=xlValues
End If
Next i
Else
MsgBox "Opératon annulée"
Exit Sub 'répondu non : on arrête
End If

End Sub
donc après copie dans ma feuille de destination je souhaiterais que la
seconde macro fasse la mise à blanc des mes colonnes dans ma feuille de
saisie mais je ne sais pas ou la placer dans la macro ci-dessus ?

ma deuxième macro

Sub MAB()
Range("C6:C10000,E6:E10000,l6:l10000").ClearContents
Range("a1").ClearContents
Range("a1").Select
MsgBox ("Veuillez saisir le mois en cours SVP merci ")
End Sub
Par avance merci
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Daniel.C
Le #4747461
Bonjour.
Si j'ai bien compris, tu peux mettre ta macro soit avant "Else", soit avant
"End Sub"
Si elle s'appelle "Macro2" :

Sub importation()
If MsgBox("Attention cette commande va recopier vos données mensuelles" &
vbLf & "Etes-vous certain de vouloir continuer", vbQuestion + vbYesNo,
"Confirmer") = vbYes Then
Dim i As Long, ligneRecap As Long
nf = [A1]
Application.ScreenUpdating = False
Sheets(nf).Range("A7:L65536").ClearContents
ligneRecap = 6
For i = 6 To [a65536].End(xlUp).Row
If Cells(i, 15) <> "NON" And Cells(i, 3) <> "" Then
ligneRecap = ligneRecap + 1
Cells(i, 1).Resize(1, 12).Copy
Sheets(nf).Cells(ligneRecap, 1).PasteSpecial Paste:=xlValues
End If
Next i
'*** ici
Else
MsgBox "Opératon annulée"
Exit Sub 'répondu non : on arrête
End If
Macro2 '*** ou là

End Sub

Cordialement.
Daniel

"URIANE"
Re-bonjour,
Est-ce possible d'enchaîner deux macros lorsque la première à remplie sa
condition de mettre l'autre à la suite, car j'essaie en vain ......
cf ci-dessous :
Ma première macro
Sub importation()
If MsgBox("Attention cette commande va recopier vos données mensuelles" &
vbLf & "Etes-vous certain de vouloir continuer", vbQuestion + vbYesNo,
"Confirmer") = vbYes Then
Dim i As Long, ligneRecap As Long
nf = [A1]
Application.ScreenUpdating = False
Sheets(nf).Range("A7:L65536").ClearContents
ligneRecap = 6
For i = 6 To [a65536].End(xlUp).Row
If Cells(i, 15) <> "NON" And Cells(i, 3) <> "" Then
ligneRecap = ligneRecap + 1
Cells(i, 1).Resize(1, 12).Copy
Sheets(nf).Cells(ligneRecap, 1).PasteSpecial Paste:=xlValues
End If
Next i
Else
MsgBox "Opératon annulée"
Exit Sub 'répondu non : on arrête
End If

End Sub
donc après copie dans ma feuille de destination je souhaiterais que la
seconde macro fasse la mise à blanc des mes colonnes dans ma feuille de
saisie mais je ne sais pas ou la placer dans la macro ci-dessus ?

ma deuxième macro

Sub MAB()
Range("C6:C10000,E6:E10000,l6:l10000").ClearContents
Range("a1").ClearContents
Range("a1").Select
MsgBox ("Veuillez saisir le mois en cours SVP merci ")
End Sub
Par avance merci



papou
Le #4747431
Bonjour
Tu positionnes le nom de ta macro (MAB) entre Next i et Else, soit :

Next i
MAB
Else
MsgBox "Opératon annulée"
Exit Sub 'répondu non : on arrête
End If

End Sub

Cordialement
Pascal


"URIANE"
Re-bonjour,
Est-ce possible d'enchaîner deux macros lorsque la première à remplie sa
condition de mettre l'autre à la suite, car j'essaie en vain ......
cf ci-dessous :
Ma première macro
Sub importation()
If MsgBox("Attention cette commande va recopier vos données mensuelles" &
vbLf & "Etes-vous certain de vouloir continuer", vbQuestion + vbYesNo,
"Confirmer") = vbYes Then
Dim i As Long, ligneRecap As Long
nf = [A1]
Application.ScreenUpdating = False
Sheets(nf).Range("A7:L65536").ClearContents
ligneRecap = 6
For i = 6 To [a65536].End(xlUp).Row
If Cells(i, 15) <> "NON" And Cells(i, 3) <> "" Then
ligneRecap = ligneRecap + 1
Cells(i, 1).Resize(1, 12).Copy
Sheets(nf).Cells(ligneRecap, 1).PasteSpecial Paste:=xlValues
End If
Next i
Else
MsgBox "Opératon annulée"
Exit Sub 'répondu non : on arrête
End If

End Sub
donc après copie dans ma feuille de destination je souhaiterais que la
seconde macro fasse la mise à blanc des mes colonnes dans ma feuille de
saisie mais je ne sais pas ou la placer dans la macro ci-dessus ?

ma deuxième macro

Sub MAB()
Range("C6:C10000,E6:E10000,l6:l10000").ClearContents
Range("a1").ClearContents
Range("a1").Select
MsgBox ("Veuillez saisir le mois en cours SVP merci ")
End Sub
Par avance merci



Michel_D
Le #4747421
Bonjour,

Voici ou il faut mettre à priori l'appel de ta 2 ème procédure :

If MsgBox("Attention cette commande va recopier vos données mensuelles" &
vbLf & "Etes-vous certain de vouloir continuer", vbQuestion + vbYesNo,
"Confirmer") = vbYes Then
...
Next i
' Tu appelle ta procédure ici (ou tu recopie le code ici)
Else
...
End If


"URIANE"
Re-bonjour,
Est-ce possible d'enchaîner deux macros lorsque la première à remplie sa
condition de mettre l'autre à la suite, car j'essaie en vain ......
cf ci-dessous :
Ma première macro
Sub importation()
If MsgBox("Attention cette commande va recopier vos données mensuelles" &
vbLf & "Etes-vous certain de vouloir continuer", vbQuestion + vbYesNo,
"Confirmer") = vbYes Then
Dim i As Long, ligneRecap As Long
nf = [A1]
Application.ScreenUpdating = False
Sheets(nf).Range("A7:L65536").ClearContents
ligneRecap = 6
For i = 6 To [a65536].End(xlUp).Row
If Cells(i, 15) <> "NON" And Cells(i, 3) <> "" Then
ligneRecap = ligneRecap + 1
Cells(i, 1).Resize(1, 12).Copy
Sheets(nf).Cells(ligneRecap, 1).PasteSpecial Paste:=xlValues
End If
Next i
Else
MsgBox "Opératon annulée"
Exit Sub 'répondu non : on arrête
End If

End Sub
donc après copie dans ma feuille de destination je souhaiterais que la
seconde macro fasse la mise à blanc des mes colonnes dans ma feuille de
saisie mais je ne sais pas ou la placer dans la macro ci-dessus ?

ma deuxième macro

Sub MAB()
Range("C6:C10000,E6:E10000,l6:l10000").ClearContents
Range("a1").ClearContents
Range("a1").Select
MsgBox ("Veuillez saisir le mois en cours SVP merci ")
End Sub
Par avance merci




Publicité
Poster une réponse
Anonyme