Excel: changer nom des onglets avec une liste

Excel: changer nom des onglets avec une liste - VB/VBA/VBS - Programmation

Marsh Posté le 07-07-2017 à 16:35:23    

Dans mon premier onglet appelé "comptes", j'ai une liste de tous mes comptes, environ 150. Ils sont identifiables par leur numéro. Ex: 102
A partir du 4ème onglet, chaque onglet représente un et un seul compte. (j'ai donc environ 150 onglets).
 
Je souhaite que les noms de tous ces onglets se changent en fonction de la liste présente dans le premier onglet.
 
PS: je suis vraiment nul en macro donc soyez précis svp
 
Merci d'avance

Reply

Marsh Posté le 07-07-2017 à 16:35:23   

Reply

Marsh Posté le 07-07-2017 à 21:41:16    

Comment sont nommé tes feuilles?
 
Parce que le pb dans excel c'est que les adresses des feuilles sont pas forcément dans l'ordre visualisé.
 
Si c'est du type Feuil4, Feuil5... il y a moyen de faire qqc, si non il va falloir faire une genre de table de correspondance
 
Compte    Feuille
1               a
2               e
3               v
...             ...
 
Comme ça après tu fait une boucle while ou for qui renomme chaque feuille selon sa correspondance dans la table.
 
(c'est une idée, je dis pas que c'est la meilleur, mais ça peu faire le job)

Reply

Marsh Posté le 10-07-2017 à 08:32:41    

dans le premier onglet j'ai la table
dans les onglets 3 et 4 j'ai deux tableaux s'appelant charges avec des formules allant chercher des données dans les onglets suivants appelés par le code client. Ex: 102, 235, 18649 etc
 
et je voudrai aussi savoir si une fois la matrice faite je pourrais rajouter une ligne et le nombre d'onglet augmentera
 
Merci d'avance

Reply

Marsh Posté le 26-07-2017 à 22:50:09    

luipo a écrit :

dans le premier onglet j'ai la table
dans les onglets 3 et 4 j'ai deux tableaux s'appelant charges avec des formules allant chercher des données dans les onglets suivants appelés par le code client. Ex: 102, 235, 18649 etc
 
et je voudrai aussi savoir si une fois la matrice faite je pourrais rajouter une ligne et le nombre d'onglet augmentera
 
Merci d'avance


 
J'ai fait le code pour renommer selon une table de correspondance les feuilles:

Code :
  1. Sub renommefeuille()
  2. 'Permet de renommer les feuille d'un classeur en fonction d'une table de correspondance
  3. 'A besoin d'une feuille nommée "TAB Correspondance"
  4. 'En colonne A les anciens noms, en B les nouveaux noms
  5. 'La ligne 1 n'est pas traiter pour permettre d'y inserer des titres de colonne EX:ancien / Nouveau
  6. 'Il ne doit pas y avoir d'espace vide entre chaque ligne
  7. 'Déclaration des variables
  8. Dim FeuilleOld As String
  9. Dim FeuilleNew As String
  10. Dim NombreVal As Integer
  11. Dim I As Integer
  12. 'Initialisation des variables
  13. NombreVal = Application.WorksheetFunction.CountA(Worksheets("Tab Correspondance" ).Range("$A:$A" ))
  14. 'Ignore les erreurs pour continuer le renommage
  15. On Error Resume Next
  16. 'boucle sur chaque ligne et renomme la feuille correspondante
  17. For I = 2 To NombreVal
  18.     FeuilleOld = Sheets("Tab Correspondance" ).Cells(I, 1)
  19.     FeuilleNew = Sheets("Tab Correspondance" ).Cells(I, 2)
  20.     Worksheets(FeuilleOld).Name = FeuilleNew
  21. Next I
  22. MsgBox ("Fin du renommage des " & NombreVal - 1 & " feuilles" )
  23. End Sub


 
Ce code ignorera les noms de feuilles mal saisies, et donc les feuilles attendues à renommer avec.
 
Pour répondre à ta question, si tu ajoutes une feuille, en plaçant dans la table une ligne supplémentaire concernant cette feuille, alors au prochain renommage elle pourra être traitée, puisqu'il y a une boucle sur le nombre de valeurs à traiter qui dépend du nombre d'entrées dans le tableau.
 
Edit: NB: a ta place avant d'executer ce code je ferais une copie de mon classeur  ;)


Message édité par wago le 26-07-2017 à 22:56:51
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed