Modifier automatiquement le nom de plusieurs onglets excel

Résolu/Fermé
Tyrese3 Messages postés 15 Date d'inscription vendredi 28 juin 2013 Statut Membre Dernière intervention 21 octobre 2013 - Modifié par Tyrese3 le 28/06/2013 à 11:36
Tyrese3 Messages postés 15 Date d'inscription vendredi 28 juin 2013 Statut Membre Dernière intervention 21 octobre 2013 - 30 juin 2013 à 18:00
Bonjour,

Pouvez-vous m'apporter une solution à mon problème car je n'ai pas trouve de réponse correspond à ma recherche.

Je souhaiterais modifier automatiquement tous les ans le nom de mes 12 onglets (ou de mes 12 feuilles) dans excel en utilisant visual basic. Je suppose qu'il faut créer un bouton dans mon onglet n°13 pour changer mes 12 autres onglets avec le nom que j'aurai choisi.

Par exemple: je souhaiterais que mon onglet n°1 reprenne en cellule A1 de l'onglet n°13 le nom 01-13 que l'onglet n°2 reprenne en cellule A2 le nom 02-13 et ainsi de suite.

Autre difficulté: la cellule A1 de l'onglet n°13 comportera une formule afin de modifier l'année automatiquement. Je m'explique dans la cellule A1 de l'onglet n°13 01-13 deviendra 01-14 lorsque l'année changera. La cellule A2 de l'onglet n°13 02-13 deviendra 02-14 lorsque l'année changera.

Pour cela j'ai décidé de mettre en place dans l'onglet n°13 une liste déroulante (en cellule C1) avec les années et ensuite de mettre en A1 la formule suivante ="01-"&C1 en cellule A2 ="02-"&C1 . Comme cela je ne serais pas obligé de modifier manuellement l'année.

Pouvez-vous m'aider car je suis débutant en VBA. J'espère que j'ai été suffisamment explicite.

Je vous en remercie d'avance.
A voir également:

4 réponses

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
28 juin 2013 à 11:48
Bonjour,

Pour cela, il faudrait en savoir plus :
- dans ton classeur tu n'as que 13 feuilles et pas une de plus?
- Comment s'appelle la feuil13?
- La feuil13 ne changera pas de nom?

Sache aussi qu'il est possible de faire cela automatiquement en fonction de l'année en cours, pas besoin de mettre des formules en feuil13...
0
Tyrese3 Messages postés 15 Date d'inscription vendredi 28 juin 2013 Statut Membre Dernière intervention 21 octobre 2013
28 juin 2013 à 14:51
Bonjour,

Je te remercie pour ton aide. Voici la réponse à ta demande:

Au total j'aurai 15 feuilles.

- Feuille n°1 Nommée Maj_Onglets (C'est là que va se trouver mon bouton VBA, donc le nom de cette feuille restera inchangé)
- Feuille n°2 Nommée CADRAGE TVA (Le nom de cette feuille restera inchangé)
- Feuilles n°3 à 14 nommées: 01-13; 02-13; 03-13; 04-13; 05-13; 06-13; 07-13; 08-13; 09-13; 10-13; 11-13; 12-13. (ce sont ces feuilles qui devront changer de noms automatiquement)
- Feuilles n°15 Nommée Noms_SocT&Bques (Le nom de cette feuille restera inchangé)

Effectivement, si l'année peut être changée automatiquement en fonction de l'année en cours je suis preneur. Par contre, je souhaiterais avoir si c'est possible uniquement les deux derniers chiffres de l'année en cours. Exemple: 01-13 deviendra 01-14.

Ne faut-il pas que mes feuilles soient plutôt datées de 2012 au lieu de 2013 pour pouvoir faire un test après ta réponse ?

Cordialement,
Tyrese3
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
28 juin 2013 à 14:54
T'inquiètes pour le test.

Par contre, automatiquement, voudra néanmoins dire avec clic de ta part sur un bouton.
C'est possible que cela soit tout auto, sans clic, mais je préfères que d'abord l'utilisateur vérifie s'il a tout fait avant de procéder à un changement (sauvegardes par exemple)...
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
28 juin 2013 à 15:11
Le code :
Option Explicit

Sub Renommer_Feuilles()
Dim Feuille As Worksheet

For Each Feuille In ThisWorkbook.Worksheets
    If IsNumeric(Left(Feuille.Name, 2)) Then Feuille.Name = Left(Feuille.Name, 2) & "-" & Right(Date, 2)
Next Feuille
End Sub

Le classeur exemple :
Format Excel 2007 et+
Format 97-2003
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
28 juin 2013 à 16:30
Ne jamais placer de données confidentielles sur un forum.
Si tu souhaites que je t'explique comment mettre en place cette macro et son bouton, demande le...
0
Tyrese3 Messages postés 15 Date d'inscription vendredi 28 juin 2013 Statut Membre Dernière intervention 21 octobre 2013
28 juin 2013 à 16:56
Je te remercie pour cette information et ta réactivité. Néanmoins, jamais enlevé tous éléments sensibles.

Merci pour ton professionnalisme.

Je veux bien que tu m'expliques comment mettre en place cette macro et son bouton.
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
29 juin 2013 à 09:04
1- ouvre ton classeur
2- dessines un bouton dans la feuille concernée !!! utilise un contrôle activeX pas un bouton de formulaire (ruban développeur / insérer /contrôles activex/bouton de commande)
3- double clic sur le bouton => une fenêtre vbe s'ouvre avec ces lignes:
Private Sub CommandButton1_Click()

End Sub

4- entre ces deux lignes saisir : Renommer_Feuilles
tu obtiens donc :
Private Sub CommandButton1_Click()
Renommer_Feuilles
End Sub

5- toujours sous vbe : Insertion/Module
6- dans le module ainsi créé, copie-colle le code :
Option Explicit

Sub Renommer_Feuilles()
Dim Feuille As Worksheet

For Each Feuille In ThisWorkbook.Worksheets
    If IsNumeric(Left(Feuille.Name, 2)) Then Feuille.Name = Left(Feuille.Name, 2) & "-" & Right(Date, 2)
Next Feuille
End Sub

7- ferme la fenêtre vbe
8- enregistre sous un autre nom ton classeur en choisissant le type Classeur excel (prenant en charge les macros)
9- sortir du mode création (ruban développeur/Mode création)
10- teste en cliquant sur le bouton
0
Tyrese3 Messages postés 15 Date d'inscription vendredi 28 juin 2013 Statut Membre Dernière intervention 21 octobre 2013
Modifié par Tyrese3 le 30/06/2013 à 18:00
Merci pour ton aide.

C'est nickel. C'est comme je voulais.
0