Dupliquer feuille avec changement de date

Bonjour à tous.
J'ai fait cette petite routine pour recopier X fois ma feuille "Sem 1". (ça ne me plait pas vraiment puisque les feuilles suivantes
se nomment "Sem 1 (2) " "Sem 1 (3) " au lieu de "Sem 2" "Sem 3"etc... mais bon c'est un moindre mal.

Par contre, je voudrais qu'à la recopie de cette feuille, la cell D4, qui contient la date 25-08-2025, passe à la semaine suivante à (01-09-2025) etc... .
Voici l'état actuel de mes recherches (je ne suis pas du tout pro de vba, mais je tâtonne ... :

Sub dupliquerlafeuilleactive()
Dim i As Integer
For i = 1 To InputBox("Combien de feuilles comme la feuille active voulez vous ?")
ActiveSheet.Copy After:=ActiveSheet
Next
End Sub

Si quelqu'un a une idée ... Merci pour votre aide

screenhunter 363

Bonjour

Code à tester

Sub dupliquerlafeuilleactive()
    Dim i As Integer
    Dim nouvelleFeuille As Worksheet
    Dim nomFeuille As String

    For i = 1 To InputBox("Combien de feuilles comme la feuille active voulez-vous ?")
        ActiveSheet.Copy After:=ActiveSheet
        Set nouvelleFeuille = ActiveSheet ' La nouvelle feuille est maintenant la feuille active
        nomFeuille = "Sem" & i ' Création du nom de la feuille
        nouvelleFeuille.Name = nomFeuille ' Renommer la feuille
    Next i
End Sub

Merci, ça répond bien à la partie "nom des feuilles" mais pas au principal : l'incrémentation des dates dans les feuilles crées.

Les dates sont restées les mêmes... et c'est ça mon souci majeur

Mais je vous remercie déjà pour le temps consacré à me répondre

Salut,

vous pourriez commencer par dupliquer une seule fois la feuille, vous auriez donc sem 1 et sem 2 (d'ailleurs je pense que vous pouvez mettre i = 2 au lieu de 1 dans le code ci-dessus), et mettre comme formule en D4 de la sem 2 ;

=INDIRECT("'Sem "&STXT(CELLULE("nomfichier";A1);CHERCHE("]Sem";CELLULE("nomfichier";A1))+5;100)-1&"'!D4")+7

Puis vous dupliquez à partir de cette sem 2.

Si vous préférez commencer à partir de la sem 1, alors vous pourriez créer une feuille nommée "Sem 0" contenant juste la date de début moins une semaine en D4, comme ça vous mettez déjà la formule en D4 de la feuille sem 1.

Bonjour,

Dans votre première feuille seule la date en D4 doit être entrée en manuel. Les autres sont des additions.

En E4=D4+1 en F4=E4+1

Ensuite dans votre macro on change seulement D4.

Range("D4").Value = CDate(Range("D4") + 7)

Bonjour à tous. Une petite macro :

Sub Macro1()
    Dim i As Integer, nbFeuil As Integer

    nbFeuil = InputBox("Combien de feuilles comme la feuille active voulez vous ?")
    For i = 1 To nbFeuil
        ActiveSheet.Copy After:=ActiveSheet
        ActiveSheet.Name = "Sem " & i
    Next i
End Sub

Merci à tous pour la "multiplication des feuilles " ça marche très bien sauf que mon problème majeur, comme je l'ai dit au début, c'est que je voudrais que les cellules D5-f5-h5-j5-L5 comprennent automatiquement les dates correspondant à la semaine créée. Et ça je n'y arrive toujours pas.
Le résultat actuel me donne toujours les dates de la feuille initiale...

Ce n'est peut-être pas possible? (sauf qu'avec Excel on peut tout faire, lol !)

Avez-vous testé la proposition de Xmenpl et la mienne pour la date ?

Sinon, en se basant sur les propositions d'Optimix et Xmenpl, ceci marche (sans InputBox) ;

Sub DupliSem()
    Dim i As Integer
    For i = 2 To 5
        ActiveSheet.Copy After:=ActiveSheet
        ActiveSheet.Name = "Sem " & i
        Range("D4").Value = CDate(Range("D4") + 7)
    Next i
End Sub

Avec InputBox, ceci devrait aller (pas testé) ;

Sub DupliSem()
    Dim i As Integer, nbFeuil As Integer

    nbFeuil = InputBox("Combien de feuilles comme la feuille active voulez-vous ?")
    For i = 2 To nbFeuil
        ActiveSheet.Copy After:=ActiveSheet
        ActiveSheet.Name = "Sem " & i
        Range("D4").Value = CDate(Range("D4") + 7)
    Next i
End Sub

Oui j'ai vu et si j'ai bien compris, on doit mettre la date chaque semaine sur d4.

Votre solution me plaisait bien mais elle demande un débogage sur la Range("D4").Value...

Comment débloquer ?

screenhunter 363 01

Le même code fonctionne chez moi, difficile de savoir pourquoi il y a ce souci chez vous. Votre date en D4 de la sem 1 est bien un chiffre formaté en date et pas du texte ?

si j'ai bien compris, on doit mettre la date chaque semaine sur d4.

Juste sur la sem 1, le code rajoute 7 jours en D4 chaque semaine.

Variante pour commencer à partir de n'importe quelle semaine (sans InputBox), du moment que c'est la dernière de la feuille ;

Sub DupliSem()
    Dim i As Integer, Deb As Integer, Fin As Integer
    Deb = Mid(ActiveSheet.Name, 5) + 1
    Fin = Mid(ActiveSheet.Name, 5) + 8 ' Rajoute 8 semaines
    For i = Deb To Fin
        ActiveSheet.Copy After:=ActiveSheet
        ActiveSheet.Name = "Sem " & i
        Range("D4").Value = CDate(Range("D4") + 7)
    Next i
End Sub

Avec InputBox ;

Sub DupliSem()
    Dim i As Integer, Deb As Integer, NBF As Integer, Fin As Integer
    Deb = Mid(ActiveSheet.Name, 5) + 1
    NBF = InputBox("Combien de feuilles comme la feuille active voulez-vous ?")
    Fin = Mid(ActiveSheet.Name, 5) + NBF
    For i = Deb To Fin
        ActiveSheet.Copy After:=ActiveSheet
        ActiveSheet.Name = "Sem " & i
        Range("D4").Value = CDate(Range("D4") + 7)
    Next i
End Sub

C'est frustrant de sentir qu'on est proche de la solution et je vous remercie encore pour le temps consacré.

J'ai vérifié, la cellule contenant la date du premier lundi de la première semaine (D5) est bien en format date (si c'était bien la question)

Mais la macro demande toujours un débogage sur la même ligne :

For i = Deb To Fin
ActiveSheet.Copy After:=ActiveSheet
ActiveSheet.Name = "Sem " & i
Range("D4").Value = CDate(Range("D4") + 7)
Next i

Génial, en vous envoyant le message précédent, que j'ai relu 3 fois pour essayer de comprendre, j'ai enfin remarqué que l'adresse donnée n'était pas la bonne !!! C'est en D5 que se trouve la date et pas en D4. !

Voilà qui m'a permis de voir le résultat attendu !

Merci merci merci

Rechercher des sujets similaires à "dupliquer feuille changement date"