Copier onglets + renommer sous VBA avec date?

Résolu/Fermé
VincentLV Messages postés 3 Date d'inscription jeudi 3 septembre 2009 Statut Membre Dernière intervention 3 septembre 2009 - 3 sept. 2009 à 13:59
Mike-31 Messages postés 18336 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 septembre 2024 - 3 sept. 2009 à 16:27
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
A voir également:

5 réponses

Mike-31 Messages postés 18336 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 septembre 2024 5 095
3 sept. 2009 à 14:21
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)
0
VincentLV Messages postés 3 Date d'inscription jeudi 3 septembre 2009 Statut Membre Dernière intervention 3 septembre 2009
3 sept. 2009 à 15:11
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.
0
Mike-31 Messages postés 18336 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 septembre 2024 5 095
3 sept. 2009 à 15:46
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)
0
VincentLV Messages postés 3 Date d'inscription jeudi 3 septembre 2009 Statut Membre Dernière intervention 3 septembre 2009
3 sept. 2009 à 15:58
Autant pour moi, j'avais modifié un paramètre entre temps.
Maintenant, ça fonctionne.
merci de ta réponse.
A+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mike-31 Messages postés 18336 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 septembre 2024 5 095
3 sept. 2009 à 16:27
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)
0