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 :

Comment analyser et modifier un fichier texte (Microsoft Query) via VBA


Sujet :

Macros et VBA Excel

  1. #21
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    La der des ders mais tu en auras deux pour le pris d'un.
    Proposition 1
    Tu ouvres ton fichier dans Excel, séparateur "," ou ";". On s'en fout.
    Et tu reconstitues ta ligne comme tu veux en respectant les virgules (autant de colonnes que de virgules) et tu enregistres ton fichier en tant que txt.
    On renomme et on vérifie
    Proposition 2
    Si tu connais le N° de ligne sur laquelle faire ton charcutage, peut-être cela peut-il fonctionner en ouvrant le txt en mode Random. dans lequel tu peux fixer la longueur de la ligne. Pas garanti ! Du tout ! J'ai planté Excel ... J'ai dû laissé une petite erreur en modifiant mon code pour passer du mode input au mode random
    On apprend aussi en travaillant

  2. #22
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut
    bonjour,
    et désolé du retard, j'ai du fuir comme un lache
    alors qu'est-ce que j'allais je dire?

    je ne parviens pas à faire bouffer une valeur > 3 bytes au prompt de parametre. J'en déduis que je ne peux combiner plusieurs critère OR dans mon parametre. il y a une parade ou je dois définir un nombre de parametre maxi et les initialiser tous à la valeur unique si je ne veux tester que sur une valeur. ?(tu piges mon chinois).
    euh pas trop lol
    avoir plusieurs parametres ne pose en principe pas de problemes.

    sinon, j'ai un autre truc, peut-etre plus "simple" si je puis dire.

  3. #23
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Voici le Code de Ouskelnor que j'ai adapté.

    Le remplacement est en dur mais je vais paramétrer cela maintenant.

    Merci Mayekeul pour ton aide, mais comme je ne t'entendais plus, j'ai continué à avancé par une solution de code comme proposé par Ouskelnor.

    Bonne journée à tous les 2 et encore merci.

    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
     
    Sub Test()
    Dim LaLigne As String, tablo As Variant
    Dim Where_pos As Long
    Dim End_Where As Long
    Dim beg_ligne As String
    Dim End_ligne As String
     
        Open "C:\DATA\Test\Selective Sorties Mois 0.dqy" For Input As #1
        Open "C:\DATA\Test\TonFichierCorrigé.txt" For Output As #2
        Do While Not EOF(1)
            Line Input #1, LaLigne
            Where_pos = InStr(1, LaLigne, "WHERE", vbTextCompare)
            If Where_pos > 0 Then
               End_Where = InStr(Where_pos, LaLigne, ")", vbTextCompare)
               If End_Where > 0 Then
                  beg_ligne = Left(LaLigne, Where_pos - 1)
                  End_ligne = Right(LaLigne, Len(LaLigne) - End_Where)
                  LaLigne = beg_ligne & "WHERE (LST_SORM1C.DEPAZT='605') OR (LST_SORM1C.DEPAZT='606') OR (LST_SORM1C.DEPAZT='615')" & End_ligne
               End If
            End If
            Debug.Print LaLigne
            Print #2, LaLigne
        Loop
        Close #1
        Close #2
        Kill "C:\TonRep\TonFichier.dqy"
        Name "c:\TonRep\TonFichierCorrigé.txt" As "C:\TonRep\TonFichier.dqy"
    End Sub

  4. #24
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut
    De rien, et désolé de n'avoir pu t'aider plus!

  5. #25
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    De rien, et désolé de n'avoir pu t'aider plus!
    C'est déjà Nickel comme cela. merci encore.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Ouvrir un fichier texte sur UltraEdit via VBA
    Par mah.ngaz dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 19/04/2013, 16h49
  2. Comment en VBA modifier un fichier texte sans l'ouvrir dans Excel ?
    Par shadok6 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 31/10/2008, 13h54
  3. Réponses: 6
    Dernier message: 25/08/2008, 13h36
  4. Réponses: 1
    Dernier message: 25/08/2008, 11h57
  5. comment utiliser Notepad pour modifier un fichier texte?
    Par moon13_698 dans le forum Autres Logiciels
    Réponses: 7
    Dernier message: 06/05/2006, 15h41

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