Récupérer Noms des Feuilles et Tester Existence Feuille

XkevinX

XLDnaute Junior
Bonjour,


J'ai un petit souci.

J'utilise une macro qui change le nom de mes feuilles suivant la valeur d'une cellule. (Macro débloqué par Pierrot93)
Mais dans le cas ou j'ai deux feuilles avec le même nom, cela ne fonctionne pas (logique).

Voici la macro :

Sub NomFeuille()

Dim Sh As Worksheet

For Each Sh In Sheets
If Sh.Name <> "Recap" And Not IsEmpty(Sh.Range("M5")) Then
Sh.Name = Split(Sh.Range("M5"), "-")(UBound(Split(Sh.Range("M5"), "-")))
End If
Next
End Sub


J'ai lu pas mal de discussions pour tester l'existence d'une feuille et récupérer son nom sur votre forum et sur d'autres sites mais ma problématique est différente et je n'ai pas les connaissances pour adapter.

Tous les posts reposent sur un nom de feuille connu or j'ai besoin d'un cas général d'où la macro précédente.

Je souhaite que si la feuille porte le même nom qu'une autre (après le split) qu'elle soit renommée suivi du caractère 2 par exemple. Et je vois pas comment manipulé mes feuilles sans connaître leurs noms au préalable.

Merci.
 

Efgé

XLDnaute Barbatruc
Re : Récupérer Noms des Feuilles et Tester Existence Feuille

Bonjour XkevinX, Tototi :) , _ Une idée en pièce jointe _ Voir si cela répond vraiment au problème _ Cordialement
 

Pièces jointes

  • XkevinX(1).xls
    30.5 KB · Affichages: 41

XkevinX

XLDnaute Junior
Re : Récupérer Noms des Feuilles et Tester Existence Feuille

Re,

Merci de vos réponses.

Efgé, j'ai testé ton code.

Sur mes 19 feuilles, 16 changent de nom (comme avec la fonction NomFeuille précédente).

Sur les trois feuilles qui ne fonctionnaient pas, une s'appelle 17 maintenant et les deux autres ne changent pas.

J'ai toujours l'erreur 1004.

Contenu M5 :
ROANNE - Lycée Jean Puy (Rue Des Déportés) => transformé en "17"
L'erreur est ici , je pense,le split garde Lycée Jean Puy (rue des déportés) qui dépasse 31 caractères.
POUILLY-LES-NONAINS - Le Bourg => La feuille garde son nom de base (Le Boug existe déjà aussi)
RIORGES - Les Canaux => La feuille garde son nom de base .

Voilà voilà.
 

XkevinX

XLDnaute Junior
Re : Récupérer Noms des Feuilles et Tester Existence Feuille

Re,

Pas de souci.

J'ai laissé les trois feuilles qui posent problème + la feuille qui porte le même nom qu'une des trois.
 

Pièces jointes

  • test12.xls
    133 KB · Affichages: 55
  • test12.xls
    133 KB · Affichages: 55
  • test12.xls
    133 KB · Affichages: 57

tototiti2008

XLDnaute Barbatruc
Re : Récupérer Noms des Feuilles et Tester Existence Feuille

Re,

peut-être comme ça

Code:
Sub NomFeuille2()
Dim Sh As Worksheet, TmpSh As Worksheet, Tmp As Variant, TmpName As String
For Each Sh In Sheets
    If Sh.Name <> "Recap" And Not IsEmpty(Sh.Range("M5")) Then
        Sh.Name = Sh.Index
        Tmp = Split(Sh.Range("M5"), "-")
        TmpName = Left(Trim(Tmp(UBound(Tmp))), 31)
        On Error Resume Next
            Set TmpSh = Sheets(TmpName)
        On Error GoTo 0
        If Not TmpSh Is Nothing Then
            Sh.Name = Left(Trim(TmpName), 29) & Sh.Index
            Set TmpSh = Nothing
        Else
            Sh.Name = Left(Trim(TmpName), 31)
        End If
    End If
Next Sh
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 175
Messages
2 085 952
Membres
103 058
dernier inscrit
florentLP