23. oktober 2008 - 20:05Der er
33 kommentarer og 1 løsning
Sammenlign og hent data fra en anden mappe
Hej Jeg har en mappe der heder nr og en mappe der heder tid. kolonne A heder Nr i begge Ark Kolonne G heder Tid i begge Ark
I Ark der heder Nr kolonne A kan der stå 100 101 osv. ned efter I Ark der heder Nr kolonne G står der ikke noget ( det er data der skal hentes)
I Ark der heder Tid kolonne A kan der stå 100 101 osv.( ned efter men rækkefølgen vilkårlig rækkefølge 001 200 123 osv.) I Ark der heder Nr kolonne G står der tider 00:22:54 osv.(ned efter)
det jeg så gerne skulle kunne er at kolonne A i begge ark skal være det nummer der står f.eks. a1 står der 100 så skal den finde 100 i kolonne A i mappen tid og kopier tide over i kolonne G i mappen Nr, men det skal jo være der hvor der står 100 i kolonne A
Er der nogen der gider hjælpe min med det Håber det kan gøres måske med vba jeg skal gerne selv kunne vælge at køre det, filerne vil være samme sted når det sker.
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Hej kig lige på dette billede det forklare hvad jeg mener http://www.cichosz.dk/Image3.jpg Det skal så siges at jeg helst selv skal vælge hvornår data skal kopieres over,
Ok der er fler filer der heder tid, jeg liger en i ad gangen og henter de data der er i filen, hvad<så vis der i en ny file f.eks a1 100 g1 00:23:34 men i den ny file står der ikke noget i g1 fjerner den så det der står, det skal den nemlig helst ikke.
hej øø i min fiel tid står det ikke sådan at man kan regne med at a2 og g2 passer sammen det er kun i filen Nr de gør det det er der for at nr'et 100 og 101 osv. skal bruges til at finde udaf hvor tiden fra filen tid skal skrives. og når tiden er overført til filen Nr skal den ikke kune over skrives igen da data hentes fra fler filer der heder tid men bare ad flere gange.
håber jeg har formuleret mig så det kan forståes. ;-)
Vil det sige at mappen tid, ikke altid er den samme, men at der kommer en ny, en gang imellem. I sådan et tilfælde, vil alle data, kun passe, med den sidste, da det er formler, der kikker i mappen.
Så hvis A1 = 100 og tid i G1 er 00:23:34 og så skifter du fil hvor A1 = 100 og tid i G1 er tomt så bliver det også tomt i mappen Nr
ja så bliver den tom, og den skal gerne gemme de data den henter fra de forkellige mapper tid mapperne tid kan heller ikke være soteret på samme måde som mappen nr der for er værdierne i A cellerne vigtig Jeg har kigget på dete i hjælp: >< VOPSLAG og LOPSLAG indeholder områdeopslaget argument som fortæller funktionen, at den skal finde en identisk post, selvom tabellen ikke er sorteret. Hvis du vil finde en identisk post, skal du indstille argumentet områdeopslag til FALSK. >< men jeg ved ikke rigtig hvordan jeg får det til at fungere.
Las os sige at i mappen Tid A1 = 100 og tid i G1 er 00:23:34 den henter vi så over hvis der så i næste fil er A1 = 100 og tid i G1 er 23:00:10 skal den så overskrives, eller hvad, hvis G1 er tom gøres intet.
ok vis A1 = 100 er brugt vil A1 aldrig blive 100 igen i mappen tid men i den ny mappe Tid kan der komme en A1 igen men med et nyt nummer f.eks A1 = 230 så skal den gerne finde hvor der i mappen Nr står 230 f.eks A85 = 230 der skal tiden ind fra mappen Tid G1 og skal ikke kunne ændres igen
der kan så i den næste celle A2 = 124 tid i G2 i min mappe Nr findes f.eks A24 = 124 der skal tiden fra G2 så stå og kan ikke ændres når der hentes en ny mappe tid
Sæt denne kode i et Modul, ikke i et ark eller ThisWorkbook modul.
Public Sub HentData() Dim NYData As Variant, GLData As Variant, I As Long, J As Long, RK As Long Application.ScreenUpdating = False Workbooks.Open (ThisWorkbook.Path & "\tid.xls") RK = Worksheets("Tid").Range("A65536").End(xlUp).Row NYData = Worksheets("Tid").Range("A1:G" & RK) ActiveWorkbook.Close False RK = ThisWorkbook.Worksheets("Nr").Range("A65536").End(xlUp).Row GLData = ThisWorkbook.Worksheets("Nr").Range("A1:G" & RK) For I = 1 To UBound(GLData) If IsEmpty(GLData(I, 7)) Then For J = 1 To UBound(NYData) If GLData(I, 1) = NYData(J, 1) Then GLData(I, 7) = NYData(I, 7) Exit For End If Next End If Next ThisWorkbook.Worksheets("Nr").Range("A1:G" & RK) = GLData Application.ScreenUpdating = True End Sub
Hej Jeg har skrevet noget forkert de første celler er A2 og G2 skal jeg så bare skifte ud der hvor der står A1 til A2 cellerne der kan være i spil er helt op til A1000 er det ligegyldig og cellerne skal stadig være formateret til tid ?
du skriver " Public Sub HentData() Dim NYData As Variant, GLData As Variant, I As Long, J As Long, RK As Long Application.ScreenUpdating = False Workbooks.Open (ThisWorkbook.Path & "\tid.xls") RK = Worksheets("Tid").Range("A65536").End(xlUp).Row NYData = Worksheets("Tid").Range("A1:G" & RK) ActiveWorkbook.Close False RK = ThisWorkbook.Worksheets("Nr").Range("A65536").End(xlUp).Row GLData = ThisWorkbook.Worksheets("Nr").Range("A1:G" & RK) For I = 1 To UBound(GLData) If IsEmpty(GLData(I, 7)) Then For J = 1 To UBound(NYData) If GLData(I, 1) = NYData(J, 1) Then GLData(I, 7) = NYData(I, 7) Exit For End If Next End If Next ThisWorkbook.Worksheets("Nr").Range("A1:G" & RK) = GLData Application.ScreenUpdating = True End Sub
Public Sub HentData() Dim NYData As Variant, GLData As Variant, I As Long, J As Long, RK As Long Application.ScreenUpdating = False Workbooks.Open (ThisWorkbook.Path & "\tid.xls") RK = Worksheets("Tid").Range("A65536").End(xlUp).Row NYData = Worksheets("Tid").Range("A1:G" & RK) ActiveWorkbook.Close False RK = ThisWorkbook.Worksheets("Start").Range("A65536").End(xlUp).Row GLData = ThisWorkbook.Worksheets("Nr").Range("A1:G" & RK) For I = 1 To UBound(GLData) If IsEmpty(GLData(I, 7)) Then For J = 1 To UBound(NYData) If GLData(I, 1) = NYData(J, 1) Then GLData(I, 7) = NYData(I, 7) Exit For End If Next End If Next ThisWorkbook.Worksheets("Start").Range("A1:G" & RK) = GLData Application.ScreenUpdating = True End Sub
Public Sub HentData() Dim NYData As Variant, GLData As Variant, I As Long, J As Long, RK As Long Application.ScreenUpdating = False Workbooks.Open (ThisWorkbook.Path & "\tid.xls") RK = Worksheets("Tid").Range("A65536").End(xlUp).Row NYData = Worksheets("Tid").Range("A1:G" & RK) ActiveWorkbook.Close False RK = ThisWorkbook.Worksheets("Start").Range("A65536").End(xlUp).Row GLData = ThisWorkbook.Worksheets("Start").Range("A1:G" & RK) For I = 1 To UBound(GLData) If IsEmpty(GLData(I, 7)) Then For J = 1 To UBound(NYData) If GLData(I, 1) = NYData(J, 1) Then GLData(I, 7) = NYData(I, 7) Exit For End If Next End If Next ThisWorkbook.Worksheets("Start").Range("A1:G" & RK) = GLData Application.ScreenUpdating = True End Sub
Hej den henter fint data fra tid.xls nu problemet jeg har nu er, at mine nummer ikke altid står i orden og i mappen tid skrives kun de nummere der er i brug da de læses med en stregkode læser. det der er i det, er at a2 i den ene mappe ikke altid har samme indhold som i den anden mappe. i mappen nr kan de godt stå 001 002 003 og op til 1000. men det kan jeg ikke i mappen tid da jeg der henter nummer og tid ind med stregkodeskanneren og jeg bruger 3 tid mapper i alt ca
Koden finder selv den der passer, så rækkefølgen er ligegyldig. Om der er mange numre i Mappen "Nr" og kun få i "tid", er underordnet, den tjekker alleom de er ens.
Public Sub HentData() Dim NYData As Variant, GLData As Variant, I As Long, J As Long, RK As Long Application.ScreenUpdating = False Workbooks.Open (ThisWorkbook.Path & "\tid.xls") RK = Worksheets("Tid").Range("A65536").End(xlUp).Row NYData = Worksheets("Tid").Range("A1:G" & RK) ActiveWorkbook.Close False RK = ThisWorkbook.Worksheets("Start").Range("A65536").End(xlUp).Row GLData = ThisWorkbook.Worksheets("Start").Range("A1:G" & RK) For I = 1 To UBound(GLData) If IsEmpty(GLData(I, 7)) Then For J = 1 To UBound(NYData) If GLData(I, 1) = NYData(J, 1) Then GLData(I, 7) = NYData(J, 7) Exit For End If Next End If Next ThisWorkbook.Worksheets("Start").Range("A1:G" & RK) = GLData Application.ScreenUpdating = True 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.