Selectionner la dernière lettre d'un fichier la plus élevée

Résolu
siamens_duj Messages postés 212 Statut Membre -  
 siamens_duj -
Bonjour,

Je me confronte à un problème de taille.

J'ai un programme où j'entre un nom de fichier dans une inputbox, par exemple UP-C-100089-1
Dans mon dossier, j'ai les fichiers UP-C-100089-1A, UP-C-100089-1B, UP-C-100089-1C et UP-C-100089-1D.
J'aimerais que mon programme ouvre le fichier avec la lettre la plus "élevée" soit ici UP-C-100089-1D.
J'ai fais le code :

Ofile = right(NomFichier, 1)  
Pfile = left (Ofile, 1) 'sélectionne le dernier caractère sans l'extension

If Pfile = "B" Then

'Code pour ouvrir le document

Else if Pfile = "A" Then

'Code pour ouvrir le document
End if


Cela a l'air de fonctionner mais ce n'est pas ce que je cherche puisque je voudrais aller jusqu'à Z et dans l'exemple si dessus jusqu'à D.

J'ai essayé avec for lettre = ask ("Z") to ask ("A") step -1 mais je ne sais pas comment m'y prendre.

Quelqu'un pourrait m'aider svp ?

Merci

2 réponses

  1. sipherion Messages postés 1836 Date d'inscription   Statut Membre Dernière intervention   287
     
    Salut,

    Un commentaire : dans ton exemple, Ofile est toujours égal à Pfile

    NomFichier = 'Classeur1.xlsx'
    Ofile = right(NomFichier, 1)
    ' Ofile = 'x'
    Pfile = left (Ofile, 1) 'sélectionne le dernier caractère sans l'extension
    ' Pfile = 'x'


    "Il vaut mieux savoir tout chercher que chercher à tout savoir."
    0
    1. siamens_duj Messages postés 212 Statut Membre 7
       
      Bonjour et merci pour votre reponse.
      NomDuFichier = fichier & ".xls"
      NomFichier = NomDuFichier

      C est pour ça que j'ai mis le commentaire ^^
      0
    2. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Bonjour,

      Avez-vous testé ma méthode ci-dessous?
      0
      1. siamens_duj > pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention  
         
        Bonjour, oui justement j'étais en train de la tester, je vous ai répondu.
        Merci pour votre réponse.
        0
  2. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Bonjour,

    Tu fais une boucle sur les codes Asc des lettres A à Z et à chaque fois tu vérifies si le fichier existe.
    A tester :
    Sub test()
    Dim i As Integer, NomFic As String, Chemin As String, Extens As String, Carac As String
    Chemin = "C:/Répertoire/blabla/" 'A ADAPTER
    Extens = ".xlsx"
    For i = 65 To 90
       NomFic = Chemin & "UP-C-100089-1" & Chr(i) & Extens
       If FichierExiste(NomFic) = False Then 
          If i = 65 Then 
             MsgBox "aucun fichier ne débute par UP-C-100089-1"
             Exit For
          Else
             Carac = Chr(i - 1)
             MsgBox Carac
             Exit For
          End If
    Next i
    
    End Sub
    Function FichierExiste(NomFichier As String) As Boolean
        FichierExiste = Dir(NomFichier) <> "" And NomFichier <> ""
    End Function


    Avant, j'arrivais jamais à finir mes phrases... mais maintenant je
    0
    1. siamens_duj
       
      • Rectification de mon commentaire*


      Bonjour et merci pour votre réponse.
      Cependant cela ne fonctionne pas.
      J'ai donc repris mon code avec A et B en dernière lettre.
      J'ai remarqué que quoi que je fasse il sélectionne toujours que le B et quand je change mon code et que je met Z ou A et bien il n'en n'ouvre aucun !
      0
      1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773 > siamens_duj
         
        Avez-vous adapté le chemin et l'extension dans mon code?
        0
    2. siamens_duj
       
      Oups je n'avais pas modifié le chemin !

      merci pour votre aide, cela fonctionne !
      0