• 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.

export/import probleem

Status
Niet open voor verdere reacties.

sjakiezwart

Gebruiker
Lid geworden
25 aug 2009
Berichten
9
Dag allemaaal. Mijn eerste vraag als vers lid op dit forum!
Ik heb een excel bestand, met in de eerste kolom ruim 100 emailadressen. Er staan achter de emailadressen geen scheidingstekens.
Dit bestand wil ik importeren in een mailinglijstprogramma op mijn website (die dus bij de import vraagt om een CSV bestand, of een txt bestand met delimiter).
Hoe zet ik het excel bestand op de juiste wijze om in een CSV bestand of txt bestand met scheidingsteken???
(gewoon vanuit excel opslaan als CSV bestand, dan geeft het mailingprogramma bij de import een foutmelding).
Graag jullie hulp of adviezen

gr
 
Beste sjakiezwart ;)

Heb je de zoekfunctie van het forum al bekeken.

Typ daar eens CSV bestand

Groetjes Danny. :thumb:
 
ik krijg hetecht nietgevonden

Heb het forum doorzocht op CSV bestand maar het lukt me echt niet. Ik ben niet zo supper goed met macro's en vba en dat soort zaken. Maar zou het niet eenvoudiger kunnen?Ik wil het nogmaals uitleggen:

Ik heb een tekstbestand. Hierin staan onder elkaar in een rijtje emailadressen. Na ieder emailadres is dus gewoon een enter, en geen scheidingsteken o.i.d. Als ik het tekstbestand importeer in excel, krijg ik mooi alle adressen in de eerste kolom onder elkaar te zien. Wil ik dat vervolgens exporteren/opslaan als csv bestand, dan vraagt hij om het scheidingsteken, maar dat is er toch niet? Als ik dat verder negeer, en het aangemaakte bestand probeer te importeren in mijn mailinglijstmodule in joomla, geeft deze aan dat het CSV bestand niet juist is.
Ra ra politiepet. Hoe kan ik dit oplossen?????
 
Plaats onderstaande code in een standaardmodule
ALT-F11 >> Invoegen >> Module >> code plakken
Code:
Sub tst()
  ThisWorkbook.Sheets(1).[A2:A100].Copy 'wijzig in het juiste bereik
  With Workbooks.Add
    .Sheets(1).Paste
    'wijzig in onderstaande regel naar het juiste pad en plaats in B1
    'in je werkblad de naam die je het tekstbestand wil geven
    .SaveAs "D:\Mijn documenten\" & ThisWorkbook.Sheets(1).[B1] & ".txt", xlTextMSDOS
   End With
  ActiveWorkbook.Close False
End Sub
Ga terug naar je werkblad en druk nu ALT-F8 >> Selecteer de naam v/d macro (tst) en klik op uitvoeren
 
Dank voor wederom een snelle reactie met uitleg die ik ook begrijp. Heb je stappen doorlopen (zie hieronder), en kreeg een nieuw tekstbestand, echter wederom met een spatie als scheiding en geen komma's.

Code:
Sub tst()
  ThisWorkbook.Sheets(1).[A2:F11303].Copy 'wijzig in het juiste bereik
  With Workbooks.Add
    .Sheets(1).Paste
    'wijzig in onderstaande regel naar het juiste pad en plaats in B1
    'in je werkblad de naam die je het tekstbestand wil geven
    .SaveAs "pad naar juiste folder\" & ThisWorkbook.Sheets(1).[B1] & ".txt", xlTextMSDOS
   End With
  ActiveWorkbook.Close False
End Sub

Ik wil je best het bestand via PM doorsturen als je daar wat mee kan. Het gaat in totaal wel om 11000 email adressen...maar wellicht is als voorbeeld 10 adressen voldoende om je te sturen (dit ivm privacy naar deze 11000 geadresseerden).
Het ziet er in het tekstbestand zo uit:
Code:
1	abbonnee	fsfsfsfsf@zonnet.nl	0	0	8/25/2009 23:15
2	abbonnee	sfsdffsfsf@zonnet.nl	0	0	8/25/2009 23:15
3	abbonnee	fsdfsdff@xs4all.nl	0	0	8/25/2009 23:15
4	abbonnee	sfsdfsdfsd@home.nl	0	0	8/25/2009 23:15
5	abbonnee	fsfsf@home.nl	0	0	8/25/2009 23:15
 
Okéé, zelfde handelingen om onderstaande code te plakken en uit te voeren. naam uit te voeren macro DoTheExport
Code:
Sub DoTheExport()
    'Wijzig hieronder eventueel pad en naam
    ExportToTextFile FName:="D:\mijn documenten\Test.txt", Sep:=",", _
       SelectionOnly:=True, AppendData:=False
End Sub

Public Sub ExportToTextFile(FName As String, Sep As String, _
    SelectionOnly As Boolean, AppendData As Boolean)

Dim WholeLine As String, FNum As Integer, RowNdx As Long, ColNdx As Integer
Dim StartRow As Long, EndRow As Long, StartCol As Integer, EndCol As Integer, CellValue As String

