IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

VBA: lire une chaine de caractere dans une boucle [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 74
    Par défaut VBA: lire une chaine de caractere dans une boucle
    Bonjour,

    Dans la conception de ma macro, je souhaite ouvrir plusieurs fichiers les un après les autres.
    Ces fichiers ont un libellé similaire, seul 2 caractères numériques divergent. J'ai donc créé une variable numérique avec un boucle "For".

    Nom : Nom fichier.PNG
Affichages : 1259
Taille : 3,7 Ko

    Au premier passage, pas de problème, il reconnais le le chemin et libellé du fichier. Des qu'un fichier n'existe pas, la boucle s’enclenche...mais s'en s’arrêter.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    Sub concatene()
    Dim infolog, final As Workbook
     
    Dim Nomfichier As String
    Dim cpt, i As Double
     
    dateJ = Date
    dateYYYY = Right(dateJ, 4)
    dateMM = Left(Right(dateJ, 7), 2)
    dateDD = Left(dateJ, 2)
    dateFic = dateYYYY & dateMM & dateDD
    cpt = 1
     
    For i = 5 To 93
     
    Nomfichier = Dir("C:\Users\kgues\Documents\Alerte CASSE appro\Donnees\Liste0" & i & "_" & dateFic & " .xls")
     
        Do While Nomfichier = ""
            i = i + 1
         Loop
     
    Next
    Pourriez-vous m'aider à améliorer mon code svp.

    Merci

  2. #2
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Bonjour Kimou, bonjour le forum,

    Manquerait pas un Nomfichier = Dir avant le Loop ? Tu pourrais aussi simplifier la variable DateFic : DateFic = CStr(Format(Date, "yyyymmdd")).

  3. #3
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Dim I As Integer, dateFic As String, Nomfichier As String
    dateFic = "20160317"
     Nomfichier = "toto"
        Do While Nomfichier <> ""
               I = I + 1
             Nomfichier = Dir("C:\Users\kgues\Documents\Alerte CASSE appro\Donnees\Liste" & Format(I, "#00") & "_" & dateFic & " .xls")
             If Nomfichier <> "" Then traitement
         Loop

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut heu
    bonjour
    en fait c'est ta variable i qui est interprété comme tel hors tes nom de fichier sont du style
    liste01720160315
    il faut donc que tu ajoute un zéro entre guillemet dans la concaténation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for i= 1 to 93
    fichier="liste0" & i & 'ta date  & ".extension"
    next
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #5
    Invité
    Invité(e)
    Par défaut
    Format(I, "0#") ' ajoutera le zéro!!

    Mais oui c'est encore plus simple

  6. #6
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. vba excel verifier une chaine de caractere dans une colonne
    Par Marc31 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/09/2010, 13h35
  2. [Tableaux] passer une chaine de caracteres dans une URL ?
    Par isa150183 dans le forum Langage
    Réponses: 3
    Dernier message: 16/09/2008, 15h06
  3. comment modifie un caractere dans une chaine de caractere
    Par lenetfm dans le forum Débuter avec Java
    Réponses: 6
    Dernier message: 19/03/2008, 21h35
  4. erreur pour une insertion d'une chaine de caractere dans une cellule
    Par amel95140 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/10/2006, 09h09
  5. Réponses: 2
    Dernier message: 04/11/2005, 11h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo