PNG32 PNG32 PNG32 PNG32
PNG32
Forum Excel, VBA, VSTO, Exceltips, Excelhj�lp PNG32 drivs av Excelspecialisten    Logga in     English
PNG32
PNG32 PNG32
PNG32

Logga in

PNG32

Du är inte inloggad. Logga in eller registrera dig för att skriva inlägg eller svara på inlägg.

För frågor om forumet, kontakta oss på webmaster@excelforum.se

PNG32 PNG32
PNG32 PNG32
PNG32

Excelforum

PNG32

 
ForumForumDiskussionerDiskussionerVBAVBASamla data från 3 olika arbetsböckerSamla data från 3 olika arbetsböcker
Föregående Föregående
 
Nästa Nästa
Nytt inlägg
 2016-06-23 12:49
 

Jag har tre arbetsböcker som har rubriker och data i kolumnerna A:M där användare skriver in sina uppgifter och redovisningar. Dessa tre vill jag ska sammanställas i en fjärde arbetsbok som är "allmän" dvs som alla kan läsa men inte redigera. Den fjärde ska ha samma rubriker som de tre andra.

Finns någon bra VBA för detta? Jag har testat att hämta data via SQL i Excel men då får jag tre olika tabeller som sorterar sig själva.

/Fixzy

Nytt inlägg
 2016-06-23 16:05
 
 Ändrad av anonymous  på 2016-06-23 16:08:00

En 2-delad fuling, i princip bara klipp och klistra. men du kanske kan använda det som inspiration

  

Option Explicit

Sub Beställningsmakro()
'Anger vilken fil som är sammanställningsbok, samt
' förutsätter att den är öppen
Dim wMålBok As Workbook
Set wMålBok = Workbooks("Bok5")
'Här kan du städa undan gamla data i målfilen om du vill, typ:
wMålBok.Worksheets("blad1").Range("A2").Select
  Range(Selection, ActiveCell.SpecialCells(xlLastCell)).delete
 

'sen "beställer"  du import av dina 4 filer: typ: 

ImporteraData wMålBok, sKällbok:="C:\tmp\Bok1.xlsx"
ImporteraData wMålBok, sKällbok:="C:\tmp\Bok2.xlsx"
ImporteraData wMålBok, sKällbok:="C:\tmp\Bok3.xlsx"
End Sub
 

' och nedanstående makro tar emot beställningen och gör importen.
Private Sub ImporteraData(wMålBok As Workbook, sKällbok As String)

Dim wKällbok As Workbook

'Set wKällbok = Workbooks.Open(sKällbok)
' Förutsätter att dina källfier är stängda och behöver öppnas.
' annars får du köra en koll i den här stilen
On Error Resume Next
Set wKällbok = Workbooks.Open(sKällbok)
If wKällbok Is Nothing Then
Set wKällbok = Workbooks.Open(sKällbok)
End If
' Normalt sett brukar man undvika klipp och klistra,
'men din bok är så liten så det borde gå ändå.

' här antar jag att dina källdata altid ligger på blad1 och börjar i A2,
' annars får du krångla till det och skicka med bladnamnet när du gör "beställningen" 
' från det första makrot
wKällbok.Worksheets("blad1").Activate
Range("A2").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Selection.Copy

' klistra in data, kräver en del krångel för att hitta
' sista "lediga" cellen.
'Här antar jag att du inte har mer än 32000 rader och letar upp
' den sista lediga cellen i A kolumnen
wMålBok.Activate
Range("A32000").Select
Selection.End(xlUp).Select
Selection.Offset(1, 0).Select
ActiveSheet.Paste
End Sub 

 

 

ED: jag hoppas att du inser att jag gör nästan allt fel i anropen mellan makrona? Men eftersom det fungerar så tänker jag strunta i det...

Föregående Föregående
 
Nästa Nästa
ForumForumDiskussionerDiskussionerVBAVBASamla data från 3 olika arbetsböckerSamla data från 3 olika arbetsböcker

PNG32 PNG32
Excelforum drivs av Excelspecialisten som bedriver utbildning i Excel och VBA, tillhandahåller support och hjälp med Excel, utvecklar program i Excel. Är ni i behov av en konsult inom Excel, VBA eller VSTO, eller söker en excelkurs, kontakta oss.
Copyright 2013 ExcelSpecialisten XLS AB   Användarvillkor  Personliga uppgifter