Avatar billede clus Nybegynder
02. september 2004 - 09:17 Der er 13 kommentarer og
1 løsning

Excel 2003 - samle linier fra flere mapper i en samlet mappe

Hvordan kan få Excel til at tage linierne i 3 forskellige mapper og samle dem i en 4. mappe?

Det kan laves ved en simpel reference, men hvis der så kommer en ekstra post (linie) på så skal den også tage den med. Funktionen skal samle de linier hvor der er en værdi i søjle J der er =1.



Ideen med dette regneark er, at jeg har 3 distrikter med hver deres mappe som jeg kan indtaste i, med søjlerne A=Id, B=Navn, C=By, D-I=diverse værdier, J=afsluttet. Hvis afsluttet (J) er udfyldt i de enkelte distriktsmapper, så skal den tage den pågældende linie med over i den SAMLET-mappe, hvor jeg kun kan se de forskellige data og sortere på dem. De skal stadig blive i de enkelte distriktsmapper, hvor jeg så stadig kan taste flere og flere poster ind og redigere i de forskellige tal på trods af de har fået status som afsluttet.  I samlet mappen skal den under den sidste post hele tiden tælle sammen under følgende søjler D, E, F, J, L, M,  og P.



Jeg håber på at der er nogen der kan hjælpe mig med ovenstående.
Avatar billede kabbak Professor
02. september 2004 - 12:00 #1
Public Sub CopyRækker()
'Ret "Ark1" til navnet på det ark du vil have dataerne på
'Ret de andre ark til dine arks navne
X = 1
Rw = Worksheets("Ark2").Range("A65536").End(xlUp).Row
For i = 2 To Rw
If Worksheets("Ark2").Range("J" & i) <> "" Then
Worksheets("Ark2").Rows(i & ":" & i).Copy
Sheets("Ark1").Cells(X, 1).PasteSpecial Paste:=xlValues
X = X + 1
  End If
Next

Rw = Worksheets("Ark3").Range("A65536").End(xlUp).Row
For i = 2 To Rw
If Worksheets("Ark3").Range("J" & i) <> "" Then
Worksheets("Ark3").Rows(i & ":" & i).Copy
Sheets("Ark1").Cells(X, 1).PasteSpecial Paste:=xlValues
X = X + 1
  End If
Next

Rw = Worksheets("Ark4").Range("A65536").End(xlUp).Row
For i = 2 To Rw
If Worksheets("Ark4").Range("J" & i) <> "" Then
Worksheets("Ark4").Rows(i & ":" & i).Copy
Sheets("Ark1").Cells(X, 1).PasteSpecial Paste:=xlValues
X = X + 1
  End If
Next

Worksheets("Ark1").Select
'søjler D, E, F, J, L, M,  og P.

Range("A" & X) = "Total"
Range("D" & X).FormulaR1C1 = "=SUM(R[-" & (X - 2) & "]C:R[-1]C)"
Range("E" & X).FormulaR1C1 = "=SUM(R[-" & (X - 2) & "]C:R[-1]C)"
Range("F" & X).FormulaR1C1 = "=SUM(R[-" & (X - 2) & "]C:R[-1]C)"
Range("J" & X).FormulaR1C1 = "=SUM(R[-" & (X - 2) & "]C:R[-1]C)"
Range("L" & X).FormulaR1C1 = "=SUM(R[-" & (X - 2) & "]C:R[-1]C)"
Range("M" & X).FormulaR1C1 = "=SUM(R[-" & (X - 2) & "]C:R[-1]C)"
Range("P" & X).FormulaR1C1 = "=SUM(R[-" & (X - 2) & "]C:R[-1]C)"

End Sub

sættes i et modul, køres hver gang du ønsker opdatering
Avatar billede clus Nybegynder
02. september 2004 - 13:31 #2
Først mange tak. Er det muligt at den ikke bare indsætter værdierne i det samlet ark men derimod tager det med over som en reference ?
Avatar billede kabbak Professor
02. september 2004 - 14:54 #3
Hvorfor ?
det vil gøre den langsom:
jeg kan lave så den er opdateret når du aktiverer arket, hvis du ikke er sikker på hvornår du skal opdatere.

Sæt denne ind i dit samlearks modul, så kører det hele automatisk.

Private Sub Worksheet_Activate()
Call CopyRækker
End Sub

Det virker på den måde, at hvergang du vender tilbage til Samlearket, fra et andet ark vil arket blive opdateret
Avatar billede kabbak Professor
02. september 2004 - 15:00 #4
der er forresten en fejl
X = 1
skal være
X = 2

det er fordi du kan have overskrifter der, og den summerer fra række 2 og ned
Avatar billede kabbak Professor
02. september 2004 - 15:05 #5
Jeg så lige at du i J kolonnen skriver 1, hvis du vil have rækken, det er ændret her.

Public Sub CopyRækker()
'Ret "Ark1" til navnet på det ark du vil have dataerne på
'Ret de andre ark til dine arks navne
X = 2
Rw = Worksheets("Ark2").Range("A65536").End(xlUp).Row
For i = 2 To Rw
If Worksheets("Ark2").Range("J" & i) = 1 Then
Worksheets("Ark2").Rows(i & ":" & i).Copy
Sheets("Ark1").Cells(X, 1).PasteSpecial Paste:=xlValues
X = X + 1
  End If
Next

Rw = Worksheets("Ark3").Range("A65536").End(xlUp).Row
For i = 2 To Rw
If Worksheets("Ark3").Range("J" & i) = 1 Then
Worksheets("Ark3").Rows(i & ":" & i).Copy
Sheets("Ark1").Cells(X, 1).PasteSpecial Paste:=xlValues
X = X + 1
  End If
Next

Rw = Worksheets("Ark4").Range("A65536").End(xlUp).Row
For i = 2 To Rw
If Worksheets("Ark4").Range("J" & i) = 1 Then
Worksheets("Ark4").Rows(i & ":" & i).Copy
Sheets("Ark1").Cells(X, 1).PasteSpecial Paste:=xlValues
X = X + 1
  End If
Next

Worksheets("Ark1").Select
'søjler D, E, F, J, L, M,  og P.

Range("A" & X) = "Total"
Range("D" & X).FormulaR1C1 = "=SUM(R[-" & (X - 2) & "]C:R[-1]C)"
Range("E" & X).FormulaR1C1 = "=SUM(R[-" & (X - 2) & "]C:R[-1]C)"
Range("F" & X).FormulaR1C1 = "=SUM(R[-" & (X - 2) & "]C:R[-1]C)"
Range("J" & X).FormulaR1C1 = "=SUM(R[-" & (X - 2) & "]C:R[-1]C)"
Range("L" & X).FormulaR1C1 = "=SUM(R[-" & (X - 2) & "]C:R[-1]C)"
Range("M" & X).FormulaR1C1 = "=SUM(R[-" & (X - 2) & "]C:R[-1]C)"
Range("P" & X).FormulaR1C1 = "=SUM(R[-" & (X - 2) & "]C:R[-1]C)"

End Sub
Avatar billede clus Nybegynder
02. september 2004 - 15:13 #6
mange tak skal du have :-)

hvis du smider et svar så er der point på kontoen :-)
Avatar billede kabbak Professor
02. september 2004 - 15:14 #7
Et svar. ;-))

Har du testet med den sidste kode. ?
Avatar billede clus Nybegynder
02. september 2004 - 15:28 #8
kan ikke få den autoactivate til at fungere. der sker ingenting når jeg kommer tilbage til det ark med alle data, den opdaterer ikke.
Avatar billede kabbak Professor
02. september 2004 - 15:36 #9
Hvor har du sat koden,
den skal være her.
højreklik på fanen af dit samleark, vælg vis programkode, der skal den være.
Avatar billede kabbak Professor
02. september 2004 - 15:36 #10
altså denne del

Private Sub Worksheet_Activate()
Call CopyRækker
End Sub
Avatar billede clus Nybegynder
02. september 2004 - 15:48 #11
ja... Tror ikke at jeg sætter den ind det rigtige sted . Har forsøgt at sætte den ind både over og under den lange tekst, men uden held, jeg er ikke ret meget ind i det med makro / moduler.
Avatar billede kabbak Professor
02. september 2004 - 16:30 #12
den store kode skal være i et modul, ikke i arkmodulet,
Når du højreklikker på fanen af dit samleark og vælg vis programkode
Kan du i venstre side se dine arknavne.

Oppe i menulinien vælger du
Insert > module

Nu kan du se ovre under arkene til venstre står Module1.

Se nu er Module1 makeret med grå baggrund, det er her den store kode skal være

dobbeltklik på dit samlearks navne, så det bliver med grå baggrund, her skal den lille kode være.
Avatar billede clus Nybegynder
03. september 2004 - 11:24 #13
så fik jeg det til at virke  - mange tak
Avatar billede kabbak Professor
03. september 2004 - 22:31 #14
Tak for point. ;-))
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