[EXCEL VBA] controle de nom de feuille

shinji7800 Messages postés 335 Statut Membre -  
shinji7800 Messages postés 335 Statut Membre -
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
Configuration: Windows XP
Firefox 2.0.0.3

6 réponses

  1. herod1983 Messages postés 200 Statut Membre 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
  2. shinji7800 Messages postés 335 Statut Membre 47
     
    Je teste de suite ... merci pour cette reponse rapide !

    cordialement
    0
  3. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    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
  4. shinji7800 Messages postés 335 Statut Membre 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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. pilas31 Messages postés 1878 Statut Contributeur 648
     
    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
  7. shinji7800 Messages postés 335 Statut Membre 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