Copier onglets + renommer sous VBA avec date?
Résolu
VincentLV
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
Mike-31 Messages postés 18405 Date d'inscription Statut Contributeur Dernière intervention -
Mike-31 Messages postés 18405 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
En langage VBA (je suis débutant), je cherche à copier un onglet nommé 090907 (référence au 07/09/09) trois fois et à renommer ces trois onglets 090908, 090909 et 090910 (soit les trois jours suivants).
J'ai essayé le code suivant:
Sub Macro9()
Dim i, j
j = Range("B357").Value 'la case B357 contient la date 090907
i = 1 'i représente le numéro de l'onglet
For i = 1 To 3 'je désire faire une boucle sur l'onglet créé où à chaque fois,
Sheets(1).Copy After:=Sheets(i) 'je copie le premier onglet et je renomme l'onglet copié
ActiveSheet.Name = j + 1 'par la date suivante (c'est-à-dire 090908 pour le premier copié)
j = j + 1 'puis j'incrémente j pour passer à la date suivante lors de la prochaine copie
Next i
End Sub
Le problème, c'est que les onglets copiés s'appellent "2", "3" et "4"
Que dois-je faire?
Merci d'avance
En langage VBA (je suis débutant), je cherche à copier un onglet nommé 090907 (référence au 07/09/09) trois fois et à renommer ces trois onglets 090908, 090909 et 090910 (soit les trois jours suivants).
J'ai essayé le code suivant:
Sub Macro9()
Dim i, j
j = Range("B357").Value 'la case B357 contient la date 090907
i = 1 'i représente le numéro de l'onglet
For i = 1 To 3 'je désire faire une boucle sur l'onglet créé où à chaque fois,
Sheets(1).Copy After:=Sheets(i) 'je copie le premier onglet et je renomme l'onglet copié
ActiveSheet.Name = j + 1 'par la date suivante (c'est-à-dire 090908 pour le premier copié)
j = j + 1 'puis j'incrémente j pour passer à la date suivante lors de la prochaine copie
Next i
End Sub
Le problème, c'est que les onglets copiés s'appellent "2", "3" et "4"
Que dois-je faire?
Merci d'avance
A voir également:
- Copier onglets + renommer sous VBA avec date?
- Renommer des fichiers en masse - Guide
- Comment copier une vidéo youtube - Guide
- Renommer iphone - Guide
- Super copier - Télécharger - Gestion de fichiers
- Comment renommer quelqu'un sur instagram - Guide
5 réponses
Salut,
Si en B357 tu saisis un numéro comme 090907 en activant ta macro tu as bien trois feuilles 090908, 090909 et 090910
ou change l'adresse de ta cellule
j = Range("B357").Value 'la case B357 contient la date 090907
Par contre si tu souhaites créer une suite d'onglet en fin de code inséres [B3] = j
ton code pourrait être écrit différemment
Next i
[B3] = j
End Sub
A+
Mike-31
Un problème sans solution est un problème mal posé (Einstein)
Si en B357 tu saisis un numéro comme 090907 en activant ta macro tu as bien trois feuilles 090908, 090909 et 090910
ou change l'adresse de ta cellule
j = Range("B357").Value 'la case B357 contient la date 090907
Par contre si tu souhaites créer une suite d'onglet en fin de code inséres [B3] = j
ton code pourrait être écrit différemment
Next i
[B3] = j
End Sub
A+
Mike-31
Un problème sans solution est un problème mal posé (Einstein)
Merci de ta réponse mais j'ai peur de ne pas te suivre dans ton raisonnement...
Car avec mon code, je copie bien les onglets, mais ils ne s'appellent pas comme je veux: 2, 3 et 4 au lieu de 090908, 090909 et 090910.
Car avec mon code, je copie bien les onglets, mais ils ne s'appellent pas comme je veux: 2, 3 et 4 au lieu de 090908, 090909 et 090910.
Re,
Dans ton code
Sub Macro9()
Dim i, j
j = Range("B357").Value 'la case B357 contient la date 090907
En B357 si tu saisis 090907, lorsque tu actives ta macro tu as bien trois onglets créés et ils se nomment bien
090908, 090909 et 090910
A+
Mike-31
Un problème sans solution est un problème mal posé (Einstein)
Dans ton code
Sub Macro9()
Dim i, j
j = Range("B357").Value 'la case B357 contient la date 090907
En B357 si tu saisis 090907, lorsque tu actives ta macro tu as bien trois onglets créés et ils se nomment bien
090908, 090909 et 090910
A+
Mike-31
Un problème sans solution est un problème mal posé (Einstein)
Autant pour moi, j'avais modifié un paramètre entre temps.
Maintenant, ça fonctionne.
merci de ta réponse.
A+
Maintenant, ça fonctionne.
merci de ta réponse.
A+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Re,
Dans ton code, si tu actives ta macro plusieurs fois et que tes feuilles on été crées le code ce met en erreur "1004", il est possible de le modifier afin d'éviter cette erreur jusqu'a ce que la cellule B357 ai une valeur différente.
Il est également possible d'alléger ton code ou de créer un compteur qui change la valeur de ta cellule B357 en fonction du dernier nom donné à ton onglet
A+
Mike-31
Un problème sans solution est un problème mal posé (Einstein)
Dans ton code, si tu actives ta macro plusieurs fois et que tes feuilles on été crées le code ce met en erreur "1004", il est possible de le modifier afin d'éviter cette erreur jusqu'a ce que la cellule B357 ai une valeur différente.
Il est également possible d'alléger ton code ou de créer un compteur qui change la valeur de ta cellule B357 en fonction du dernier nom donné à ton onglet
A+
Mike-31
Un problème sans solution est un problème mal posé (Einstein)