Men mit økonomisystem kan kun lide semikolon, som seperator. Jeg har set at BAK tidligere har givet et svar med omdannelse fra komma til semikolon. Denne løsning er lavet med dialogboks omkring områdedefinition og gemme-funktionen.
Men den laver også følgende rækker i filen: "01-01-2005","9011","1011","10110",
Hvor jeg har behov for følgende: 01-01-2005;9011;1011;10110;
Håber, at der er en der kan hjælpe! På forhånd tak.
Her skrives godt nok komma, men det kan jo rimeligt let rettes til semikolon i koden. Funktionen sætter vist også anførselstegn omkring, men de kan også rimleigt let fjernes fra koden. Det lyder som lidt af det du skriver. Kan du ikke kopiere den kode du har brugt herind, så kan jeg måske rette i den, så du får det du ønsker.
Hvis jeg har fundet den rigtige funktion, så er der lige to ting du skal gøre. Først skal separatortegnet ændres til semikolon. Det gøres ved at ændre linien
Const Delim As String = "," 'afgrænser (delimiter)
til
Const Delim As String = ";" 'afgrænser (delimiter)
Det næste er at fjerne alle anførselstegn. Dette gøres ved at ændre
Tak. Jeg kikker på det. Håber at jeg kan få det til at fungere.
Jeg havde håbet, at den simple funktion: 'ActiveWorkbook.SaveAs Filename:=Filnavn2, FileFormat:=xlCSV, CreateBackup:=False' blot skulle have et anden betegnelse for: FileFormat (således at den skiftede fra , til ;)
Jeg har ikke behov for inputbokse, særskilt område definering, idet det altid er hele arket der skal gemmes. (Der anvendes dog kun 16 kolonner og 600 rækker)
Arbejder du på en PC med engelsk opsætning? På min bliver CSV filer automatisk gemt som semikolon-separerede.
Du kan ændre indstillingen via Kontrolpanel - Internationale og sproglige indstillinger. Så kan du f.eks. vælge danske indstillinger - Eller gå ind i tilpas og vælg semikolon som listeseparator.
Hej. Jeg kan desværre ikke ændre på opsætningen. Den er dansk i overfladen. Opsætningen er centralt defineret.
Jeg har forsøgt mig med efterfølgende kode. Jeg har fået den til at virke. Fjernet dialogboks med Sti og navn. Kunne godt tænke mig, at fjerne boks med områdedefinering (Altså at makroen selv fandt ud af hvor mange rækker den skal igennem - den skal kun igennem 16 kolonner):
Sub Eksport() Const Delim As String = ";" Dim y As Long Dim x As Long Dim strTemp As String Dim lRows As Long Dim lCols As Long Dim lFno As Long Dim CSVFilename As String Dim rngOmr As Range
Set rngOmr = Application.InputBox("Marker området der skal eksporteres :", "Marker Område", , , , , , 8) CSVFilename = "" & Range("Sti").Value & "Navn-afd" & Range("EjendomsNr").Value & ".csv"
lFno = FreeFile lRows = rngOmr.Rows.Count lCols = rngOmr.Columns.Count Open CSVFilename For Output As #lFno
For x = 1 To lRows strTemp = "" For y = 1 To lCols strTemp = strTemp & rngOmr(x, y).Text If y < lCols Then strTemp = strTemp & Delim Else Print #lFno, strTemp End If Next
Prøv at se lidt på denne her (husk at rette filnavn!)
Sub Eksport()
Const Delim As String = ";" Dim y As Long Dim x As Long Dim strTemp As String Dim lRows As Long Dim lCols As Long Dim lFno As Long Dim CSVFilename As String Dim rngOmr As Range
CSVFilename = "CSV-Test.csv"
lFno = FreeFile lRows = ActiveSheet.Cells.Find(What:="*", After:=ActiveSheet.Range("A1"), _ Lookat:=xlPart, LookIn:=xlFormulas, SearchOrder:=xlByRows, _ SearchDirection:=xlPrevious, MatchCase:=False).Row lCols = ActiveSheet.Cells.Find(What:="*", After:=ActiveSheet.Range("A1"), _ Lookat:=xlPart, LookIn:=xlFormulas, SearchOrder:=xlByColumns, _ SearchDirection:=xlPrevious, MatchCase:=False).Column Set rngOmr = Range(Cells(1, 1), Cells(lRows, lCols)) Open CSVFilename For Output As #lFno For x = 1 To lRows strTemp = "" For y = 1 To lCols strTemp = strTemp & rngOmr(x, y).Text If y < lCols Then strTemp = strTemp & Delim Else Print #lFno, strTemp End If Next
Det var godt. Det var en ret sej fødsel at finde funktionen, der finder den sidste celle med tekst i for alle rækker og kolonner. Men jeg tror trods alt det lykkedes. :0)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.