Avatar billede kosl99 Praktikant
11. april 2005 - 13:09 Der er 15 kommentarer og
2 løsninger

Hjælp til dynamisk opdatering af tabel.

Jeg 4 tabeller. Indholdet i disse bliver automatisk genereret af forskellige andre tabeller. Kolonnerne er helt ens i de 4 tabeller. Jeg vil gerne have en 5. tabel som akkumulere indholdet af de 4 tabeller, således at indholdet i kolonne A-X i tabel1 bliver kopieret over i tabal5 under denne skal indholdet af tabel 2 3 4 komme. Tabellerne 1-4 er dynamiske i antal rækker, men ikke i antal kolonner.
Er dette muligt og hvordan?
Avatar billede lasseo Nybegynder
11. april 2005 - 13:20 #1
Jeg er ikke helt sikker på hvad du vil.
Hvis række 1 i alle 4 tabeller f.eks. er "omsætning" og kolonne b er "Tøj" vil du så have ark 5 til at vise
Omsætning1    100
Omsætning2    150
Omsætning3    120
Omsætning4    130
Subtotal      500

Eller vil du blot vise
Omsætning1-4  500

??
Avatar billede kosl99 Praktikant
11. april 2005 - 13:25 #2
Den sidste du nævner:
Omsætning1Tabel1    100Tabel1
Omsætning2Tabel1    150Tabel1
Omsætning3Tabel1    120Tabel1
Omsætning4Tabel1    130Tabel1
Omsætning1Tabel2    100Tabel2
Omsætning2Tabel2    150Tabel2
Omsætning3Tabel2    120Tabel2
Omsætning4Tabel2    130Tabel2

Række antal i tabellerne er dynamiske.
Avatar billede lasseo Nybegynder
11. april 2005 - 13:34 #3
Jeg er stadig lidt i tvivl om dit ønske. Skal tabel 5 vise alle posterne fra tabel 1-4 (hvis hver tabel har 1000 rækker får tabel 5 altså 4000 rækker)?
Eller skal tabel 5 have lige så mange rækker som tabel1-4 (altså 1000 rækker), hvor der vises en sum for tabel 1-4?
Avatar billede kosl99 Praktikant
11. april 2005 - 13:46 #4
Nemlig: Tabel 5 vise alle posterne fra tabel 1-4 (hvis hver tabel har 1000 rækker får tabel 5 altså 4000 rækker)?
Avatar billede lasseo Nybegynder
11. april 2005 - 14:07 #5
Så må det være en macro du skal have fat i. Jeg er ikke ekspertens bedste på det område (langt fra!), men nedenstående virker for mig, når de 4 tabeller står i er i samme worksheet i arkene ark1 til ark4 og ønskes samlet i ark 5 fra række 3 og ned (kopiering er jo let, men jeg er sikker på andre kan lave en noget kortere og mere elegant makro):

Sub Totaler1_4()
'
' Totaler1_4 Makro
' Makro indspillet 11-04-2005 af Lasse Olesen
'

'
    Range("A3").Select
    Sheets("Ark1").Select
    Range("A1").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlUp)).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlToLeft)).Select
    Selection.Copy
    Sheets("Ark5").Select
    ActiveSheet.Paste
    Selection.End(xlDown).Select
    Selection.End(xlDown).Select
    Selection.End(xlDown).Select
    Selection.End(xlUp).Select
    Range("A7").Select
    Sheets("Ark2").Select
    Range("A2").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlUp)).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlToLeft)).Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Ark5").Select
    ActiveSheet.Paste
    Selection.End(xlDown).Select
    Selection.End(xlDown).Select
    Selection.End(xlUp).Select
    Range("A10").Select
    Sheets("Ark3").Select
    Range("A2").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlUp)).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlToLeft)).Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Ark5").Select
    ActiveSheet.Paste
    Selection.End(xlDown).Select
    Selection.End(xlDown).Select
    Selection.End(xlDown).Select
    Selection.End(xlUp).Select
    Range("A13").Select
    Sheets("Ark4").Select
    Range("A2").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlUp)).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlToLeft)).Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Ark5").Select
    ActiveSheet.Paste
End Sub
Avatar billede kosl99 Praktikant
11. april 2005 - 14:38 #6
Tja der kan man bare se, en macro kan gøre det og det havde jeg slet ikke tænkt på.
Vil du lige sende et svar (lasseo) så vil jeg give dig point.
Avatar billede kabbak Professor
11. april 2005 - 14:42 #7
en kortere udgave, til orientering

I Ark5 modulet

Private Sub Worksheet_Activate()
Columns("A:X").ClearContents ' tømmer arket inden nye sættes ind
OpdaterArk5
End Sub


I et Modul

Public Sub OpdaterArk5()
ark = Array("Ark1", "Ark2", "Ark2", "Ark4") ' dine ark med tabeller
Dest = "Ark5" ' dit ark med samlet tabel
For i = 0 To UBound(ark)
RW = Sheets(Dest).Range("A65536").End(xlUp).Row + 1
FRW = Sheets(ark(i)).Range("A65536").End(xlUp).Row
Sheets(ark(i)).Range("A1:X" & FRW).Copy Sheets(Dest).Range("A" & RW)
Next
End Sub
Avatar billede lasseo Nybegynder
11. april 2005 - 14:43 #8
Ja så længe jeg ikke skal have karakter for det kunstneriske indtryk for den macro kan sikkert laves ½ meter kortere :o)
Avatar billede lasseo Nybegynder
11. april 2005 - 14:45 #9
Tak kabbak - jeg viste du kunne skære den kortere, men blind høne finder heldigvis også korn, selv om den går sine omveje =:o)
Avatar billede kosl99 Praktikant
12. april 2005 - 09:18 #10
Tak for hjælpen kabbak, lige et problem, mine tabeller 1-4 indeholder nogle formler, så jeg vil gerne at det kun er values der bliver pastet ind i tabel 5
Avatar billede kabbak Professor
12. april 2005 - 09:27 #11
Public Sub OpdaterArk5()
ark = Array("Ark1", "Ark2", "Ark2", "Ark4") ' dine ark med tabeller
Dest = "Ark5" ' dit ark med samlet tabel
For i = 0 To UBound(ark)
RW = Sheets(Dest).Range("A65536").End(xlUp).Row + 1
FRW = Sheets(ark(i)).Range("A65536").End(xlUp).Row
Sheets(ark(i)).Range("A1:X" & FRW).Copy
Sheets(Dest).Range("A" & RW).PasteSpecial Paste:=xlValues
Next
End Sub
Avatar billede kosl99 Praktikant
12. april 2005 - 09:33 #12
yehaa, send mig et svar og jeg giver point, kan men egentlig dele point mellem dig og lasseo, han har jo egentlig også svaret?
Avatar billede kabbak Professor
12. april 2005 - 09:56 #13
giv det hele til Lasseo, han fortjener dem
Avatar billede lasseo Nybegynder
12. april 2005 - 09:59 #14
Kabbak, du er for beskeden.
kosl99=> Jeg synes roligt du kan dele points. Kabbak kom jo med den kortere udgave, jeg vidste fandtes, men ikke selv kunne levere, og vi lærer alle mest af at fastholde jagten efter den bedste løsning. Derfor bør hans anstrengelser belønnes.
Avatar billede kosl99 Praktikant
12. april 2005 - 10:04 #15
Jeg opretter lige endnu et excel spørgsmål som i så også kan slås om.
Avatar billede kabbak Professor
12. april 2005 - 10:51 #16
ok lasseo, så smider jeg et svar ;-))
Avatar billede kabbak Professor
12. april 2005 - 11:46 #17
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