Macro pour exécuter une macro dans un classeur en boucle

Bonjour à tous !

Mes connaissances assez primaires en terme de macro excel me bloque en ce moment. J'ai un tableau que j'avais fait à l'époque qui me permet de faire la compta de plusieurs personnes d'une manière annuelle.

J'avais ajouter une macro pour permettre d’enregistrer sous ce tableau individualisé pour le mettre dans le dossier de l'année suivante...

Ma question est-ce que je peux faire une macro pour exécuter la macro Sub Sauvegarde() (ci-dessous) pour enregistrer tous mes dossiers vers un autre dossier spécifique ?

Sub Sauvegarde()
'
' Sauvegarde Macro
'

'
    If MsgBox("Assurez-vous d'avoir bien enregistré l'année comptabilisé ! Etes-vous certain de vouloir enregistrer la comptabilité l'année suivante?", vbYesNo, "Demande de confirmation") = vbYes Then
    Range("AR6:AR19").Select
    Selection.Copy
    ActiveWindow.SmallScroll Down:=-18
    Range("AQ6").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    Range("A8:A" & Range("A65536").End(xlUp).Row).ClearContents
    Range("B8:B" & Range("B65536").End(xlUp).Row).ClearContents
    Range("D8:D" & Range("D65536").End(xlUp).Row).ClearContents
    Range("F8:S" & Range("E65536").End(xlUp).Row).ClearContents
    Range("A7").Select
    ActiveCell.FormulaR1C1 = "=DATE(YEAR(R[-1]C)+1,MONTH(R[-1]C),DAY(R[-1]C))"
    Range("A7").Select
    Selection.Copy
    Range("A6").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("A7").Select
    Application.CutCopyMode = False
    Selection.ClearContents
    Application.Dialogs(xlDialogSaveAs).Show
    End If
    End Sub
15comptolivier.zip (129.80 Ko)

Bonjour,

tu trouveras un exemple ci-joint

Dim frequence
Sub Actualiser()
' Définit l'intervalle avec l'heure actuelle
    frequence = TimeSerial(Hour(Time), Minute(Time) + 1, Second(Time))
    ' Appel récursif
    Application.OnTime frequence, "Actualiser"
    Call Mamacro
End Sub
Sub auto_open()
    Actualiser
End Sub
Sub auto_close()
    On Error Resume Next
    Application.OnTime frequence, Procedure:="Actualiser", Schedule:=False
End Sub
Sub Mamacro()
    MsgBox "Bonjour !"
End Sub

Bonjour,

tu trouveras un exemple ci-joint

Dim frequence
Sub Actualiser()
' Définit l'intervalle avec l'heure actuelle
    frequence = TimeSerial(Hour(Time), Minute(Time) + 1, Second(Time))
    ' Appel récursif
    Application.OnTime frequence, "Actualiser"
    Call Mamacro
End Sub
Sub auto_open()
    Actualiser
End Sub
Sub auto_close()
    On Error Resume Next
    Application.OnTime frequence, Procedure:="Actualiser", Schedule:=False
End Sub
Sub Mamacro()
    MsgBox "Bonjour !"
End Sub

Merci beaucoup pour cette macro qui donne pas mal d'indication sur la méthode d'appel d'une macro vers une autre. Cependant j'ai vraiment aucune idée de comment mettre en place ce style de macro sur mes fichiers. Mais surtout d'indiquer à la macro qu'il faut prendre tous les dossiers d'un dossier en particulier pour les mettre dans un dossier de destination.

Désolé, je suis hors sujet, j'ai juste répondu au titre que je pensais suffisamment explicite !

Les macros de ton fichier ne sont pas accessibles.

Les macros de ton fichier ne sont pas accessibles.

Oui c'est sur elles ne sont pas accessibles verrouillé par un mot de passe.... mais la macro que je souhaiterais exécuter en boucle pour basculer tous mes dossiers vers un autre dossier est ce code :

 Dim frequence
Sub Actualiser()
' Définit l'intervalle avec l'heure actuelle
    frequence = TimeSerial(Hour(Time), Minute(Time) + 1, Second(Time))
    ' Appel récursif
    Application.OnTime frequence, "Actualiser"
    Call Mamacro
End Sub
Sub auto_open()
    Actualiser
End Sub
Sub auto_close()
    On Error Resume Next
    Application.OnTime frequence, Procedure:="Actualiser", Schedule:=False
End Sub
Sub Mamacro()
    MsgBox "Bonjour !"
End Sub

je pense qu'il y a erreur de code ...

je pense qu'il y a erreur de code ...

Ah oui pardon sorry

Sub Sauvegarde()
'
' Sauvegarde Macro
'

'
    If MsgBox("Assurez-vous d'avoir bien enregistré l'année comptabilisé ! Etes-vous certain de vouloir enregistrer la comptabilité l'année suivante?", vbYesNo, "Demande de confirmation") = vbYes Then
    Range("AR6:AR19").Select
    Selection.Copy
    ActiveWindow.SmallScroll Down:=-18
    Range("AQ6").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    Range("A8:A" & Range("A65536").End(xlUp).Row).ClearContents
    Range("B8:B" & Range("B65536").End(xlUp).Row).ClearContents
    Range("D8:D" & Range("D65536").End(xlUp).Row).ClearContents
    Range("F8:S" & Range("E65536").End(xlUp).Row).ClearContents
    Range("A7").Select
    ActiveCell.FormulaR1C1 = "=DATE(YEAR(R[-1]C)+1,MONTH(R[-1]C),DAY(R[-1]C))"
    Range("A7").Select
    Selection.Copy
    Range("A6").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("A7").Select
    Application.CutCopyMode = False
    Selection.ClearContents
    Application.Dialogs(xlDialogSaveAs).Show
    End If
    End Sub

Ma question est-ce que je peux faire une macro pour exécuter la macro Sub Sauvegarde() (ci-dessous) pour enregistrer tous mes dossiers vers un autre dossier spécifique ?

Désolé, je ne comprends vraiment pas ce que tu souhaites.

Qu'est-ce que tu appelles tous mes dossiers ?

Ma question est-ce que je peux faire une macro pour exécuter la macro Sub Sauvegarde() (ci-dessous) pour enregistrer tous mes dossiers vers un autre dossier spécifique ?

Désolé, je ne comprends vraiment pas ce que tu souhaites.

Qu'est-ce que tu appelles tous mes dossiers ?

Alors en faite je souhaiterai que tous mes classeurs présents dans un dossier bien précis s'enregistre sous un autre dossier après avoir exécuter les critères de la macro Sub Sauvegarde () ci-dessus.

Du coup, je pense qu'il faudrait faire une macro qui sélectionne tous les fichiers que je souhaite enregistrer dans un autre répertoire et juste changer le dernier code de la macro Sub Sauvegarde () :

Application.Dialogs(xlDialogSaveAs).Show 

par le repertoire où les dossiers iront les dossiers.

Rechercher des sujets similaires à "macro executer classeur boucle"