La valeur de 2 cellules = le noms des onglets

zack22

XLDnaute Nouveau
Bonjour à tous,

J'aimerais renommer mes onglets en fonction des valeurs de cellules de A1àA2 et B1àB20.
J'ai trouvé ceci qui fonctionne pour une cellule (A1) mais je n arrive pas à associer les autres éléments.

""Sub TabNameA1()

Dim Feuille As Worksheet

For Each Feuille In Worksheets
If Feuille.Range("A1&B1") <> "" Then
Feuille.Name = Feuille.Range("A1&B1").Value
End If
Next Feuille

End Sub""

Dès que j ajoute "&B1" cela ne marche plus.
Merci pour votre aide
 

Paf

XLDnaute Barbatruc
Re : La valeur de 2 cellules = le noms des onglets

bonjour

peut-être

Code:
....
If Feuille.Range("A1") <> "" And Feuille.Range("B1") <> ""Then
Feuille.Name = Feuille.Range("A1").Value & Feuille.Range("B1").Value
...

A+
 

zack22

XLDnaute Nouveau
Re : La valeur de 2 cellules = le noms des onglets

Je te joins le fichier
Tu comprendras mieux ma demande
Je ne parle pas encore bien l'excellois :)

J'ai 100 feuilles à faire qui se nommeraient A1 B1,A2 B1 ,A3 B1 en fonction de la selection du menu tu arriverais à la fenêtre correspondante.
Mais 20 * 20 = 400 feuilles à faire

Merci de ton aide
 

Paf

XLDnaute Barbatruc
Re : La valeur de 2 cellules = le noms des onglets

Re

a essayer

Si j'ai bien compris il s'agit de créer une feuille basée sur un modèle et non pas de créer des feuilles vierges.

J'ai copier une feuille que j'ai nommé "Modèle" et supprimé les feuilles Ax Bx existantes.


les noms de feuilles sont crées avec le contenu des cellules A et B . S'il fallait juste nommer ces feuilles A1 B1, A2 B4, ... on pourrait le faire sans passer par le contenu des cellules A et B.

Code:
...
Dim i, j, NomFeuille As String

For i = 1 To 20
    For j = 1 To 20
        NomFeuille = Range("A" & j) & " " & Range("B" & i)
        Worksheets("Modèle").Copy After:=Worksheets(Worksheets.Count)
        Worksheets(Worksheets.Count).Name = NomFeuille
    Next
Next
...

Chez moi ce code ne peut arriver à son terme. erreur 1004 ...

Apparemment cette anomalie n'est pas rare, mais pas trouvé de parade.

Sur une machine plus puissante que la mienne, peut-être ....

A+
 

camarchepas

XLDnaute Barbatruc
Re : La valeur de 2 cellules = le noms des onglets

Bonjour à Toutes et tous ,

En fait l'on à effectivement un nombre limité de copies pour un onglet ,

pour passer outre , il faut copier l'onglet modéle dans un classeur tempo ,

puis se servir de cette onglet dans le classeur bidon pour modele,

ensuite toutes les temps de copies , il suffit de supprimer le fichier modele et de le recréer .

Si cela vous intéresse, je peux bien sur vous fournir le code
 

Paf

XLDnaute Barbatruc
Re : La valeur de 2 cellules = le noms des onglets

bonjour camarchepas

seule la variable NomFeuille est déclarée en string, i et j ne sont pas typées. Mais même après typage en integer, le problème persiste.

et pire, après suppression de la cinquantaine de feuilles créees, le code plante dès la première copie. ??

je croyais que le nombre de feuille était limité par la mémoire de la machine ?

A+
 

camarchepas

XLDnaute Barbatruc
Re : La valeur de 2 cellules = le noms des onglets

Re ,

Oui tu as raison pour les variables , elles étaient en variant et pas en string .

Et non , pas un problème de machine

Voici un exemple à mettre dans un fichier contenant un onglet modele

Code:
Option Explicit
Sub copie()
Dim Tourne As Long
Dim NomTempo As String
Application.Workbooks.Add
ActiveWorkbook.SaveAs "En_création.xlsx"
For Tourne = 1 To 80
   

    If Tourne > 1 And Tourne Mod 40 = 0 Then Application.Workbooks(NomTempo).Close False
    If Tourne Mod 40 = 0 Or Tourne = 1 Then
         Application.Workbooks.Add
         NomTempo = ActiveWorkbook.Name
         ThisWorkbook.Sheets("Modele").Copy before:=Workbooks(NomTempo).Sheets(1)
         ActiveSheet.Name = "Modele"
    End If
    Workbooks(NomTempo).Sheets("Modele").Copy before:=Workbooks("En_création.xlsx").Sheets(1)
 Next Tourne
End Sub
 

Discussions similaires

Réponses
7
Affichages
359

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 976
dernier inscrit
kaizertv2001@gmailcom