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 :

Ouverture de plusieurs fichiers txt dans une même macro


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2019
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mai 2019
    Messages : 14
    Par défaut Ouverture de plusieurs fichiers txt dans une même macro
    Bonjour,

    Je me permets d'ouvrir un sujet car je rencontre des difficultés dans la création d'une macro.
    Je souhaite réaliser une macro qui compare 2 fichiers .txt qui comporte des listes d'ordinateurs,serveurs avec un nom unique mélangé avec d'autres informations. Mon but est de trouver si il y a des noms d'ordinateurs qui ne sont pas dans les 2 fichiers et, si c'est le cas, rajouter les noms des ordinateurs dans le fichier où il sont manquants.En gros si jamais il y a des noms de pc dans le premier fichier qui ne sont pas dans le deuxième fichier alors il me faut rajouter ces noms dans le deuxième fichier.(je sais pas si je suis assez clair ^^')

    Pour le moment j'ai effectué le code suivant :

    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
     
     
     
    Public Function ExtraireChaineDelimitee(ChaineSource As String, Optional LimiteAvant As String = "", Optional LimiteApres As String = "")
     
    On Error GoTo FunctionErreur
    If InStr(1, ChaineSource, LimiteAvant) = 0 Then
        ExtraireChaineDelimitee = CVErr(xlErrNA)
        Exit Function
    Else
        ExtraitPositionDebut = InStr(1, ChaineSource, LimiteAvant) + Len(LimiteAvant)
    End If
     
    If LimiteApres = "" Then
        ExtraitPositionFin = Len(ChaineSource)
    Else
        ExtraitPositionFin = InStr(1, ChaineSource, LimiteApres) - 1
    End If
    ExtraireChaineDelimitee = Mid(ChaineSource, ExtraitPositionDebut, ExtraitPositionFin - ExtraitPositionDebut + 1)
    Exit Function
     
    FunctionErreur:
        ExtraireChaineDelimitee = CVErr(xlErrNA)
        'ExtraireChaineDelimitee = ""
    End Function
     
     
     
    Sub ExempleExtractionDeChaine()
     
     
    Dim LimiteGauche As String
    Dim LimiteDroite As String
    Dim intFic As Integer
    Dim strLigne As String
    Dim ligne As String
    Dim motcompare As String
    Dim intfic2 As Integer
    Dim TestEnsemble As Long
    Dim ligne2 As String
     
    LimiteGauche = "aa"
    LimiteDroite = "bb"
     
     
    intFic = FreeFile
    Open "C:\" For Input As intFic
    While Not EOF(intFic)
        Line Input #intFic, strLigne
        ligne = strLigne
        motcompare = ExtraireChaineDelimitee(ligne, LimiteGauche, LimiteDroite)
     
        intfic2 = FreeFile
        Open "C:\" For Input As intfic2
        While Not EOF(intfic2)
             Line Input #intfic2, strligne1
             ligne2 = strligne1
             TestEnsemble = InStr(1,ligne2,motcompare,1)
     
             If TestEsemble = 0 Then
             num = FreeFile
             Close intfic2
                'Ouvre en écriture 
                 Open "C:\" For Append As #5
                 Print #1, motcompare
                'Fermeture
                Close #5
            End If
     
          Wend
     
    Wend
    Close intFic
    Close intfic2
     
    End Sub

    Il est fort possible que mon code vous sortes par les yeux ( je suis débutant en vba).
    La fonction qui trouve une chaine de caractère entre 2 bornes semble fonctionner, c'est surtout la partie sur l'ouverture et l’écriture sur les fichiers texte qui me pose problème car je dois ouvrir un fichier en lecture puis en écriture. J'ai aussi des incompatibilités de type que je ne comprend pas notamment sur les variables TestEnsemble et motcompare.

    En vous remerciant par avance de votre aide !


    Zedite,

  2. #2
    Membre Expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 871
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Juste histoire de t'aider je te conseille ce tuto

    https://warin.developpez.com/access/fichiers/#LII-B

    Je serai tenter de te dire que la méthode APPEND devrai répondre à ton problème Mais je ne l'ai jamais tester et j'espère que le Append permet de lire aussi (Pas vu et pas tester non plus)

    Peut-être que d'autres l'ont testé

    tu nous dis si c'est toi qui le teste et ce que cela donne comme résultat

    A bientôt

  3. #3
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2019
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mai 2019
    Messages : 14
    Par défaut
    Merci à toi pour ta réponse.

    Je viens de tester sur une petite macro de lire un fichier txt avec Append est il semble que ça ne fonctionne pas.

    Actuellement quand je lance la macro, j’obtiens une erreur sur la ligne 54, "Fichier déjà ouvert".

  4. #4
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2019
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mai 2019
    Messages : 14
    Par défaut
    J'ai à présent une nouvelle erreur qui sort un peu de nulle part :


    Nom : erreur.png
Affichages : 210
Taille : 83,8 Ko


    Je suis vraiment au point mort, à me demander si ce que je veux faire est possible.

Discussions similaires

  1. Réponses: 3
    Dernier message: 19/07/2016, 20h34
  2. Ouvrir plusieurs fichier .txt dans une loop
    Par IngenieurElec dans le forum C
    Réponses: 5
    Dernier message: 16/11/2012, 11h54
  3. Réponses: 1
    Dernier message: 26/03/2009, 16h56
  4. [HTML] Ouvrir plusieurs fichiers pdf dans une page
    Par PrinceMaster77 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 05/05/2006, 09h34
  5. Réponses: 5
    Dernier message: 07/09/2004, 17h38

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