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

Résolu/Fermé
dhaze Messages postés 109 Date d'inscription mardi 27 septembre 2011 Statut Membre Dernière intervention 6 février 2020 - Modifié par dhaze le 4/04/2016 à 23:08
dhaze Messages postés 109 Date d'inscription mardi 27 septembre 2011 Statut Membre Dernière intervention 6 février 2020 - 5 avril 2016 à 00:56
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.
A voir également:

2 réponses

dhaze Messages postés 109 Date d'inscription mardi 27 septembre 2011 Statut Membre Dernière intervention 6 février 2020
5 avril 2016 à 00:29
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
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
5 avril 2016 à 00:37
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
dhaze Messages postés 109 Date d'inscription mardi 27 septembre 2011 Statut Membre Dernière intervention 6 février 2020
5 avril 2016 à 00:56
Oui, tu as raison, j'ai dit commençant...
Toujours cet approximation qui m'habite ;-)

Merci pour la simplification.

Lo.
0