[EXCEL VBA] controle de nom de feuille

Fermé
shinji7800 Messages postés 297 Date d'inscription mercredi 7 novembre 2007 Statut Membre Dernière intervention 30 septembre 2010 - 28 janv. 2009 à 11:07
shinji7800 Messages postés 297 Date d'inscription mercredi 7 novembre 2007 Statut Membre Dernière intervention 30 septembre 2010 - 31 janv. 2009 à 18:53
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 jeudi 2 octobre 2008 Statut Membre Dernière intervention 3 août 2012 5
28 janv. 2009 à 11:42
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 mercredi 7 novembre 2007 Statut Membre Dernière intervention 30 septembre 2010 47
28 janv. 2009 à 12:48
Je teste de suite ... merci pour cette reponse rapide !

cordialement
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 708
28 janv. 2009 à 17:21
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 mercredi 7 novembre 2007 Statut Membre Dernière intervention 30 septembre 2010 47
30 janv. 2009 à 11:00
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 vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 643
30 janv. 2009 à 17:52
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 mercredi 7 novembre 2007 Statut Membre Dernière intervention 30 septembre 2010 47
31 janv. 2009 à 18:53
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