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

Bij opslaan als text via macro veranderd Euroteken in Dollarteken

Status
Niet open voor verdere reacties.

Arvear

Nieuwe gebruiker
Lid geworden
10 jan 2017
Berichten
4
Goedemiddag,

Als "groentje" hier op het forum heb ik de volgende vraag:

Voor het factureren uit een ledenbestand in Excel wil ik het opslaan als een tekst bestand.
In dit bestand staat tekst velden, valuta velden en getal velden.

Hiervoor gebruik ik opslaan als tekstbestand (tab gescheiden).
Als je het tekst bestand dan bekijkt dan staan er netjes de € tekens en de komma’s.
Het tekstbestand wordt gekoppeld met Word d.m.v. verzendlijsten, ook dat gaat goed.

Omdat het bestand door anderen gebruikt gaat worden wilde ik e.e.a. automatiseren d.m.v. een macro.
Dus het opslaan als uit voeren door een macro en het tekst bestand overschrijven.

Hiervoor heb ik een macro gevonden op de website van Ron de Bruin, deze macro iets aangepast en het opslaan gaat goed.
Maar het vreemde is dat als je nu in het tekst bestand kijkt de € tekens veranderd zijn in $ tekens en de komma’s punten zijn geworden.
In de gemaakte facturen in Word komen nu ook $ en punten te staan.

De notatie voor getallen en valuta staan goed ingesteld
Ik begrijp hier niets van, iemand een idee wat hier aan de hand zou kunnen zijn?

Er zijn 2 voorbeelden bijgevoegd.

Alvast bedankt

RvR
 

Bijlagen

  • export $.PNG
    export $.PNG
    17,4 KB · Weergaven: 55
  • export Euro.PNG
    export Euro.PNG
    17,3 KB · Weergaven: 53
Mooie foto's, maar enkel van pas in een fotoforum.
 
Code:
Hierbij de code die nu in de testversie staat en waarbij de $ en punten verschijnen.


Sub opslaan()

On Error Resume Next

Application.DisplayAlerts = False

'Working in Excel 97-2016
    Dim FileExtStr As String
    Dim FileFormatNum As Long
    Dim Sourcewb As Workbook
    Dim Destwb As Workbook
    Dim TempFilePath As String
    Dim TempFileName As String

    With Application
        .ScreenUpdating = False
        .EnableEvents = False
    End With

    Set Sourcewb = ActiveWorkbook

    'Copy the sheet to a new workbook
    ActiveSheet.Copy
    
   Set Destwb = ActiveWorkbook

    'Determine the Excel version and file extension/format
    With Destwb
        If Val(Application.Version) < 12 Then
            'You use Excel 97-2003
           FileExtStr = ".txt": FileFormatNum = -4158
            'FileExtStr = ".xls": FileFormatNum = -4143
        Else
            'You use Excel 2007-2016
            
            FileExtStr = ".txt": FileFormatNum = -4158
                
            End If
    End With

    '    'Change all cells in the worksheet to values if you want
    '    With Destwb.Sheets(1).UsedRange
    '        .Cells.Copy
    '        .Cells.PasteSpecial xlPasteValues
    '        .Cells(1).Select
    '    End With
    '    Application.CutCopyMode = False

    'Save the new workbook and close it
    TempFilePath = Application.DefaultFilePath & ""
    TempFileName = "Export" & " "
    'TempFileName = "Part of " & Sourcewb.Name & " " & Format(Now, "yyyy-mm-dd hh-mm-ss")

    With Destwb
        .saveas TempFilePath & TempFileName & FileExtStr, FileFormat:=FileFormatNum
        .Close SaveChanges:=False
    End With

    MsgBox "Export bestand is vervangen en staat in " & TempFilePath

    With Application
        .ScreenUpdating = True
        .EnableEvents = True
    End With
    
    Application.DisplayAlerts = True
    
    '' Run ("FnOpeneWordDoc")
    
End Sub
 
Laatst bewerkt:
Er zal wel iets mis zijn met
FileFormatNum

Ik denk dat dat 56 moet zijn maar ben niet zeker.
 
Doe dit eens:
Code:
.saveas TempFilePath & TempFileName & FileExtStr, FileFormat:=FileFormatNum[COLOR="#FF0000"], Local:=True[/COLOR]
 
Ik heb de onderstaande instructie gevolgd zoals die te vinden was op de site.

If you always want to save in a certain format you can replace this part of the macro:

Code:
Select Case Sourcewb.FileFormat
                Case 51: FileExtStr = ".xlsx": FileFormatNum = 51
                Case 52:
                    If .HasVBProject Then
                        FileExtStr = ".xlsm": FileFormatNum = 52
                    Else
                        FileExtStr = ".xlsx": FileFormatNum = 51
                    End If
                Case 56: FileExtStr = ".xls": FileFormatNum = 56
                Case Else: FileExtStr = ".xlsb": FileFormatNum = 50
                End Select

With one of the one liners from this list

FileExtStr = ".xlsb": FileFormatNum = 50
FileExtStr = ".xlsx": FileFormatNum = 51
FileExtStr = ".xlsm": FileFormatNum = 52


Or maybe you want to save the one worksheet workbook to csv, txt or prn.
(you can use this also if you run the code in Excel 97-2003)

FileExtStr = ".csv": FileFormatNum = 6
FileExtStr = ".txt": FileFormatNum = -4158
FileExtStr = ".prn": FileFormatNum = 36

In mijn geval heb ik FileExtStr = ".txt": FileFormatNum = -4158 gebruikt.

De andere FileFormatNum heb ik ook geprobeerd maar dan komt er een ratjetoe aan tekens te staan.
 
Dit forum kan voor mij al niet meer stuk.

De oplossing van Edmoor werkt, je moet er maar op komen :)

Bedankt voor jullie hulp!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan