Microsoft 365 Problème de nommage de mes onglets

aeque

XLDnaute Occasionnel
Bonjour la Room,

Je viens vers vous, car je suis bloqué avec un code VBA qui me paraissait simple.
Il s'agit de modifier le nom d'un onglet avec le contenue d'une cellule

Voici mon code

VB:
Sub rename()
Dim sh As Worksheet

For Each sh In Worksheets
    sh.Name = sh.Range("A3")
Next sh

End Sub

et voici l'erreur qui arrive au niveau de sh.Name = sh.Range ("A3"), je ne comprends pas ce que je dois faire

Merci d'avance pour le coup de main

1643964874047.png
 
Solution
Re

Et si tu veux être sur de ton coup il faut vérifier que la cellule A3 ne soit pas vide ET vérifier que une feuille ne se nomme pas déjà comme cela ...

VB:
Sub rename()
Dim Ws As Worksheet, NewFeuille                                     'Les variables

If [A3] = "" Then MsgBox "La cellule A3 est vide ...", _
    vbExclamation, "Problème...": Exit Sub                          'Message A3 vide

NewFeuille = Format([A3].Value, "dd-mm-yy")                         'Préparation du nom de la nouvelle feuille

For Each Ws In Worksheets                                           'Test si la feuille existe déjà
    If Ws.Name = NewFeuille Then
        MsgBox "Création de cette feuille impossible car elle existe déjà !", _...

Phil69970

XLDnaute Barbatruc
Bonjour @aeque

Tu as la réponse dans le message d'excel :

1643965251441.png


Je pense que dans la cellule A3 il y a une date donc le caractère "/" ou bien il n'y a rien en A3
Pour les dates il faut mettre par exemple 04-02-2022 ou bien 04 02 2022

*Penses à changer ton titre car "Soucis VBA" ne veut pas dire grand chose à remplacer par "Problème de nommage de mes onglets" par exemple

*Sinon un fichier serait le bienvenu..;)

*Merci de ton retour

@Phil69970
 

aeque

XLDnaute Occasionnel
Bonjour @aeque

Tu as la réponse dans le message d'excel :

Regarde la pièce jointe 1129788

Je pense que dans la cellule A3 il y a une date donc le caractère "/" ou bien il n'y a rien en A3
Pour les dates il faut mettre par exemple 04-02-2022 ou bien 04 02 2022

*Penses à changer ton titre car "Soucis VBA" ne veut pas dire grand chose à remplacer par "Problème de nommage de mes onglets" par exemple

*Sinon un fichier serait le bienvenu..;)

*Merci de ton retour

@Phil69970
Bonjour

Merci pour ta réponse, j'ai changé le nom de la discussion.
J'ai bien une date dans la cellule mais changer la date comme tu le suggère ne fonctionne pas.

Je joint un fichier

Merci
 

Pièces jointes

  • Test KPI.xlsb
    20.7 KB · Affichages: 4

Phil69970

XLDnaute Barbatruc
Re

Et si tu veux être sur de ton coup il faut vérifier que la cellule A3 ne soit pas vide ET vérifier que une feuille ne se nomme pas déjà comme cela ...

VB:
Sub rename()
Dim Ws As Worksheet, NewFeuille                                     'Les variables

If [A3] = "" Then MsgBox "La cellule A3 est vide ...", _
    vbExclamation, "Problème...": Exit Sub                          'Message A3 vide

NewFeuille = Format([A3].Value, "dd-mm-yy")                         'Préparation du nom de la nouvelle feuille

For Each Ws In Worksheets                                           'Test si la feuille existe déjà
    If Ws.Name = NewFeuille Then
        MsgBox "Création de cette feuille impossible car elle existe déjà !", _
        vbCritical, "Problème création feuille !!!"                 'Message si la feuille existe
        Exit Sub
    End If
Next

ActiveSheet.Name = NewFeuille                                       'Nomme la feuille

End Sub

*Merci de ton retour

@Phil69970
 

aeque

XLDnaute Occasionnel
Re

Et si tu veux être sur de ton coup il faut vérifier que la cellule A3 ne soit pas vide ET vérifier que une feuille ne se nomme pas déjà comme cela ...

VB:
Sub rename()
Dim Ws As Worksheet, NewFeuille                                     'Les variables

If [A3] = "" Then MsgBox "La cellule A3 est vide ...", _
    vbExclamation, "Problème...": Exit Sub                          'Message A3 vide

NewFeuille = Format([A3].Value, "dd-mm-yy")                         'Préparation du nom de la nouvelle feuille

For Each Ws In Worksheets                                           'Test si la feuille existe déjà
    If Ws.Name = NewFeuille Then
        MsgBox "Création de cette feuille impossible car elle existe déjà !", _
        vbCritical, "Problème création feuille !!!"                 'Message si la feuille existe
        Exit Sub
    End If
Next

ActiveSheet.Name = NewFeuille                                       'Nomme la feuille

End Sub

*Merci de ton retour

@Phil69970
Merci beaucoup c'est parfait:!!!!!!!!
 

Statistiques des forums

Discussions
312 493
Messages
2 088 955
Membres
103 989
dernier inscrit
jralonso