Copier coller des blocs avec notepade+

dominique -  
cs_Le Pivert Messages postés 8437 Statut Contributeur -
Bonjour
Je voudrais copier un bloc comprenant janvier de la balise <Placemark> à </Placemark>

<Placemark>
<name>calendrier</name>
<snippet> </snippet>
<Snippet maxLines="0"></Snippet>
<description>janvier</description>
<styleUrl>#Default_point_style</styleUrl>
<Point>
<coordinates></coordinates>
</Point>
</Placemark>
<Placemark>
<name>calendrier</name>
<snippet> </snippet>
<Snippet maxLines="0"></Snippet>
<description> février</description>
<styleUrl>#Default_point_style</styleUrl>
<Point>
<coordinates> </coordinates>
</Point>
</Placemark>
<Placemark>
<name>calendrier</name>
<snippet></snippet>
<Snippet maxLines="0"></Snippet>
<description>mars </description>
<styleUrl>#Default_point_style</styleUrl>
<Point>
<coordinates> </coordinates>
</Point>
</Placemark>
<Placemark>
<name>calendrier</name>
<snippet></snippet>
<Snippet maxLines="0"></Snippet>
<description>avril</description>
<styleUrl>#Default_point_style</styleUrl>
<Point>
<coordinates> </coordinates>
</Point>
</Placemark>

2 réponses

  1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Bonjour,

    En vba, importer le texte dans une colonne d'un classeur. Ensuite chercher le nom et copier la plage de cellule et la coller dans ce même classeur:

    Option Explicit
    'importer fichier texte
    Private Sub CommandButton1_Click()
    ImportText "C:\Users\....\Documents\monfichier.txt", Range("B1") 'adapter le chemin du fichier txt et la colonne
    End Sub
    'rechercher le mot et copier coller la plage
    Private Sub CommandButton2_Click()
    aller_mot ("<description>janvier</description> ")
    End Sub
    Public Sub aller_mot(mot_a_trouver As String)
    Dim ma_feuille, col_no, lg_no, flag_trouve
        Application.ScreenUpdating = False   ' pour aller plus vite
        Set ma_feuille = ThisWorkbook.Sheets("Feuil1")
        col_no = 2 ' pour la colonne B (B = 2)
        lg_no = 1  ' à partir de la première ligne
        flag_trouve = False
        Do While Not IsEmpty(ma_feuille.Cells(lg_no, col_no))
            If (ma_feuille.Cells(lg_no, col_no).Value = mot_a_trouver) Then
               ma_feuille.Cells(lg_no, col_no).Select
           Range("B" & lg_no - 4 & ":B" & lg_no + 5).Copy
            Range("I1").Select 'adapter
        ActiveSheet.Paste ' coller
        flag_trouve = True
               Exit Do
            End If
            lg_no = lg_no + 1
        Loop
        If (flag_trouve = False) Then
           MsgBox ("Mot " & mot_a_trouver & " non trouvé !")
        End If
        Application.ScreenUpdating = True   ' Remet le comportement initial
    End Sub
    Sub ImportText(FileName As String, PosImport As Range)
        Dim QT As QueryTable
        Set QT = ActiveSheet.QueryTables.Add(Connection:="TEXT;" & FileName, Destination:=PosImport)
        With QT
            .TextFileSemicolonDelimiter = True
            .TextFileTextQualifier = xlTextQualifierDoubleQuote
            .Refresh
        End With
    End Sub
    


    0
    1. dominique2410
       
      pour moi cela ne fonctionne pas avec un message erreur de compilation, merci quand méme
      0
  2. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Voilà un exemple:

    http://www.cjoint.com/c/FBcq3qGK6IQ
    0