Avatar billede ullum Praktikant
30. november 2007 - 22:45 Der er 3 kommentarer og
1 løsning

nærmere forklarin

er der en venlig sjæl der (groft) kan fortælle mig hvad der sker her

jeg har fået lavet det i et test ark, det skal nu implementeres i et rigtigt men jeg vil gerne vide hvad der sker for et undgå fejl

Sub Total()

Application.ScreenUpdating = False
AktuelArk = ActiveSheet.Name: AktuelCelle = ActiveCell.Address
Set sh1 = Sheets("Ark1"): sh1.Activate
sh1.Range(Range("A2"), ActiveCell.SpecialCells(xlLastCell)).ClearContents
For Each sh In ActiveWorkbook.Sheets
If sh.Name <> sh1.Name Then
sh.Activate
For t = 2 To sh.Cells(65000, 1).End(xlUp).Row
If Application.CountIf(sh1.Range("A2:A20000"), Cells(t, 1)) < 1 Then
sh1.Cells(sh1.Cells(65500, 1).End(xlUp).Row + 1, 1) = Cells(t, 1)
sh1.Cells(sh1.Cells(65500, 2).End(xlUp).Row + 1, 2) = Cells(t, 3)
Else
x = sh1.Range("A1:A20000").Find(Cells(t, 1), LookIn:=xlValues).Address
sh1.Range(x).Offset(0, 1) = sh1.Range(x).Offset(0, 1) + Cells(t, 3)
End If
Next
End If
Next
Sheets(AktuelArk).Select: Range(AktuelCelle).Select
Application.ScreenUpdating = True

End Sub
Avatar billede excelent Ekspert
30. november 2007 - 22:55 #1
er det forklaring til de enkelte linier du mener ?
Avatar billede excelent Ekspert
30. november 2007 - 23:15 #2
Sub Total()

Application.ScreenUpdating = False ' Undgå at skærm flimrer når der skiftes ark m.v
AktuelArk = ActiveSheet.Name: AktuelCelle = ActiveCell.Address ' Husker aktuel ark og celle
Set sh1 = Sheets("Ark1"): sh1.Activate 'sh1 sættes=Ark1, er lettere at skrive flere gange : sh1 aktiveres
sh1.Range(Range("A2"), ActiveCell.SpecialCells(xlLastCell)).ClearContents ' Værdier i Ark1 slettes
For Each sh In ActiveWorkbook.Sheets ' Ark løkke starter
If sh.Name <> sh1.Name Then ' Sikrer at Ark1 ikke testes
sh.Activate ' Arkene aktiveres efter tur
For t = 2 To sh.Cells(65000, 1).End(xlUp).Row ' Finder nederste række med værdi i kolonne A
If Application.CountIf(sh1.Range("A2:A20000"), Cells(t, 1)) < 1 Then 'Test om aktuel sagsnr. findes i Ark1
sh1.Cells(sh1.Cells(65500, 1).End(xlUp).Row + 1, 1) = Cells(t, 1) 'Skriver sagsnr i Ark1 i næste tomme celle
sh1.Cells(sh1.Cells(65500, 2).End(xlUp).Row + 1, 2) = Cells(t, 3) 'Skriver timer i Ark1 i næste tomme celle
Else ' Aktuel sagsnummer fantes allerede i Ark1
x = sh1.Range("A1:A20000").Find(Cells(t, 1), LookIn:=xlValues).Address 'Finder cellen i Ark1 hvor sagsnr er
sh1.Range(x).Offset(0, 1) = sh1.Range(x).Offset(0, 1) + Cells(t, 3) ' Timer adderes til aktuel sagsnr
End If
Next
End If
Next
Sheets(AktuelArk).Select: Range(AktuelCelle).Select 'Oprindelig Ark og celle gøres aktiv igen
Application.ScreenUpdating = True ' Skærmopdatering sættes til igen

End Sub
Avatar billede ullum Praktikant
01. december 2007 - 19:28 #3
super svar pls.
jeg spørge måske lidt mere på et tidspunkt
Avatar billede excelent Ekspert
01. december 2007 - 21:26 #4
ok
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester