17. december 2008 - 12:33Der er
5 kommentarer og 1 løsning
Hente celle data fra andre projekt mapper
Jeg har en mappe med mange excel filer, jeg skal bruge en liste i et andet ark, hvor der står filnavn plus den data der står i en bestemt celle F.eks B4 Der er mange så du ville være rart med en macro.
Der er faktist filer i flere mapper så hvis man kan lave så den skriver "mappe navn" i A1 "Filnavn" i A2 og "Data fra Celle B4" i A3
Er er et lille eks. hvor der i: celle A1 står fulde stinavn (f.eks P:\TEST\) celle B1 står regnearknavn (f.eks TEST.XLS) celle C1 står arknavn (f.eks Ark1) celle D1 står cellenavn (f.eks F99)
Eks. åbner det angivet regneark, kopiere fra et bestem ark, fra en bestem celle og ligger det i samme celle i modtager arket. (Kopi af celle F99 fra TEST.XLS ender i celle F99 i modtager arket). Dette er ændres ved, at også have en modtager celle.
Sub Find() Dim strStinavn As String Dim strFilnavn As String Dim strFeltnavn As String Dim strArknavn As String
Hej Denne mackro henter data fra celle B1 i alle faner fra alle regneark i udvalgt katalger. Du skal copiere denne mackro over i et nye regneark, som dog ikke må gemmes i kataloget med dine "data". PÅ Ark2 i Celle A1 skriver du dit katalog ( eks c:\test1\ ), i celle A2 det næste katalog osv. Dine data indlæses ind på Ark1
Sub HentData() Dim Linje As Integer, Katalog As Integer, ArkNo As Integer Dim NyPath As String, myName As String Linje = 1 Katalog = 1
On Error GoTo Fejl Application.ScreenUpdating = False
'NyPath = "c:\" Do While ThisWorkbook.Sheets("Ark2").Cells(Katalog, 1).Value <> "" ' NyPath = ThisWorkbook.Sheets("Ark2").Cells(Katalog, 1).Value
myName = Dir(NyPath & "*.xls")
Do While myName <> "" If myName <> "." And myName <> ".." Then Workbooks.Open Filename:=NyPath & myName, ReadOnly:=True
For ArkNo = 1 To ActiveWorkbook.Sheets.Count ThisWorkbook.Sheets("Ark1").Cells(Linje, 1).Value = myName ThisWorkbook.Sheets("Ark1").Cells(Linje, 2).Value = ActiveWorkbook.Sheets(ArkNo).Name ThisWorkbook.Sheets("Ark1").Cells(Linje, 3).Value = ActiveWorkbook.Sheets(ArkNo).Range("B1") Linje = Linje + 1 Next ArkNo
Jeg kan bare ikke få den til at køre jeg har rettet celle navn til. men hvad er der ellers jeg skal rette til. Hva med (NyPath="c:\") hvad hen viser den til?
Hej 'NyPath="c:\" er noget kode er ikke bruge , bemærk ' (flugeben ) først i linjen hvilket betyder at det ikke er kode.
Hvis du vilhave en tom linjen sætter du : Linje = Linje + 1 til :Linje = Linje + 2
Hvis du kun vil have ark1 Ændre du : For ArkNo = 1 To ActiveWorkbook.Sheets.Count til : ArkNo = 1 og sletter : Next ArkNo
ArkNo er index nr for arket , Sheets(ArkNo) kan også rettes til eks Sheets("Ark1") . Navnene retter du til så det passer med hvad du har
mvh oleelo
Synes godt om
Ny brugerNybegynder
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.