Avatar billede aawind Nybegynder
29. august 2007 - 12:11 Der er 7 kommentarer og
2 løsninger

At gemme data i CSV fil samt at kunne gøre det af flere omgange.

Jeg har nedenfor en makro hvor man kan gemme filtrerede data fra et regneark til en CSV fil som jeg så senere bruger som import i Navision C5 program.

CSV-fil indeholder:
Varenummer, antal, længde, bredde.

ØNSKE:
Jeg vil gerne kunne lægge flere "resultat data" ind i CSV filen "i flere omgange"!
Formål:
At kunne få en stor CSV fil frem for flere små til import i C5.

Private Sub CommandButton1_Click()
' GEMMER FIL
'Validerer om der tastes filnavn !
    If TextBox1 = "" Then
        MsgBox "Skriv/indtast venligst sti og filnavn !"
        TextBox1.SetFocus
        Exit Sub
    End If
'Fjern tomme linier
    Sheets("1").Select
    Range("a1").Select
    Range("A20:AM2000").Select
    Selection.AutoFilter
    Selection.AutoFilter Field:=6, Criteria1:=">0", Operator:=xlAnd
    Range("A3").Select 
  Worksheets("1").Range("A1:AM2000").Copy

Dim wbSamleListe As Workbook
Set wbSamleListe = Workbooks.Add 
  With wbSamleListe
 
  Range("A1").PasteSpecial Paste:=xlValues
      ActiveWindow.Zoom = 65                   
  Range("A1").Select 
  Rows("1:20").Select
  Selection.Delete Shift:=xlUp
  Range("A1").Select 
  Range("A:AC").Select
  Selection.Delete Shift:=xlToLeft 
      Columns("A:A").ColumnWidth = 15
      Columns("B:B").ColumnWidth = 19
      Columns("C:C").ColumnWidth = 15
      Columns("D:D").ColumnWidth = 23   
    Columns("B:B").Select
    Selection.NumberFormat = "0" 
    Columns("C:C").Select
    Selection.NumberFormat = "0"     
    Range("A1").Select

wbSamleListe.SaveAs Filename:=TextBox1.Text, FileFormat:=xlCSV

End With

wbSamleListe.Close
MsgBox "Filen er nu oprettet og lukket i " & TextBox1.Text & ".CSV !"

Unload Me
    Selection.AutoFilter
    Range("a1").Select
    Sheets("Input (4)").Select
End Sub
29. august 2007 - 13:49 #1
Man kan jo lave noget kode, som checker om der findes en CSV fil se f.eks. mit eksempel her http://www.smartoffice.dk/Tips/LibrarySource.asp?App=Shared&Lib=FileOrFolderExists og hvis filen findes, så åbne den og paste data ind.
Avatar billede tutsi Nybegynder
29. august 2007 - 18:46 #2
Tror ikke problemet ligge i Excel, men i Navision. Arbejder selv i Navision Stat, og vi opererer med to forskellige kladdetyper i Navision, alt efter hvor mange data vi ønsker, der skal indlæses i kladden fra CSV-filerne.

I den store kan du operere med 18 kolonner og den hedder udvidet ILO indlæsning i STAT-udgaven, ved desværre ikke hvor meget opbygningen er lig med C5'eren
Avatar billede aawind Nybegynder
29. august 2007 - 20:58 #3
Jeg har ikke problemer med at få CSV fil ind i C5.

Det er at gemme i den samme CSV fil i flere omgange fra Excel regnearket via en makro.
mvh og tak for respons.
Avatar billede supertekst Ekspert
30. august 2007 - 00:10 #4
En anden mulighed er at skrive direkte til en CSV-fil - som åbnes "for Append". Sålænge indholdet i Textbox1 ikke ændres - vil et nyt indhold blive tilføjet til CSV-filen. I koden er dette illustreret - din filtrering m.v. er ikke med:

Const sti = "C:\Documents and Settings\pb\Skrivebord\2908CSVxls\"
Const textbox1 = "Fil1"
Private Sub CommandButton1_Click()
Dim ræk, kol, linie, antalKol
On Error GoTo luk

    ActiveWorkbook.Sheets("1").Activate
    Open sti + textbox1 + ".csv" For Append As #1
    With ActiveSheet
        antalKol = ActiveCell.SpecialCells(xlLastCell).Column
       
        For ræk = 2 To 65000                        'start med række 2 hvis overskrift
            linie = ""
            For kol = 1 To antalKol
                If .Cells(ræk, 1) = "" Then
                    Exit For
                End If
                If kol <> antalKol Then
                    linie = linie + CStr(.Cells(ræk, kol)) + ";"
                Else
                    linie = linie + CStr(.Cells(ræk, kol))
                    Print #1, linie
                End If
            Next kol
        Next ræk
    End With
   
luk:
    Close #1
End Sub

Er du interesseret kan du få min fil - send en mail til: pb@supertekst-it.dk
Avatar billede aawind Nybegynder
30. august 2007 - 09:18 #5
Tak for input.
De 2 første linier, hvor skal de placeres?
Avatar billede supertekst Ekspert
30. august 2007 - 09:45 #6
Const sti = "C:\Documents and Settings\pb\Skrivebord\2908CSVxls\"
Const textbox1 = "Fil1"

Disse linier skal du ikke anvende - er kun med i min model:
sti: der hvor csv-filen gemmes (altså i min test-mappe)
textbox: erstatning for din "rigtige" textbox
Avatar billede aawind Nybegynder
31. august 2007 - 10:48 #7
Hej Supertekst.
Tak for koden, det ser lovende ud.
Hvis du sender et svar skal du få dine points.
mvh
Avatar billede supertekst Ekspert
31. august 2007 - 10:57 #8
Hej aawind - selvtak & et svar
Avatar billede supertekst Ekspert
31. august 2007 - 11:15 #9
PS: version 1 er afsendt...
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester