11. februar 2008 - 13:00Der er
13 kommentarer og 1 løsning
sammenligne tal og indsætte celler hvis tal ikke er ens
Hej. Jeg har to ark i et excel-dokument. Det ene (ark#1) indeholder en masse data om forskellige projekter (med hver deres unikke projektnummer). Det andet ark (ark#2) er en liste med projektnumre og tilhørende data, MEN dette bliver opdateret hver uge (copy/paste). Mit problem er, at der i ark#1 tilføjes informationer mv. så dette kan ikke bare overskrives med de tilsvarende informationer i ark#2. Min tanke er, at man kan checke alle projektnumre i ark#2 op imod ark#1 - projekterne i dise to ark er ens med mindre der er kommet et nyt projekt til, ergo ark#2 vil have det nye projekt med. Hvis der så er kommet et nyt projekt i ark#2 så skal info kopieres over i ark#1.
Er der nogen der har en mulig løsning/forslag hertil.
Jeg uddyber gerne beskrivelsen hvis den er helt umilg at forstå :-)
ja, præcis. En række hvor der er et unikt projektnummer. Herudover er der navn på projekt, ansvarlig for projekt osv. Det er en del af de andre celler jeg gerne vil have kopieret over i det andet ark HVIS der er kommet et nyt projektnummer til.
Model - inden kodning: Ark 2 gennemløbes - for hvert projektNr undersøges om det tilsvarende findes på ark 1. Hvis dette IKKE er tilfældet - kopieres rækken fra Ark 2 i forlængelse af de eksisterende rækker på Ark 1.
Rem Koden anbringes i ThisWorkbook Rem ==============================
Dim ark1, ark2 Sub opdaterProjektData() Rem kan erstattes af Sub Activeworkbook_activate() ' udføres når filen åbnes
Dim ark2Rækker Rem behandling af ajf.data i ark2 Set ark1 = ActiveWorkbook.Sheets("Ark1") 'ProjektSamling Set ark2 = ActiveWorkbook.Sheets("Ark2") 'Ajourføring
ark2Rækker = findAntalRækker(ark2)
For ræk = 1 To ark2Rækker projektNr = ark2.Cells(ræk, 1) If findesProjektNrIark1(projektNr) = False Then indsætProjektData ræk End If Next ræk End Sub Private Function findAntalRækker(ark) With ark findAntalRækker = Cells(Rows.Count, 1) _ .End(xlUp).Offset(1, 0).Row - 1 End With End Function Private Function findesProjektNrIark1(projektNr) With ark1.Range("A1:A65000") Set c = .Find(projektNr, LookIn:=xlValues, LookAt:=xlWhole) If Not c Is Nothing Then findesProjektNrIark1 = True Else findesProjektNrIark1 = False End If End With End Function Private Sub indsætProjektData(ræk) ark2.Select ark2.Rows(ræk).Select Selection.Copy
ark1.Select ark1NæsteRække = findAntalRækker(ark1) + 1 ark1.Cells(ark1NæsteRække, 1).Select ActiveSheet.Paste Application.CutCopyMode = False End Sub
hej supertekst. Undskyld det sene svar. Når jeg afvikler makroen skirver den: Subscript out of range. Jeg har lavet 3 kollonner i både ark 1 og 2. Jeg har så bare 2 rækker mindre i ark 2 end i ark 1. Jeg tror måske fejlen ligger i den måde jeg har lagt din kode ind - kna du specifere præcis hvor i Visual Basic viewet (Alt+F11) at jeg skal lægge kodestykkerne ind?
hej igen, det driller fortsat. Kunne du prøve at sende mig dine filer? (skal nok være lidt hurtigere med tilbagemelding). madstfri@yahoo.co.uk God wewekend
hej, undskyld forglemmelsen, jeg omgik problemet og har ikke brug for løsningen. Men skriv et svar og jeg deler gladeligt ud af point som tak for indsatsen. Mvh
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.