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

XLS bestandnaam aanpassen voor opslaan naar CSV

Status
Niet open voor verdere reacties.

JANHooyman

Gebruiker
Lid geworden
8 okt 2021
Berichten
49
Hallo,

Een vraagje voor de experts.

Is het mogelijk om nadat onderstaande code is uitgevoerd, (openen bestand, aanpassen tekst en breedte) daarna het bestand op te slaan in een CSV (MS DOS) bestand na aanpassing van de bestandsnaam dmv invoer toetsenbord.
De basis bestand ACOB_asfalt_00_2022.xls moet elke keer aangepast worden ivm andere weeknummers bv. ACOB_asfalt_11_2022.xls
Dus na aanpassing van het weeknummer gevolg door enter, moet hij hem opslaan in een CSV bestand en afsluiten.

Alvast bedankt,
Ik speur ondertussen nog verder.

Jan


Sub MetaCom_Asfalt()
'
' MetaCom_Asfalt Macro
'

'
Workbooks.Open Filename:= _
"C:\Users\jan\Documents\ACOB weegdata\MetaCom weegdata\CSV bestanden\ACOB_asfalt_00_2022.xls"
Cells.Select
Application.CutCopyMode = False
With Selection.Font
.Name = "Calibri"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = 1
.TintAndShade = 0
.ThemeFont = xlThemeFontMinor
End With
Selection.Columns.AutoFit
Range("A1").Select
End Sub
 
Plaats een voorbeeld document.
Gebruik ook codetags als je code plaatst.
 
Klik op de link in mijn handtekening voor uitleg van o.a. het gebruik van codetags.

Test dit eens, dan is ook meteen je weeknummer geregeld:
Code:
Sub MetaCom_Asfalt()
    Pad = "C:\Users\jan\Documents\ACOB weegdata\MetaCom weegdata\CSV bestanden"
    Workbooks.Open Filename:=Pad & "\ACOB_asfalt_00_2022.xls"
    Cells.Select
    Application.CutCopyMode = False
    
    With Selection.Font
        .Name = "Calibri"
        .Size = 10
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = 1
        .TintAndShade = 0
        .ThemeFont = xlThemeFontMinor
    End With
    Selection.Columns.AutoFit
    Range("A1").Select

    ActiveWorkbook.SaveAs Pad & "\" & Bestand & ".csv", xlCSV, , , , , , , , , , True
    ActiveWorkbook.Close False
    ThisWorkbook.SaveAs Pad & "\" & "ACOB_asfalt_" & Format(DatePart("ww", Date - Weekday(Date, 2) + 4, 2, 2), "0#") & "_2022.xls"
End Sub
 
Laatst bewerkt:
Edmoor,

Code tags die groene teksten dus...

De code werkt.
Alleen moet ik de hele bestandsnaam typen, het zou fijn zijn als de originele bestandsnaam tevoorschijn komt en dat ik alleen het weeknummer hoef aan te passen.

Jan
 
Kijk naar m'n laatste aanpassing in #4.

Zie ook hoe mijn code eruit ziet hier.
Dat is het effect van het gebruik van codetags.
 
Laatst bewerkt:
Ale je een excel-bestand als CSV opslaat is iedere wijziging van de opmaak zinloos/overbodig.
 
Laatst bewerkt:
Edmoor,

Het hele bestandsnaam moet getypt worden, eigenlijk was het de bedoeling dat de originele bestandsnaam voor de dag komt en dan even de weeknr aanpassen.

Jan
 

Bijlagen

  • opslaan als.JPG
    opslaan als.JPG
    151,5 KB · Weergaven: 10
Je hebt niet de code uit #4 gebruikt.
Je hoeft helemaal niks in te tikken.

Met het advies van snb is dat:
Code:
Sub MetaCom_Asfalt()
    Pad = "C:\Users\jan\Documents\ACOB weegdata\MetaCom weegdata\CSV bestanden"
    Workbooks.Open(Pad & "\ACOB_asfalt_00_2022.xls").Sheets(1).Cells.Style = "Normal"
    Selection.Columns.AutoFit
    Range("A1").Select

    ActiveWorkbook.SaveAs Pad & "\" & Bestand & ".csv", xlCSV, , , , , , , , , , True
    ActiveWorkbook.Close False
    ThisWorkbook.SaveAs Pad & "\" & "ACOB_asfalt_" & Format(DatePart("ww", Date - Weekday(Date, 2) + 4, 2, 2), "0#") & "_2022.xls"
