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

Résolu
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. 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
    1. Contributeur
      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. Oui, tu as raison, j'ai dit commençant...
        Toujours cet approximation qui m'habite ;-)

        Merci pour la simplification.

        Lo.
        0