VBA - Sauter les ligne commençant par...

Résolu
dhaze Messages postés 113 Date d'inscription   Statut Membre Dernière intervention   -  
dhaze Messages postés 113 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,

J'ai un soucis, avec cette macro j'exporte certaines cellules (ici, y'en a qu'une pour simplifier) de mon tableau au format texte.

Sauf, que je voudrais qu'elle saute les lignes où la première cellule commence par exemple par "#".

'**********************************************************************************
'   Création d'une liste au format texte sur le serveur
'**********************************************************************************

    Dim Creation, Fichier_Liste As Object
    Dim Chemin_Liste, Ligne, Liste As String

        Chemin_Liste = "\\serveur\listes\liste.txt"
        
        Set Creation = CreateObject("Scripting.FileSystemObject")
        Set Fichier_Liste = Creation.CreateTextFile(Chemin_Liste, True)
        
    Ligne = 2

        While Not IsEmpty(Cells(Ligne, 1))
            Liste = Liste & "Ligne 1:" & Cells(Ligne, 1) & vbCrLf
            Ligne = Ligne + 1
        Wend
    
    Fichier_Liste.Writeline Liste
    Fichier_Liste.Close


Merci pour votre petit coup de pouce ;-)
Bonne soirée.
Lo.

2 réponses

  1. dhaze Messages postés 113 Date d'inscription   Statut Membre Dernière intervention  
     
    Je suis finalement arrivée à cela :

    Sub Creation_Fichier_Liste()
        
    '**********************************************************************************
    '   Création d'une liste au format texte sur le serveur
    '**********************************************************************************
        
        Dim Creation, Fichier_Liste As Object
        Dim Chemin_Liste, Ligne, Liste As String
        
            Chemin_Liste = "\\serveur\listes\liste.txt"
            
            Set Creation = CreateObject("Scripting.FileSystemObject")
            Set Fichier_Liste = Creation.CreateTextFile(Chemin_Liste, True)
        
        Ligne = 2
        
            While Not IsEmpty(Cells(Ligne, 1))
                If Cells(Ligne, 1).Value = "#" Then
                    Ligne = Ligne + 1
                Else
                    Liste = Liste & "Ligne 1:" & Cells(Ligne, 1) & vbCrLf
                    Ligne = Ligne + 1
                End If
            Wend
        
        Fichier_Liste.Writeline Liste
        Fichier_Liste.Close
        
    End Sub


    Ca semble fonctionner...
    Trouvez-vous la syntaxe orthodoxe ?

    Bonne nuit.
    Lo.
    0
  2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

    Tu peux faire un poil plus court mais tant que tu obtiens ce qui est voulu...
    Par contre tu disais "sauter lignes qui commencent par #" :
        While Not IsEmpty(Cells(Ligne, 1))
            If Left(Cells(Ligne, 1).Value, 1) <> "#" Then
                Liste = Liste & "Ligne 1:" & Cells(Ligne, 1) & vbCrLf
            End If
            Ligne = Ligne + 1
        Wend

    eric

    0
    1. dhaze Messages postés 113 Date d'inscription   Statut Membre Dernière intervention  
       
      Oui, tu as raison, j'ai dit commençant...
      Toujours cet approximation qui m'habite ;-)

      Merci pour la simplification.

      Lo.
      0