txt

Status
Niet open voor verdere reacties.

PPSBraun

Gebruiker
Lid geworden
18 jan 2006
Berichten
21
Is het mogelijk middels VBA code in excel, een variabele range met waarden toe te voegen (als een nieuwe regel) aan een bestaand txt bestand. Ik weet dat het gaat middels knippen en plakken, maar dat is hier niet de bedoeling. Middels een message box moet een bepaalde range opgegeven kunnen worden. Wie kan mij helpen.

gr
Paul
 
Hoi PPSBraun,

Bedoel je zoiets.

Code:
Sub Append2File()

Dim a As String
Dim FileName As String
Dim Rng As Range
Dim r As Range

FileName = "c:\test.txt"

a = InputBox("Welke range wilt u toevoegen aan het bestand? (Bijvoorbeeld A1:C1)", "Range")
If a <> "" Then
    Range(a).Select
    Open FileName For Append As #1
    For Each r In Selection
        Print #1, r.Text
    Next
    Close #1
End If
'
End Sub

Suc6
 
Arno,

hartstikke goed!
De waarden worden nu weggeschreven en "ge-append" in een txt file. Maar.....hoe kan ik er nu voor zorgen, dat de reeks met waarden als een regel wordt weggeschreven in de txt file? Nu worden alle gevonden waarden als afzonderlijke regels weggeschreven. Bijvoorbeeld; de reeks a1:c1 bevat 3 waarden. Deze komen nu op 3 verschillende regels te staan in het txt bestand. Het is eigenlijk de bedoeling, dat de 3 gevonden waarden op dezelfde regel worden weggeschreven in het txt bestand.

gr
Paul
 
Hoi PPSBraun,

Zo iets beter :)

Code:
Sub Append2File()

Dim a As String
Dim FileName As String
Dim r As Range
Dim Row As Integer
Dim PrintRegel As String

FileName = "c:\test.txt"

a = InputBox("Welke range wilt u toevoegen aan het bestand? (Bijvoorbeeld A1:C1)", "Range")
If a <> "" Then
    Range(a).Select
    Open FileName For Append As #1
    For Each r In Selection
        If Row = 0 Then Row = r.Row ' De eerste keer de variable Row vullen met de huidige rij
        If Row <> r.Row Then ' Als Variable Row niet gelijk is aan r.Row dan is dit een nieuwe rij
            Print #1, RTrim(PrintRegel)
            PrintRegel = ""
            Row = r.Row ' Zorgen dat variable Row weer de huidige rij wordt
        End If
        If r.Text <> "" Then PrintRegel = PrintRegel & r.Text & " " ' Als de cel niet leeg is dan de variable PrintRegel verder vullen met gegevens
    Next
    Print #1, RTrim(PrintRegel) ' Zorgen dat de laatste regel ook wordt geprint
    Close #1
End If
'
End Sub

Suc6
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan