09. april 2009 - 13:17Der er
8 kommentarer og 1 løsning
Import af data fra et andet regneark
Hej Eksperten.
Jeg sidder og fumler lidt at lave nogle automatisk time reg., jeg er bare løbet ind i et problem.
Jeg skal impoter data fra et regneark(mandskab-???.xls fil, (???=eks apr)) til et andet løndseddel.xls, kender godt til data->import men den dur ikke helt, jeg tror at jeg skal bruge en macro til det istedet. Så jeg får en Pupop eller noget ligene hvor jeg kan vælge stien til den fil og så trykke på kopier/impotere og så skal den slette i løndseddel.xls!udkald-timer og dernæst, kopier alle data fra arket "mandskab" over til arket "udkald-timer".
Filen hedder nemlig noget forskelligt fra mdr. til mdr. Det ark fra regnearket indeholder flg. kolonner. alarmeret, mødt, frigivet, cprnr, fornavn, efternavn, rappnr, kørtøj, opgave og et ukendt antal rækker.
Har Excel 2002, og den lidt erfaring med macro programmering men ikke så meget.
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
Filerne "Mandskab???.xls" ligger de i samme folder (mappe)? Hvis forskellen er månedsforkortelsen "jan / feb / mar/ apr" o.s.v. - så er det vel et spørgsmål om at vælge "måned".
I princippet kan hele arket "Mandskab" kopieres over til filen lønseddel - idet det bestående ark "Udkald-timer" slettes og det kopierede omdøbes - eller ?
nej helst ikke, da jeg har nogle formler m.m. som ligger i kolonnerne K-O, ville helst at den kun slettede/tomte kolonnerne A-J og så kopiered dem over fra mandskab. hvis det kan lade sig gøre ellers må jeg ligge formlerne på et andet ark.
Alletiders. du har modtaget en mail, og som der også står der så må du da gerne post den her inde også så andre også kan drage nytte af dine talenter. :-)
Private Sub CommandButton1_Click() 'Ok If Me.ListBox1.ListIndex <> -1 And Me.ListBox2.ListIndex <> -1 Then kopierMandskabsData Ark2.xsti + Me.ListBox1 + "\" + Me.ListBox2 Else MsgBox ("Fil ikke udpeget!") End If End Sub Private Sub CommandButton2_Click() 'Luk Unload UserForm1 End Sub Private Sub ListBox1_Click() 'årsMappe valgt Me.ListBox2.Clear visMandskabsMåneder Me.ListBox1 End Sub Private Sub UserForm_activate() Me.ListBox1.Clear Me.ListBox2.Clear
visÅrsMapper End Sub Private Sub visÅrsMapper() Dim fs, f, f1, fc, s Set fs = CreateObject("Scripting.FileSystemObject") Set f = fs.GetFolder(Ark2.xsti) Set fc = f.SubFolders
For Each f1 In fc Me.ListBox1.AddItem f1.Name Next End Sub Private Sub visMandskabsMåneder(årsMappeNavn) Dim fs, f, f1, fc, s Set fs = CreateObject("Scripting.FileSystemObject") Set f = fs.GetFolder(Ark2.xsti + årsMappeNavn) Set fc = f.Files For Each f1 In fc Me.ListBox2.AddItem f1.Name Next End Sub Rem ============= OVERFØRSEL =============== Private Sub kopierMandskabsData(filNavn) Dim udkaldArk, antalRækker Dim mdXLS, mdArk, ræk On Error GoTo lukStatus Application.ScreenUpdating = False
Rem slet gl. data i rækkerne A - J antalRækker = ActiveCell.SpecialCells(xlLastCell).Row Range("A1:J" & CStr(antalRækker)).Select Selection.ClearContents
Cells(1, 1).Select
Set udkaldArk = ActiveWorkbook.Sheets("udkald-timer")
Rem hent data fra mandskabs-fil Set mdXLS = CreateObject("Excel.application") With mdXLS .Workbooks.Open filNavn Set mdArk = .ActiveWorkbook.Sheets("mandskab") mdArk.Activate
Rem fortsæt indtil data i A = tom For ræk = 1 To 65000 If mdArk.Cells(ræk, 1) <> "" Then For kol = 1 To 10 indhold = mdArk.Cells(ræk, kol) udkaldArk.Cells(ræk, kol) = indhold Next kol Else Exit For End If Next ræk End With
lukStatus: On Error Resume Next
mdXLS.Application.Quit Set mdXLS = Nothing
Application.ScreenUpdating = True
MsgBox ("Mandskabs-data overført") End Sub
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.