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 :

Difficulté avec une boucle en VBA-Excel!


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Collégien
    Inscrit en
    Octobre 2014
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Collégien
    Secteur : Alimentation

    Informations forums :
    Inscription : Octobre 2014
    Messages : 36
    Points : 32
    Points
    32
    Par défaut Difficulté avec une boucle en VBA-Excel!
    Bonjour à tous,

    J'ai de la difficulté à faire fonctionner une boucle dans un projet de macro Excel.
    Le macro doit premièrement charger un fichier texte pour ensuite extraire des informations.
    Mon macro fonctionne mais le hic c'est que je n'arrive pas à faire une boucle pour que l'extraction des données continuent plus loin dans le fichier texte.

    Mon code jusqu'à maintenant :

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    myFile = "C:\Users\lsebe\Desktop\texte.txt"
    Open myFile For Input As #1
    Do Until EOF(1)
        Line Input #1, textline
         text = text & textline
    Loop
    Close #1
     
     
        i = 1
     
        Dim vItm As Variant
        Dim aStrings(1 To 2) As String
     
        aStrings(1) = "INFORMATION DE BASE ET DONNÉES DE CALCUL"
     
        For Each vItm In aStrings
            DDC = InStr(text, "Date du calcul")
            DDR = InStr(text, "Date de retraite .")
            ADC = InStr(text, "Âge à la date du calcul")
            SE = InStr(text, "Service d'emploi")
            SP = InStr(text, "Service de participation")
            SG = InStr(text, "Salaire gagné")
            Cells(i + 1, 1).Value = Mid(text, DDC, 14)
            Cells(i + 1, 2).Value = Mid(text, DDC + 36, 10)
            Cells(i + 2, 1).Value = Mid(text, DDR, 16)
            Cells(i + 2, 2).Value = Mid(text, DDR + 36, 10)
            Cells(i + 3, 1).Value = Mid(text, ADC, 23)
            Cells(i + 3, 2).Value = Mid(text, ADC + 36, 6)
            Cells(i + 4, 1).Value = Mid(text, SE, 16)
            Cells(i + 4, 2).Value = Mid(text, SE + 36, 6)
            Cells(i + 5, 1).Value = Mid(text, SP, 24)
            Cells(i + 5, 2).Value = Mid(text, SP + 36, 6)
            For v = 0 To 10
            j = v * 228
            Cells(v + 7, 1).Value = Mid(text, SG + j, 24) + Mid(text, SG + 64 + j, 10) + "/ " + Mid(text, SG + 77 + j, 10)
            Cells(v + 7, 2).Value = Mid(text, SG + 103 + j, 10)
            Next v
            Next vItm
     
    End Sub
    Exemple du résultat que j'obtiens :

    INFORMATION DE BASE ET DONNÉES DE CALCUL
    Date d'emploi 1998-09-28
    etc...
    etc...

    Exemple du résultat que je veux obtenir :

    INFORMATION DE BASE ET DONNÉES DE CALCUL
    Date d'emploi 1998-09-28
    etc...
    etc...
    INFORMATION DE BASE ET DONNÉES DE CALCUL
    Date d'emploi 1996-10-22
    etc...
    etc...
    etc......


    Savez-vous comment pourrais-je arriver à boucler cette séquence afin d'obtenir le résultat voulu?

    Merci et bonne journée!

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Déjà un fichier contient des retour à la ligne et toi tu construis une variable sur une ligne!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Do Until EOF(1)
        Line Input #1, textline
         text = text & textline & vbcrlf
    Loop
    Close #1
    Ensuite il faut convertir ta variable en tableau

    t = split(text,vbcrlf) !
    Ensuite. Tu scan ton tableau

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for i = 0 to ubound(t)
    Range("a1") = mid(t(i),1,9)
    Next

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Collégien
    Inscrit en
    Octobre 2014
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Collégien
    Secteur : Alimentation

    Informations forums :
    Inscription : Octobre 2014
    Messages : 36
    Points : 32
    Points
    32
    Par défaut
    Merci beaucoup pour ton aide. J'essaie depuis deux jours d'intégrer ton code à mon code mais j'obtiens toujours des erreurs. J'arrive à faire fonctionner le tout seulement avec une "IntString". Quand j'ajoute le reste, ça ne fonctionne plus. Pourrais-tu me donner un exemple de l'intégration du code avec plusieurs "IntStrings"?

    Merci infiniment!

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonsoir,
    Désolé, la prochaine fois n'attends pas 2 jours.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for i = 0 to ubound(t)
    Range("a1") = mid(trim("" & t(i)),1,9)
    Next

Discussions similaires

  1. Traiter 100 fichiers avec une boucle sous VBA excel
    Par sebastien06 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 02/04/2008, 09h39
  2. [VBA-E] Parcourir les checkbox d'une feuille avec une boucle
    Par tonton fred dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 31/05/2007, 13h47
  3. [VBA-E]Petit souci avec une boucle
    Par Mou dans le forum Macros et VBA Excel
    Réponses: 19
    Dernier message: 17/04/2007, 15h15
  4. [VBA-E] PRobleme avec une boucle DO..LOOP WHILE
    Par AliochaBada dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 31/07/2006, 01h04
  5. [VBA] difficultés avec une requête INSERT
    Par elias dans le forum Access
    Réponses: 7
    Dernier message: 06/09/2005, 14h53

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