End Sub
 
Laatst bewerkt:
In een database maak je geen aparte bestanden/werkbladen voor afzonderlijke weken, maar filter je de week waarmee je wil werken.
 
Edmoor,

Al 3 keer de code uit #4 gehaald en getest, maar met alleen een weeknr typen kom ik er niet er gebeurt iets vreemds.
Als ik een weeknr invul in de berichtenbox maakt hij daar een CSV bestand van met alleen het weeknr.

Maar vreemd genoeg maakt hij van het bovenste bestand in de map een kopie.
dus waar het mis gaat,ik weet het niet.Bekijk bijlage 363321
 
Excuus.
Ik heb er een regel teveel in laten staan zie ik net.
Nu verwijderd.

Maar gebruik #9.
 
Laatst bewerkt:
In een database maak je geen aparte bestanden/werkbladen voor afzonderlijke weken, maar filter je de week waarmee je wil werken.

snb,

Hierbij een uitleg.
via Crystal Reports haal ik gegevens uit een externe database.
Daarmee maak ik 2 xls bestanden met verschillende bestandsnamen.
Daarna moet het bestand omgezet worden naar een CSV bestand met de juiste benaming (het weeknummer en jaartal) dat bestand wordt weer ingelezen door een facturerings programma.
Dit is elke week weer opnieuw.
Misschien dat het nu duidelijker is, het is omslachtig maar ik heb het ook niet verzonnen.
 
Excuus.
Ik heb er een regel teveel in laten staan zie ik net.
Nu verwijderd.

Maar gebruik #9.

Gedaan Edmoor,
Maar het blijft mis gaan.
Als ik de code start komt de box, vul ik niets maar oke, komt een foutmelding.
Vul ik alleen een weeknr in wordt er een csv bestand gemaakt met als bestandsnaam het weeknr.
Maar tegelijkertijd maakt hij het bestand(een menu waar meerder macro's in staan om div bestanden te openen) hiervan maakt hij een kopie met dezelfde naam als een csv bestand dat al in de map staat.
Heel vreemd
Jan
opslaan als.JPGfout-1.JPG
 
Laatst bewerkt:
Jeetje, daar zat diezelfde regel ook nog in :o
M'n bril gepoetst nu ;)
Gebruik de gewijzigde #9 of haal gewoon die regel met Inputbox eruit.
 
Je bijlage doet het niet.
Klik op Ga geavanceerd en gebruik daar de paperclip.
 
Edmoor,

Deze regel geeft de foutmelding.

ActiveWorkbook.SaveAs Pad & "" & Bestand & ".csv", xlCSV, , , , , , , , , , True

Jan
 
Zie je dat nu de backslash tekens wegvallen als je geen codetags gebruikt?

Test deze eens:
Code:
Sub MetaCom_Asfalt()
    Pad = "C:\Users\jan\Documents\ACOB weegdata\MetaCom weegdata\CSV bestanden"
    Workbooks.Open(Pad & "\ACOB_asfalt_00_2022.xls").Sheets(1).Cells.Style = "Normal"
    Selection.Columns.AutoFit
    Range("A1").Select

    ActiveWorkbook.SaveAs Pad & "\" & Replace(ThisWorkbook.Name, ".xls", ".csv"), xlCSV, , , , , , , , , , True
    ActiveWorkbook.Close False
    ThisWorkbook.SaveAs Pad & "\" & "ACOB_asfalt_" & Format(DatePart("ww", Date - Weekday(Date, 2) + 4, 2, 2), "0#") & "_2022.xls"
End Sub
 
Edmoor,

Er blijft iets vreemds gebeuren.
Het bestand waar de code in staat (menu) krijgt de bestandsnaam ACOB_asfalt_09_2022.xls
En het originele bestand ACOB_asfalt_00_2022 wordt omgezet naar een CSV bestand met de juiste gegevens maar met de bestandsnaam MENU.
Hoe vreemd is dat.
Dus het werkt wel alleen gaat het mis met de bestandsnamen.
Als ik het goed begrijp wordt de weeknummer automatisch aangepast naar de op dit moment geldende weeknummer.
Maar als ik op dinsdag de gegevens van vorige week wil bewaren dan krijg ik dus week 10, dan gaat dat mis.
Dus een handmatige invoer van de juiste weeknummer zou dit voorkomen.
Jan
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan