Avatar billede ullum Praktikant
24. december 2007 - 14:57 Der er 21 kommentarer og
1 løsning

brug af autosum

jeg kører denne

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("Total"): sh1.Activate 'sh1 sættes=Ark1, er lettere at skrive flere gange : sh1 aktiveres
sh1.Range(Range("D6"), 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 = 7 To Sh.Cells(65000, "G").End(xlUp).Row ' Finder nederste række med værdi i kolonne D
If Application.CountIf(sh1.Range("D6:D20000"), Cells(t, "G")) < 1 Then 'Test om aktuel sagsnr. findes i Total
sh1.Cells(sh1.Cells(65500, "D").End(xlUp).Row + 1, "D") = Cells(t, "G") 'Skriver sagsnr i Total i næste tomme celle
sh1.Cells(sh1.Cells(65500, "E").End(xlUp).Row + 1, "E") = Cells(t, "E") 'Skriver timer i Total i næste tomme celle
Else ' Aktuel sagsnummer fantes allerede i Ark1
x = sh1.Range("D6:D20000").Find(Cells(t, "G"), LookIn:=xlValues).Address 'Finder cellen i Total hvor sagsnr er
sh1.Range(x).Offset(0, 1) = sh1.Range(x).Offset(0, 1) + Cells(t, "E") ' 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


den henter værdier i nogle ark og skriver dem ind i arket "total".

På kolonnen e i "total" laver jeg så en autosum. Det virker ok indtil der kommer en ny indføring af data, så forsvinder min autosum beregning, hvordan undgår jeg det
Avatar billede supertekst Ekspert
24. december 2007 - 15:10 #1
Hvis du har mulighed for at sende en kopi af din fil, ville det nok være lidt lettere at gennemskue problematikken. Men cellen med AutoSum skal nok indsættes dynamisk - hvis den overskrives.

Evt. mail til: pb@supertekst-it.dk
Avatar billede dk_akj Nybegynder
24. december 2007 - 15:14 #2
Ja, indsæt formlen fra din makro.
Cells(række, kolonne).formula = "=sum(A1:A99)"


//akj
Avatar billede excelent Ekspert
24. december 2007 - 15:22 #3
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("Total"): sh1.Activate 'sh1 sættes=Ark1, er lettere at skrive flere gange : sh1 aktiveres
sh1.Range(Range("D6"), 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 = 7 To Sh.Cells(65000, "G").End(xlUp).Row ' Finder nederste række med værdi i kolonne D
If Application.CountIf(sh1.Range("D6:D20000"), Cells(t, "G")) < 1 Then 'Test om aktuel sagsnr. findes i Total
sh1.Cells(sh1.Cells(65500, "D").End(xlUp).Row + 1, "D") = Cells(t, "G") 'Skriver sagsnr i Total i næste tomme celle
sh1.Cells(sh1.Cells(65500, "E").End(xlUp).Row + 1, "E") = Cells(t, "E") 'Skriver timer i Total i næste tomme celle
Else ' Aktuel sagsnummer fantes allerede i Ark1
x = sh1.Range("D6:D20000").Find(Cells(t, "G"), LookIn:=xlValues).Address 'Finder cellen i Total hvor sagsnr er
sh1.Range(x).Offset(0, 1) = sh1.Range(x).Offset(0, 1) + Cells(t, "E") ' Timer adderes til aktuel sagsnr
End If
Next
End If
Next
rk = sh1.Cells(1000, "E").End(xlUp).Row + 1
sh1.Cells(rk, "E").Formula = "=SUM(E6:E" & rk - 1 & ")"
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
24. december 2007 - 15:33 #4
Kommentar: excelent
24/12-2007 15:22:44

virker ikke jeg er lige lidt mere specifik autosum fra e6 til e91 summen skrives i g6

Kommentar: dk_akj
24/12-2007 15:14:42 jeg forstår ikke hvad du mener, men jeg er heller ikke særlig skrap til det her

Kommentar: supertekst
24/12-2007 15:10:46 tak for tilbuddet, prøver lige excelent først
Avatar billede excelent Ekspert
24. december 2007 - 15:58 #5
ok prøv udskift denne :
sh1.Cells(rk, "E").Formula = "=SUM(E6:E" & rk - 1 & ")"
med denne :
sh1.Cells(6, "G").Formula = "=SUM(E6:E" & rk - 1 & ")"

går ud fra den skal være dynamisk
Avatar billede ullum Praktikant
24. december 2007 - 18:01 #6
nå den skriver ikke noget i g6 formlen bliver bare slettet
Avatar billede excelent Ekspert
24. december 2007 - 20:06 #7
har du anden kode ?
Avatar billede ullum Praktikant
24. december 2007 - 22:15 #8
? øh næ hvad mener du
Avatar billede excelent Ekspert
24. december 2007 - 22:20 #9
g6 slettes ikke i mit testark, og jeg bruger samme kode
Avatar billede excelent Ekspert
24. december 2007 - 22:24 #10
vi kn prøve at indsætte sum i g5 i stedet - se om den slettes

sh1.Cells(5, "G").Formula = "=SUM(E6:E" & rk - 1 & ")"
Avatar billede ullum Praktikant
25. december 2007 - 08:39 #11
nix, kan det være fordi det er timer der skal adderes
Avatar billede excelent Ekspert
25. december 2007 - 08:53 #12
nej jeg adderer også timer
check lige formatering/farve

og paste evt koden igen
Avatar billede excelent Ekspert
25. december 2007 - 09:27 #13
Prøv lige at udskifte den kode du har i "ThisWorkbook" modulet med denne :

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Intersect(Target, Sh.Range("A7:G2000")) Is Nothing Then Exit Sub
On Error Resume Next
If Len(Cells(Target.Row, "G")) = 5 Then
Application.EnableEvents = False
Call Total
Application.EnableEvents = True
End If
End Sub
Avatar billede ullum Praktikant
25. december 2007 - 10:15 #14
formatering og farve er ok kører bruger def [ttt]:mm

ser ud til at den chekker alle ark nu, men den skriver stadig ikke noget i total
Avatar billede excelent Ekspert
25. december 2007 - 10:49 #15
HAR DU MULIGHED FOR AT SENDE FILEN ?
Avatar billede excelent Ekspert
25. december 2007 - 10:53 #16
Skal lige lufte hunene er tilbage om en time
Avatar billede ullum Praktikant
25. december 2007 - 10:59 #17
mail adr pls
Avatar billede ullum Praktikant
25. december 2007 - 11:01 #18
eller drop mail på henriksnabelaullumpunktumnet
Avatar billede excelent Ekspert
25. december 2007 - 11:59 #19
ellers send på
pm@madsen.tdcadsl.dk
Avatar billede excelent Ekspert
25. december 2007 - 12:46 #20
ok fil retur
Avatar billede ullum Praktikant
25. december 2007 - 13:23 #21
nå, koden lå inde flere steder end godt var, er fikset nu, svar pls
Avatar billede excelent Ekspert
25. december 2007 - 13:27 #22
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