16. juli 2009 - 15:13Der 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.
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.
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)
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
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.