Just nu i M3-nätverket
Gå till innehåll

Makron i Excel


Mags

Rekommendera Poster

Hej.

 

Jag är helt ny med att använda mig av makron och har kollat runt lite de senaste dagarna för att försöka hitta info om hur man läser in flera excelfiler till en. Jag har hittat lite här och där, och tror att jag har fått en uppfattning om vad jag behöver göra. Och jag antar att för de som är vana så är detta ett enkelt "problem". Det jag är ute efter är:

* Jag har en huvudfil där jag trycker igång makrot

* Den ska då ta data (specifierat område) från alla filer som slutar på .xlsx i en specifik mapp utan att öppna upp dem (kommer vara omkring 100 filer)

* Datan ska sedan klistras in i huvudfilen

* Då data har tagits från en fil i den specifika mappen, så ska filen flyttas till en arkivmapp

 

Jag är säker på att jag glömt ngt/missuppfattat ngt med vad makron kan göra, men all hjälp vore uppskattat!

 

Mvh, Mags

Länk till kommentar
Dela på andra webbplatser

Det är kod liknande koden nedan du behöver. Denna summerar värden i en viss cell i samtliga arbetsböcker i en mapp. Sedan skrivs summan ut i arbetsboken Macro.xlsm.

 

Du behöver göra lite ändringar i följande kodsnutt och du behöver även kod för ett dokument som du kopierar till:

Set SummaCell = Range("A1")

Nr = Range("A1").Value

Summa = Summa + Nr

 

Sub SummeraSammaCell()
Dim Summa As Variant
Dim Nr As Variant
Dim strBook As String, strDir As String, strSpec As String
Dim objBook As Object
Dim SummaCell As Range

strDir = InputBox("Skriv in sökväg till mapp!")
strSpec = "*.xls"                   	'Ändra till *.xlsx vid behov
strBook = Dir(strDir & "\" & strSpec)

Do Until strBook = ""
   Set objBook = Workbooks.Open(strDir & "\" & strBook)
   Set SummaCell = Range("A1")
   Nr = Range("A1").Value
   Summa = Summa + Nr

   objBook.Close savechanges:=True

   strBook = Dir()
Loop
'MsgBox Summa
Workbooks("Summera.xlsm").Worksheets("Blad1").Range("A1") = Nr

End Sub
[code]

[/code]

 

Edit: Gjort Monshi nöjd smile.gif

Länk till kommentar
Dela på andra webbplatser

Fast Tune - vart refererar raden

Set SummaCell = Range("A1")

 

Och vilket blad hämtas data från...

 

Okej, jag är petig :)

men en With-sats tror jag behövs... äsch, jag tar din grund och...

 

Sub Kopiering()
Dim strBook As String, strDir As String, strSpec As String
Dim objBook As Object
Dim rnTarget As Range
Set rnTarget = Blad1.Range("A1") 'startcell, dit allt kopieras

With Application.FileDialog(msoFileDialogFolderPicker)
.Show
strDir = .SelectedItems(1)
End With

strSpec = "*.xlsx"                   	'Ändra till *.xlsx vid behov
strBook = Dir(strDir & "\" & strSpec)

Do Until strBook = ""
With Workbooks.Open(strDir & "\" & strBook)
   	.Sheets(1).Range("A1:A10").Copy 'området kopieras från första bladet i boken, ändra!
   	rnTarget.PasteSpecial xlPasteValues
   	Set rnTarget = rnTarget.Offset(10) 'ny ref, lika många rader ned som det som klistrats in
   	.Close savechanges:=False
End With
strBook = Dir()
Loop


End Sub

Flytta filerna? Det får du göra förhand även om det är fullt möjligt att göra det i Excel...

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...