Zoeken naar waarden en vervolgens opslaan in txt

Status
Niet open voor verdere reacties.

janjorritsma

Gebruiker
Lid geworden
3 nov 2008
Berichten
22
Beste allen,

Ik heb gezocht om een oplossing voor onderstaande te vinden, maar die heb ik tot nu toe niet kunnen vinden. Hopelijk zie ik nog eens de tijd om mij volledig in VBA te duiken. Ik hoop dat iemand mij een zetje de juiste weg op kan helpen.

Ik zit met het volgende:
Ik heb een Excelbestand met daarin waarden (zie bijlage). Nu wil ik met VBA iets maken dat zoekt en vervolgens een tekst bestand aanmaakt met de zoekwaarden.

Bijvoorbeeld:
In het Excel document staat een regel 24233,3077,"1v1","Klas1","Klas1",,"24233",,,"3077","1v1",,"1" en 24217,3078,"1v2","Klas2","Klas2",,"24217",,,"3078","1v2",,"1". Het is de bedoeling dat gezocht wordt op ‘Klas1’ en op ‘Klas2’. Vervolgens moeten beiden apart opgeslagen worden in een tekst bestand. Het ene tekstbestand heet klas1.txt en de andere klas2.txt.

Hopelijk kan iemand mij een stukje de juiste richting in kan helpen.

Met vriendelijke groet,
JanBekijk bijlage lesgroepen 12-01.xlsxBekijk bijlage lesgroepen 12-01.xlsx
 
Jan,

De macro is redelijk simpel, je hoeft alleen maar de regels te doorlopen en per regel te kijken of het woord "Klas1" voorkomt.
Daarna moet je de regel naar het juiste bestand printen. Hierbij een voorbeeld hoe je zo'n macro maakt:

Code:
Public Sub SchrijfNaarTextBestand()

Dim sRegel As String
Dim nLoper As Long

'Open de bestanden
Open "Klas1.txt" For Output As #1
Open "Klas2.txt" For Output As #2

'Doorloop de A kolom
With Sheets("Lesgroepen 12-01").Range("A1")
    'Ga door zolang deze geen lege cel tegen komt
    Do While .Offset(nLoper, 0) <> ""
        'Als het woord "Klas1" in de regel voorkomt, schrijf dat naar het eerste bestand
        If InStr(1, .Offset(nLoper, 0), "Klas1", vbTextCompare) > 1 Then
            Print #1, .Offset(nLoper, 0)
        'Anders naar het tweede bestand
        Else
            Print #2, .Offset(nLoper, 0)
        End If
        'Ga naar de volgende regel
        nLoper = nLoper + 1
    Loop
End With

Close #2    'Sluit bestand Klas2.txt
Close #1    'Sluit bestand Klas1.txt

MsgBox "Bestand omgezet in twee tekstbestanden, Klas1.txt en Klas2.txt." & vbCrLf & _
        "Te vinden in: " & ActiveWorkbook.Path, vbInformation, "Klaar"
End Sub

Veel Succes.
 
Beste Elsendoorn2134,

Ik ben blij dat het voor jou simpel is. Ik weet wel dat er voor mij nog een lange weg te gaan is om VBA onder de knie te krijgen. De code werkt super! Heel erg bedankt.

Groet,
Jan
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan