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 :

Boucle de recherche et suppression donnée dans bloc note [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Février 2013
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2013
    Messages : 64
    Par défaut Boucle de recherche et suppression donnée dans bloc note
    Bonjour à tous.
    Je vous expose mon problème :
    je dois coder un programme sous VBA pour rechercher et supprimer des données récurrentes dans un bloc notes. Je m'explique :
    Mon bloc note contient des lignes (en têtes) récurrents (dans le fichier joint : Jour"n" Séquence"x" Alinéa"y").
    Le paramètre "Alinéa"y"" n'est pas toujours présent sur chaque entête.

    Au final je veux supprimer les paramètres "Jour" et "Séquence" sans supprimer la ligne, et garder le paramètre "Alinéa" si celui-ci est présent.

    Par avance je vous remercie, et je vous joint le dossier
    fichier.txt

  2. #2
    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 re
    bonjour ton exemple n'est pas très représentatif de ton besoin

    en effet
    en première ligne tu a jour.. sequence ..... mais pas alinea alors on fait quoi sur cette ligne

    dans une autre tu a "aliné" on fait quoi avec celle la

    toi tu a essayé quoi comme code?
    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

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Février 2013
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2013
    Messages : 64
    Par défaut
    Justement c'est bien le principe de la manœuvre, sur certaines lignes (en têtes) il y a "Alinéa" et pas sur d'autres.
    Comme je dis plus haut, je veux supprimer "Jour" et "Séquence" sur chaque en-tête et garder "Alinéa" s'il est présent.
    J'utilise une boucle "Do while" qui fonctionne pour enlever "Jour" mais c'est ensuite que je bloque pour identifier les espaces dans bloc notes et garder "Alinéa" s'il est présent.

  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 re
    bonjour j'utilise la methode open de VBA qui ouvre le fichier texte en mémoire
    le reste n'est qu'une boucle for avec 2 if
    if 1 = si il y a jour ou séquence
    if2 imbriqué dans le premier = if like "alinea"
    dans le if2 si il y a alinea donc on coupe a alinea sinon on vide la ligne
    point barre c'est fini

    méthode open vba pour créer et écrire cette fois ci dans un newfichier le résultat obtenu
    adapte le chemin de ton fichier 1 et 2 dans le code
    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
    Sub test1()
        Dim fichier As String, tabl, newtext As String
        Dim lines As String, i As Long, x
     
        fichier = "C:\Users\polux\Downloads\fichier.txt"
        x = FreeFile: Open fichier For Input As #x: lines = Input$(LOF(x), #x): Close #x
        tabl = Split(lines, vbCrLf)
        'Debug.Print lines
        For i = 0 To UBound(tabl)
            If tabl(i) Like "*Jour*" Or tabl(i) Like "*Séquence*" Then
                If tabl(i) Like "*Alinéa*" Then tabl(i) = "Alinéa" & Split(tabl(i), "Alinéa")(1) Else: tabl(i) = ""
            End If
        Next
        newtext = Join(tabl, vbCrLf)
        'Debug.Print newtext
        fichier = "C:\Users\polux\Downloads\fichier2.txt"
        x = FreeFile:    Open fichier For Output As #x: Print #x, newtext: Close #x
    End Sub
    voila pas besoin du blok note
    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
    Membre confirmé
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Février 2013
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2013
    Messages : 64
    Par défaut
    Ecoute ça a l'air de fonctionner, merci à toi !

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

Discussions similaires

  1. [XL-2007] Suppression données dans une colonne par comparaison et conditions
    Par cathodique dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 21/04/2013, 09h29
  2. probleme avec l outil recherche (flux de donnée) dans SSIS
    Par zizu89 dans le forum Alimentation
    Réponses: 0
    Dernier message: 21/07/2011, 19h55
  3. Suppression donnée dans structure
    Par mimic50 dans le forum MATLAB
    Réponses: 6
    Dernier message: 28/10/2008, 20h15
  4. Suppression donnée dans sous-formulaire
    Par Marcopololo dans le forum IHM
    Réponses: 12
    Dernier message: 15/08/2008, 20h38
  5. [SQL] Moteur de recherche problème affichage donnée dans select
    Par vincedjs dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 07/04/2006, 20h27

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