[EXCEL VBA] controle de nom de feuille

shinji7800 Messages postés 297 Date d'inscription   Statut Membre Dernière intervention   -  
shinji7800 Messages postés 297 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J’aimerai savoir s’il est possible sous Excel en programmation VBA, de contrôler juste les premiers caractères du nom d’une feuille

Je m’explique je crée un programme, de traitement de données, le problème c’est que le nom de la feuille change en fonction de la machine qui crée la feuille de donnée, et mon programme doit pouvoir traité n’importe quelle feuille

Par « chance » toute les pages commence par 273 j’aimerai savoir si c’est possible de ne faire attention qu’au trois premier caractère genre « 273* » ou quelque chose du genre

Merci par avance pour votre aide
A voir également:

6 réponses

herod1983 Messages postés 193 Date d'inscription   Statut Membre Dernière intervention   5
 
salut

Tu peux utiliser la fonction mid qui scinde des chaines de caractère:

mid(sheets.name,1 ,3)

sheets.name fait référence à la chaine de caractère,
le chiffre 1 est le commencement de ta chaine et le chiffre 3 la fin.

En l'occurrence si tu as 273kaudu par ex cela prendra que 273
0
shinji7800 Messages postés 297 Date d'inscription   Statut Membre Dernière intervention   47
 
Je teste de suite ... merci pour cette reponse rapide !

cordialement
0
gbinforme Messages postés 14946 Date d'inscription   Statut Contributeur Dernière intervention   4 724
 
bonjour

En l'occurrence si tu as 273kaudu par ex pour ne prendre que 273 tu peux faire aussi
debnom = Left(Sheets(i).Name, 3)

0
shinji7800 Messages postés 297 Date d'inscription   Statut Membre Dernière intervention   47
 
If Val((Sheets(1).Name) <> 273) Then
        If Val((Sheets(2).Name) <> 273) Then
            vAns = MsgBox("manque relevée de codes défauts", 0 + 48, "Information")
        Else
            Sheets(2).Select
        End If
    Else

       'les lignes de codes qui suivent ne sont que des tests
        ans = Val(Sheets(1).Name)
        'Range("A1").Name = Mid(Sheets(1).Name, 1, 3)
        Range("A2").Value = Sheets(1).Name
        Range("A3").Value = Val("27302_090109_083320")
        
        
        Sheets(1).Select
    end if



j'ai pensé à faire quelque chose du genre

donc le nom de la page d'importation a la forme 273xx_xxxxxx_xxxxxx

pour mon programme (non fini, donc je ne connais pas le nombre de page final, et l'organisation de celle ci), je veux pouvoir sélectionner la page qui m'intéresse quand je veux


je suis dsl de ne pas pouvoir être plus clair
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
pilas31 Messages postés 1825 Date d'inscription   Statut Contributeur Dernière intervention   646
 
Bonjour,

Je ne sais pas si je comprends bien le problème mais ne suffit-il pas de boucler sur toutes les feuilles pour trouver la bonne ?
Avec un code du type :
For i = 1 To Sheets.Count
    If Left(Sheets(i).Name, 3) = "273" Then
        ' le traitement de la page.....
        
        
    End If
Next i


A+
0
shinji7800 Messages postés 297 Date d'inscription   Statut Membre Dernière intervention   47
 
oui j'était justement arrivé a cette conclusion ...

mais j'ai un souci maintenant ... boucle for next non initialisé ...


mais merci a toi, je pense egalement que c'est la meilleur solution
0