17. april 2008 - 08:21
Der er
15 kommentarer og 1 løsning
Gemme data i to forskellige excelfiler/Sende data til excelfil
Hvordan laver jeg denne kode om så data også gemmes i en anden excelfil f.eks. excel-filen C:\test.xls? Det skal stadigvæk være under arket "Data". ActiveWorkbook.Sheets("Data").Activate Range("A1").Select Do If IsEmpty(ActiveCell) = False Then ActiveCell.Offset(1, 0).Select End If Loop Until IsEmpty(ActiveCell) = True ActiveCell.Value = txtDato.Value ActiveCell.Offset(0, 1) = cboKlok.Value ActiveCell.Offset(0, 2) = cboMaskine.Value ActiveCell.Offset(0, 3) = txtVarenummer.Value ActiveCell.Offset(0, 4) = txtPlade.Value ActiveCell.Offset(0, 5) = txtPladeordre.Value ActiveCell.Offset(0, 6) = txtOrdrenummer.Value ActiveCell.Offset(0, 7) = txtArbejdsnr.Value ActiveCell.Offset(0, 8) = txtArbejdsnr2.Value ActiveCell.Offset(0, 9) = txtEmner.Value ActiveCell.Offset(0, 10) = txtKasserede.Value ActiveCell.Offset(0, 11) = cboFejltype.Value ActiveCell.Offset(0, 12) = txtBemaerkning.Value ActiveCell.Offset(0, 13) = "Mekanik" ActiveCell.Offset(0, 14) = "PC XX" Range("A1").Select
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
17. april 2008 - 08:55
#1
Skal du bruge koden i 2 forskellige filer eller skal du "blot" have kopieret arket Data fra fil 1 til C:\test.xls?
17. april 2008 - 08:55
#2
Option Base 1 Const kildeSti = "C:\test.xls" 'tilpasses Public Sub tt() Dim Data(15) As Variant Data(1) = txtDato.Value Data(2) = cboKlok.Value Data(3) = cboMaskine.Value Data(4) = txtVarenummer.Value Data(5) = txtPlade.Value Data(6) = txtPladeordre.Value Data(7) = txtOrdrenummer.Value Data(8) = txtArbejdsnr.Value Data(9) = txtArbejdsnr2.Value Data(10) = txtEmner.Value Data(11) = txtKasserede.Value Data(12) = cboFejltype.Value Data(13) = txtBemaerkning.Value Data(14) = "Mekanik" Data(15) = "PC XX" Set kXLS = CreateObject("Excel.application") With kXLS .Workbooks.Open kildeSti ' skriver .Sheets("Data").Range(.Sheets("Data").Range("A65536").End(xlUp).Offset(1, 0), .Sheets("Data").Range("A65536").End(xlUp).Offset(1, 14)) = Data .ActiveWorkbook.Close SaveChanges:=True ' gemmer og lukker .Application.Quit End With Set kXLS = Nothing End Sub
17. april 2008 - 09:15
#3
Ok hvis den skal skrive begge steder, så Option Base 1 Const kildeSti = "C:\test.xls" 'tilpasses Public Sub Gem() Dim Data(15) As Variant Data(1) = txtDato.Value Data(2) = cboKlok.Value Data(3) = cboMaskine.Value Data(4) = txtVarenummer.Value Data(5) = txtPlade.Value Data(6) = txtPladeordre.Value Data(7) = txtOrdrenummer.Value Data(8) = txtArbejdsnr.Value Data(9) = txtArbejdsnr2.Value Data(10) = txtEmner.Value Data(11) = txtKasserede.Value Data(12) = cboFejltype.Value Data(13) = txtBemaerkning.Value Data(14) = "Mekanik" Data(15) = "PC XX" ' skriver lokal Sheets("Data").Range(Sheets("Data").Range("A65536").End(xlUp).Offset(1, 0), Sheets("Data").Range("A65536").End(xlUp).Offset(1, 14)) = Data Set kXLS = CreateObject("Excel.application") With kXLS .Workbooks.Open kildeSti ' skriver ekstern .Sheets("Data").Range(.Sheets("Data").Range("A65536").End(xlUp).Offset(1, 0), .Sheets("Data").Range("A65536").End(xlUp).Offset(1, 14)) = Data .ActiveWorkbook.Close SaveChanges:=True ' gemmer og lukker .Application.Quit End With Set kXLS = Nothing End Sub
17. april 2008 - 09:22
#4
Hej Kabbak Erstatter den kode du har lavet, den jeg havde i forvejen - altså gemmer den både i den fil der er åben og den man definerer stien til? Søger den også efter den første ledige række i arket "Data"? Hvordan benytter jeg koden?
17. april 2008 - 09:30
#5
Har fået koden sat op, men den overskriver istedet for at oprette en ny række.
17. april 2008 - 10:13
#6
Den virker fint her, og overskriver ikke, men sætter det på nederste tomme linje. Koden kræver at der altid er data i A kolonnen, i begge Data ark, der er "txtDato.Value", som ikke må være tom
17. april 2008 - 10:15
#7
"men sætter det på nederste tomme linje" skulle være men sætter det på den tomme linje, lige under eksisterende data
17. april 2008 - 10:22
#8
Åh, det er fordi den starter med at indsætte data, i form af dato, i kolonne B. Har det noget med Offsettet at gøre?
17. april 2008 - 10:25
#9
har du dette med øverst Option Base 1 Const kildeSti = "C:\test.xls" 'tilpasses det skal være der Option Base 1, betyder at data(x) skal starte med 1 og ikke 0, som den gør når der ikke står noget.
17. april 2008 - 10:30
#10
Nej, den havde jeg ikke med. Nu får jeg en compile error på linien "Option Base 1".
17. april 2008 - 10:36
#11
Det skal være i toppen af modulet, helt uden for koden
17. april 2008 - 10:40
#12
Super - nu virker det!! Send et svar.
17. april 2008 - 10:41
#13
et svar ;-))
17. april 2008 - 10:54
#14
Er det muligt at låse det art hvor data bliver lagret - altså så brugeren kan se data, men ikke ændre dem. Det er kun det dataark som formen ligger i der ønskes låst ikke det der sendes til.
17. april 2008 - 11:59
#15
Du kan beskytte arket via kode ' skriver lokal Sheets("Data").Unprotect Password:="Test" Sheets("Data").Range(Sheets("Data").Range("A65536").End(xlUp).Offset(1, 0), Sheets("Data").Range("A65536").End(xlUp).Offset(1, 14)) = Data Sheets("Data").Protect Password:="Test"
17. april 2008 - 12:42
#16
Endnu engang tak!!
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig