Ajout d'un espace dans le nom de la feuille par Excel

Bonjour,

J'ai un petit problème avec le nom de mes feuilles. Quand je crée la feuille, je la nomme "2101", je sauve le fichier, je le ferme et quand je l'ouvre de nouveau la feuille se nomme "2101 ".

J'ai une fonction qui vérifie l'existence de la feuille "2101" et j'ai comme résultat, elle n'existe pas.

J'ai pensé vérifier son existence en mentionnant si le nom de la feuille contient "2101" mais je n'ai aucune idée comment.

Dans vba, la feuille se nomme "2101".

Voici mon code de vérification.

Public Function FeuilleExiste(FeuilleAVerifier As String) As Boolean

On Error GoTo SiErreur
Dim Feuille As Worksheet

    FeuilleExiste = False
    For Each Feuille In Worksheets
        If UCase(Feuille.Name) = UCase(FeuilleAVerifier) Then
            FeuilleExiste = True
            Exit Function
        End If
    Next Feuille
Exit Function

SiErreur:
    FeuilleExiste = CVErr(xlErrNA)
End Function

Sub Test()
'exemple d'utilisation de la fonction "FeuilleExiste"

    If FeuilleExiste("2101") = True Then
        Exit Sub
    Else
        MsgBox "La Feuille '2101' n'existe pas!"
    End If

End Sub

Merci de votre aide et bonne journée

Claire

Rebonjour,

Petit ajout: les feuilles en question ont été créées avec une version 2007, je travaille avec 2010.

Est-ce que cela peut avoir un impact ?

Claire

Bonjour,

plus que la fonction qui teste si la feuille existe, c'est celle qui renomme l'onglet qu'il faut voir car il n'y a pas de raison qu'il y ait un espace de mis en plus à la fin.

@ bientôt

LouReeD

Bonjour à tous,

Un essai ...

Erreur je me reprends ...

ric

Bonjour à tous,

Une alternative

Function FeuilleExiste(FeuilleAVerifier As String) As Boolean
    On Error GoTo errhdlr
    Sheets(FeuilleAVerifier).Range("A1").Value = Sheets(FeuilleAVerifier).Range("A1").Value
    FeuilleExiste = True
    Exit Function
errhdlr:
    FeuilleExiste = False
End Function

Pierre

Le programme de vérification fonctionne normalement chez moi et la feuille 2101 est reconnue. Son nom n'est pas modifié. Si tu nommes ta feuille à partir d'un nombre "n", pour être certain d'avoir une chaîne de caractères, utilise la double fonction trim(str(n))

Bonjour @ tous,

je propose ma vérification :

Option Explicit

Function FeuilleExiste(nom As String) As Boolean ' nom = nom de la feuille que l'on veut tester
    Dim a As Long
    On Error Resume Next ' mise en marche de la gestion des erreurs
        a = Sheets(nom).Cells.Rows.Count ' on demande de compter le nombre de ligne de la feuille
        If a < 1 Then FeuilleExiste = False Else FeuilleExiste = True
        ' s'il n'y a pas de ligne = pas de feuille = une erreur alors la fonction = False sinon = True
End Function

Sub test()
    If FeuilleExiste("LouReeD") Then MsgBox ("OK") Else MsgBox ("KO")
End Sub

@ bientôt

LouReeD

Bonjour à tous,

Test rapide en effet.

Cela fonctionne aussi avec les colonnes...

a = Sheets(nom).Cells.Columns.Count

En effet ça marche aussi avec les colonnes !

Avant je le faisais avec la sélection de la feuille, mais quelque fois je ne veux pas que cette dernière soit sélectionnée... Alors le compte de cellules j'ai trouvais cela sympa !

@ bientôt

LouReeD

Bonjour,

Je vous remercie de votre aide, cela n'a pas résolu mon problème.

Mais comme j'ai ce petit problème sur seulement 4 feuilles, j'ai transféré les données manuellement.

Merci et prenez soin de vous,

Claire

A nouveau,

Le souci est lorsque tu dois nommer ta feuille avec le nombre 2101.

Utilise en VBA la procédure Trim qui permet d'enlever tout espace

Exemple

X= 2101

Xstr=Cstr(X)

Feuille=Trim(Xstr)

première réponse sur le fil :

https://forum.excel-pratique.com/s/goto/955818

@ bientôt

LouReeD

Rechercher des sujets similaires à "ajout espace nom feuille"