23. april 2003 - 12:38Der er
10 kommentarer og 1 løsning
Kopiere data!
Hej Eksperter!
Jeg vil meget gerne ved hjælp af en tryk knap hente alle data i et ark, og ligge dem over i et andet ark(fil).
I modtager arket er der i forvejen data som er sorteret pr. Id.
Filen jeg henter fra indeholde kun nogle af disse id el. alle. Det er lidt med forskel.
Dvs. når jeg trykke på knappen skal den hente alle data i filen jeg henter fra, sammenligne dem med modtage arket og smide dem ind hvor de hører hjemme.
Eks.
Før at jeg trykker på knappen
Afsender fil: Modtager Fil: ID - Navn: ID - Navn: 1 - Lars 1-Lars 2 - Jens 2-Børge 3 - Bent 3-Bent 4 - Jørgen 4-Peter 5-Ole
Efter processen har kørt:
Afsender fil: Modtager Fil: ID - Navn: ID - Navn: 1 - Lars 1-Lars 2 - Jens 2-Jens 3 - Bent 3-Bent 4 - Jørgen 4-Jørgen 5-Ole
Er der nogen der kan hjælpe mig med at lave et VBA script der kan gøre det?
Det skal lige siges at jeg absolut ingen erfarring har med VBA, jeg har dog kodet en del ASP.
Med version 7 af TeamShare tager Lector næste skridt og bygger en platform for AI-agenter, der i højere grad kan følge medarbejderen gennem hele arbejdsprocessen.
Sub Hent_og_Sammenlign() Dim GLSidste, NYSidste As Integer
' ret selv Fil og mappe navnene til dit behov Workbooks.Open Filename:= _ "C:\Dokumenter\Excel\Mappe4.xls" Sheets("Nydata").Select Sheets("Nydata").Move After:=Workbooks("GLdata.xls").Sheets(3) Sheets("GlData").Select
GLSidste = ActiveCell.SpecialCells(xlLastCell).Row ' Sidste række med data i hoved arket Sheets("Nydata").Select NYSidste = ActiveCell.SpecialCells(xlLastCell).Row ' Sidste række med data i Afsender arket For i = 1 To GLSidste For J = 1 To NYSidste ' hvis du har ID i A kolonnen og navnet i B kolonnen , så virker det If Sheets("GlData").Cells(i, 1) = Sheets("Nydata").Cells(J, 1) Then Sheets("GlData").Cells(i, 2) = Sheets("Nydata").Cells(J, 2) End If Next Next Sheets("Nydata").Select ' fjerner afsender arket igen ActiveWindow.SelectedSheets.Delete End Sub
Jeg går ud fra at det er excel mapper både den der skal opdateres og den du får tilsendt.
Jeg er også gået ud fra at ID ligger i kolonne A begge steder.
Nydata = navnet på det ark i mappe4.xls, som dataerne er skrevet på.
GlData = navnet på det ark som skal opdateres i din excel mappe
I kolonne A arket "GlData" går jeg også ud fra at du har fortløbende nummer nedad, for hvis nummeret ikke eksisterer i dit ark, bliver det heller ikke oprettet.
Hvis du med et tredie ark, mener en tredie excelfil, så gør du sådan.
Denne makro ligger du i et modul i Modtager Fil: = den jeg kalder GlData
Sub Hent_og_Sammenlign() Dim GLSidste, NYSidste As Integer
' ret selv Fil og mappe navnene til dit behov Workbooks.Open Filename:= _ "C:\Dokumenter\Excel\Mappe4.xls" Sheets("Nydata").Select Sheets("Nydata").Move After:=Workbooks("GLdata.xls").Sheets(3) Sheets("GlData").Select
GLSidste = ActiveCell.SpecialCells(xlLastCell).Row ' Sidste række med data i hoved arket Sheets("Nydata").Select NYSidste = ActiveCell.SpecialCells(xlLastCell).Row ' Sidste række med data i Afsender arket For i = 1 To GLSidste For J = 1 To NYSidste ' hvis du har ID i A kolonnen og navnet i B kolonnen , så virker det If Sheets("GlData").Cells(i, 1) = Sheets("Nydata").Cells(J, 1) Then Sheets("GlData").Cells(i, 2) = Sheets("Nydata").Cells(J, 2) End If Next Next Sheets("Nydata").Select ' fjerner afsender arket igen ActiveWindow.SelectedSheets.Delete End Sub
den her lægger du i dit tredie ark/mappe og kalder den med en knap
Private Sub CommandButton1_Click() Workbooks.Open Filename:= _ "C:\Dokumenter\Excel\GLdata.xls" Application.Run "GLdata.xls!Hent_og_Sammenlign" ActiveWorkbook.Save ActiveWindow.Close End Sub
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.