Application.ScreenUpdating = False
On Error GoTo EndMacro:
FNum = FreeFile

If SelectionOnly = True Then
    With [B12:G31] 'wijzig hier het bereik
        StartRow = .Cells(1).Row
        StartCol = .Cells(1).Column
        EndRow = .Cells(.Cells.Count).Row
        EndCol = .Cells(.Cells.Count).Column
    End With
Else
    With ActiveSheet.UsedRange
        StartRow = .Cells(1).Row
        StartCol = .Cells(1).Column
        EndRow = .Cells(.Cells.Count).Row
        EndCol = .Cells(.Cells.Count).Column
    End With
End If

If AppendData = True Then
    Open FName For Append Access Write As #FNum
Else
    Open FName For Output Access Write As #FNum
End If

For RowNdx = StartRow To EndRow
    WholeLine = ""
    For ColNdx = StartCol To EndCol
        If Cells(RowNdx, ColNdx).Value = "" Then
            CellValue = Chr(34) & Chr(34)
        Else
           CellValue = Cells(RowNdx, ColNdx).Text
        End If
        WholeLine = WholeLine & CellValue & Sep
    Next ColNdx
    WholeLine = Left(WholeLine, Len(WholeLine) - Len(Sep))
    Print #FNum, WholeLine
Next RowNdx

EndMacro:
On Error GoTo 0
Application.ScreenUpdating = True
Close #FNum

End Sub
 
Laatst bewerkt:
zo dat is snel

Dat is weer snel van de Warme Bakker!
Ik ga dat straks proberen. Ik weet overigens niet zeker of de waarden tussen "en" moeten komen te staan, of is dit al in jouw scriptje/macro verwerkt?
 
Ik heb een tekstbestand. Hierin staan onder elkaar in een rijtje emailadressen.

Als dat bestand een txt bestand is hoef je alleen maar de extensie te wijzigen in csv. Bijv. mailadressen.txt verander je met de Verkenner in mailadressen.csv.
 
Laatst bewerkt:
Okéé, zelfde handelingen om onderstaande code te plakken en uit te voeren. naam uit te voeren macro DoTheExport
Code:
Sub DoTheExport()
    'Wijzig hieronder eventueel pad en naam
    ExportToTextFile FName:="D:\mijn documenten\Test.txt", Sep:=",", _
       SelectionOnly:=True, AppendData:=False
End Sub

Public Sub ExportToTextFile(FName As String, Sep As String, _
    SelectionOnly As Boolean, AppendData As Boolean)

Dim WholeLine As String, FNum As Integer, RowNdx As Long, ColNdx As Integer
Dim StartRow As Long, EndRow As Long, StartCol As Integer, EndCol As Integer, CellValue As String

Application.ScreenUpdating = False
On Error GoTo EndMacro:
FNum = FreeFile

If SelectionOnly = True Then
    With [B12:G31] 'wijzig hier het bereik
        StartRow = .Cells(1).Row
        StartCol = .Cells(1).Column
        EndRow = .Cells(.Cells.Count).Row
        EndCol = .Cells(.Cells.Count).Column
    End With
Else
    With ActiveSheet.UsedRange
        StartRow = .Cells(1).Row
        StartCol = .Cells(1).Column
        EndRow = .Cells(.Cells.Count).Row
        EndCol = .Cells(.Cells.Count).Column
    End With
End If

If AppendData = True Then
    Open FName For Append Access Write As #FNum
Else
    Open FName For Output Access Write As #FNum
End If

For RowNdx = StartRow To EndRow
    WholeLine = ""
    For ColNdx = StartCol To EndCol
        If Cells(RowNdx, ColNdx).Value = "" Then
            CellValue = Chr(34) & Chr(34)
        Else
           CellValue = Cells(RowNdx, ColNdx).Text
        End If
        WholeLine = WholeLine & CellValue & Sep
    Next ColNdx
    WholeLine = Left(WholeLine, Len(WholeLine) - Len(Sep))
    Print #FNum, WholeLine
Next RowNdx

EndMacro:
On Error GoTo 0
Application.ScreenUpdating = True
Close #FNum

End Sub

Okay, zojuist geprobeerd, en krijg nu een mooi tekstbestand met kommagescheiden regels.
Code:
1,abbonnee,blabla@zonnet.nl,0,0,25-8-2009 23:15
2,abbonnee,blahyg@zonnet.nl,0,0,25-8-2009 23:15
3,abbonnee,blablg@xs4all.nl,0,0,25-8-2009 23:15
4,abbonnee,jhuytg@home.nl,0,0,25-8-2009 23:15
Echter importeren in mailinglijstmodule opnieuw mislukt. Kan het nog zijn dat die module de waarden tussen " " wil hebben staan. Dat maak ik op uit het forum van die module (ccNewsletter).
 
Beste Warme Bakkertje,

zou je me nog eenmaal willen helpen? Ik denk namelijk dat er echt alleen nog maar " " om de waarden moeten komen en dat het dan werkt. Ik krijg dat zelf echt niet voor elkaar.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan