• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

zoeken/vervang als hele regel overeenkomt

Status
Niet open voor verdere reacties.

mariannevanh

Terugkerende gebruiker
Lid geworden
14 dec 2004
Berichten
2.142
Enige tijd geleden heb ik via dit forum hulp gekregen van iemand die een macro heeft geschreven om een tekstbestand in te lezen en daarin een zoek-/vervangopdracht uit te voeren.
Die macro gebruik ik nog regelmatig. Nu wil ik er een kleine toevoeging in aanbrengen:
de zoek/vervang-opdracht moet alleen worden uitgevoerd als de HELE regel overeenkomt.
Dus als de regel is:
Code:
Plaats: Amsterdam, Nederland
en ik heb in mijn bestand de regel staan om
Code:
Plaats: Amsterdam
te veranderen in:
Code:
Plaats: Amsterdam, Noord-Holland
dan mag
Code:
Plaats: Amsterdam, Nederland
dus NIET wijzigen.

De macro bevat nu een regel:
Code:
s = Replace(s, a(i, 1), a(i, 2), , , vbTextCompare)
Wellicht moet hier nog een parameter aan worden toegevoegd. Maar welke is dat?

Vriendelijke groet,
Marianne
 
Laatst bewerkt:
Kun je hier een voorbeeld tekst en Excel bestand voor maken? Dan gaat her zeker lukken
 
Laatst bewerkt:
Allereerst geef ik hier de (inmiddels enigszins aangepaste) macro weer:

Code:
Sub Vervang_in_Textfile()

   With CreateObject("scripting.filesystemobject").opentextfile("d:\oud.txt")   'textfile openen
      s = .readall                                              'lezen
      .Close                                                    'sluiten
   End With

   a = Sheets("blad1").Range("A1").CurrentRegion                'je vervangingen
   For i = 1 To UBound(a)                                       '1 na 1 aflopen
      s = Replace(s, a(i, 1), a(i, 2), , , vbTextCompare)       'vervangen, hoofdletterongevoelig
   Next

   With CreateObject("scripting.filesystemobject").createtextfile("d:\nieuw.txt")   'nieuwe textfile
      .Write s                                                  'wegschrijven
      .Close                                                    'sluiten
   End With

End Sub

De rest volgt...
 
Laatst bewerkt:
Even een probeersel zonder voorbeeld, ben benieuwd of het werkt

Code:
Sub jec()
 c00 = "d:\oud.txt"
 ar = Sheets(1).Cells(1).CurrentRegion
   
 With CreateObject("scripting.filesystemobject")
    sp = Split(.opentextfile(c00).readall, vbLf)
     For i = 0 To UBound(sp)
        For j = 1 To UBound(ar)
            If sp(i) = ar(j, 1) Then sp(i) = ar(j, 2)
         Next
     Next
    .createtextfile(c00).Write Join(sp, vbLf)
 End With
End Sub
 
Helaas heeft deze macro niet het beoogde effect gehad. Het resultaat was niet bruikbaar in de vervolgstappen die ik wilde doorlopen
Het originele tekstbestand had ik uiteraard bewaard, dus er is geen schade aangericht.
Inmiddels heb ik de werkwijze over een geheel andere boeg gegooid en is het probleem wel opgelost, maar niet op de gevraagde wijze.
Bedankt voor de bijdragen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan