Avatar billede newbie.dk Praktikant
16. juli 2009 - 15:13 Der er 8 kommentarer og
1 løsning

SamleArk (oversigtsark) hente data fra andre ark

Jeg har et fil bestående af 7 ark. Jeg har lavet et ark hvor jeg gerne vil have samlet udvalgt data fra de andre ark, hvor efter de gerne skulle sorteres.
Jeg har prøvet med Konsolider. Både med og uden kæde. Jeg kan desværre ikke få det til at fungere som jeg gerne vil have. Og tror måske hellere ikke det er den funktion jeg skal bruge.

Lige for at beskrive det lidt bedre:
En funktion der går i ark1, ark2, ark3 osv. tager alt data fra B6 til O30 i alle ark, smider det over i oversigtsarket. Og derefter sotere dataerne efter kol B.
Når der så kommer ny data i ark'ne skulle de også meget gerne komme over i oversigtsarket, og sorteres igen.

Jeg har søgt en del i denne kategori, men har ikke fundet løsningen, håber der er en funktion der kan klare dette.
Avatar billede supertekst Ekspert
16. juli 2009 - 17:40 #1
Må VBA (Visual Basic for Applications) anvendes?
Avatar billede newbie.dk Praktikant
16. juli 2009 - 23:28 #2
Jeg kender slet ikke noget til VBA. Men hvis det er den eneste måde at løse det på, er jeg åben for det.
Bare man kan beholde nogle overskrifter, summere op og sætte det pæn op går det vel. Men ved ikke hvor meget man kan med VBA.
Avatar billede supertekst Ekspert
17. juli 2009 - 08:43 #3
Er det altid kun området B6:O30, der skal overføres?
Tilføres nye data kun til samme område (B6:O30)?

Har du mulighed for at sende en lille model på f.eks. 2 ark - og samlearket.

(mailadresse under min profil)
Avatar billede newbie.dk Praktikant
17. juli 2009 - 10:38 #4
jeg har lige sendt dig regnearket.

Det kan godt være der kommer flere rækker til området senere. Eller det er jeg faktisk sikker på der gør. Men maks. 50 rækker pr. ark.
Avatar billede newbie.dk Praktikant
14. august 2009 - 14:16 #5
Hej supertekst. Skal lige hører om du stadig har mulighed for at hjælpe?
Avatar billede supertekst Ekspert
14. august 2009 - 14:29 #6
Hej newbie

Sig frem - så kan jeg da tage stilling til det aktuelle..
Avatar billede supertekst Ekspert
03. september 2009 - 23:19 #7
Version 2:

Rem Version 2
Rem =========
Const arkAlleNavn = "Alle"
Const arkAlleFørsteRække = 12
Dim arkAlle As Worksheet
Dim aRække

Dim arkSort As Worksheet
Const arkSortFørsteRække = 6
Dim antalKolonner
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
    If Sh.Name = arkAlleNavn And Target.Address = "$I$1" Then
        opdaterAlle
    End If
End Sub
Public Sub opdaterAlle()                                  'kan evt. forbindes med knap
    Set arkAlle = ActiveWorkbook.Sheets(arkAlleNavn)
   
    opdateringAfAlle
   
    sætTimeStamp
   
    arkAlle.Activate
    ActiveSheet.Cells(arkAlleFørsteRække, 2).Select
   
   
    MsgBox ("Arket Alle er opdateret")
End Sub
Private Sub opdateringAfAlle()
    Application.ScreenUpdating = False
   
    rydArkAlle
   
    overførArkSort
   
    Application.ScreenUpdating = True

End Sub
Private Sub rydArkAlle()
Dim række
    arkAlle.Activate
    antalKolonner = ActiveCell.SpecialCells(xlLastCell).Column
       
    For række = arkAlleFørsteRække To 65000
Rem Check om total-række er nået (kol. I har formel, men ikke kol. G & K)
        If Cells(række, 9).HasFormula = True And Cells(række, 7).HasFormula = False And Cells(række, 11).HasFormula = False Then
            Exit For
        Else
            For Each celle In Range(Cells(række, 2), Cells(række, antalKolonner))
                If celle.HasFormula = False Then
                    celle.Value = ""
                End If
            Next
        End If
    Next række
End Sub
Private Sub overførArkSort()
    aRække = arkAlleFørsteRække
   
    For Each arkSort In ActiveWorkbook.Sheets
        If arkSort.Name <> arkAlleNavn Then
            arkSort.Activate
            For række = arkSortFørsteRække To 65000
Rem Check om Total-rækken er nået
                If Cells(række, 9).HasFormula = True And Cells(række, 7).HasFormula = False And Cells(række, 11).HasFormula = False Then
                    Exit For
                Else
                    If Cells(række, 2) <> "" Then
                        For Each celle In Range(Cells(række, 2), Cells(række, antalKolonner))
                            If celle.HasFormula = False Then
                                arkAlle.Cells(aRække, celle.Column) = celle.Value
                            End If
                        Next
                        aRække = aRække + 1
                    End If
                End If
            Next række
        End If
    Next
End Sub
Private Sub sætTimeStamp()
    arkAlle.Activate
   
    ActiveSheet.Range("I2") = Now
End Sub
Avatar billede newbie.dk Praktikant
19. september 2009 - 01:44 #8
Hej supertekst. Det er bare rigtigt godt. Perfekt!! det virker bare rigtigt godt.

Mange tak for hjælpen.
Avatar billede supertekst Ekspert
19. september 2009 - 10:22 #9
Hej
Fint - tak og selv tak
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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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