Ga naar inhoud

Excel; gegevens uit een bestand in een ander bestand zetten


Brie81

Aanbevolen berichten

Hoi!

Hopelijk kan iemand me helpen...

Ik heb een soort van moederbestand (Personen per maand - test.xls), waarbij de waarden van diverse vakken ingevuld moeten worden met waarden uit een tabel (Personen - test.xls). Deze tabel verschilt per keer qua inhoud. De vorm (het aantal rijen en kolommen) blijven gelijk (en ook de "omschrijving" hiervan). Op welke manier kan ik het moederbestand automatisch in laten vullen?

Groetjes Brigitte

Personen - test.xls

Personen per maand - test.xls

Link naar reactie
Delen op andere sites

Hallo Brigitte,

Misschien niet de meest spannende methode, maar je kunt in cel B3 van "Personen per maand-Test" tikken "=" (alsof je een formule gaat intikken) en dan naar het bestand "Personen - Test" en klikken op cel B2 gevolgd door Enter. Nu heb je tegen Cel B3 gezegd dat hij "gelijk" is aan cel B2. Verander je in "Personen - test" cel B2, dan veranderd de waarde in cel B3 van "Personen per maand - test" mee. Is dit wat je bedoelt, of is dit te simpel gedacht?

Link naar reactie
Delen op andere sites

Dit is eigenlijk net wat te simpel gedacht; het bestand "Personen - Test" is namelijk een bestand dat steeds een andere naam krijgt bv week 1, week 2 enz. Aangezien de vorm steeds hetzelfde is dacht ik dat het wel mogelijk zou zijn om het steeds in een moederbestand te kopieren.

Ik heb inmiddels op een engelse site ook een soort van antwoord gekregen, maar ik begrijp nu nog niet helemaal wat er gedaan wordt...

Dus ik ga eerst maar eens even puzzelen, om te kijken of ik er zelf uit kom. Als je het interessant vind om ook mee te kijken; heb ze hier bijgevoegd...

Het zou iets moeten zijn waarbij het inderdaad zo werkt dat er gegevens gekopieerd worden via een macro.

Ik ben benieuwd!

Groetjes

Personen per maand-test(1).xls

Personen-test(1).xls

Link naar reactie
Delen op andere sites

De bestanden die ik in de post hiervoor geplaatst heb zijn niet precies wat ik zocht, helaas...

Inmiddels heb ik zelf nog iets zitten proberen (simpel door een macro op te nemen) en ik denk dat ik hiermee een heel eind op de goede weg zit. Alleen werkt de macro niet helemaal op de manier zoals ik zou verwachten; hij geeft een foutmelding, waardoor de zojuist "geïmporteerde" sheets niet gevuld kunnen worden met de gegevens van het geopende bestand. Ik kom er alleen niet uit waarom dat dit niet lukt...

Kan iemand me hiermee helpen?

Daarnaast heb ik nu natuurlijk gekozen voor bepaalde namen, maar het is de bedoeling dat de bestanden verschillende namen mogen hebben, is daar iets eenvoudigs voor te bedenken?

Aan de hand van bijgevoegde bestanden zal e.e.a. wel duidelijker zijn, verwacht ik. Het gaat erom dat ik vanuit de diverse bestanden (o.a. Personen X - test.xls en Personen Y - test.xls) werk, dat de sheet van "Personen per maand - test" ingevoegd wordt en dat hierin de getallen uit het geopende bestand (personen X of Y of Z of enz.) ingevoegd worden. Dit zou heel eenvoudig moeten gaan, aangezien deze nu in dezelfde workmap zitten, dacht ik. Maar hier loopt de macro dus vast...

Iemand tips/een idee?

Groetjes Brigitte

Personen X - test.xls

Personen Y - test.xls

Personen per maand - test.xls

Link naar reactie
Delen op andere sites

Inmiddels ben ik weer een stap verder; er blijft nog één ding over, die zal ik in een nieuwe discussie zetten (de mogelijkheid om de macro binnen verschillende bestanden te gebruiken, ipv deze éne).

Voor degenen die geïnteresseerd zijn, de bestanden zal ik toevoegen en hierbij de code tot nu toe:

 
Sub Overzicht_maken_per_afdeling()
'
' Overzicht_maken_per_afdeling Macro
'

'
   Range("A1:A6").Select
   Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
       TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
       Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
       :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
       Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1 _
       )), TrailingMinusNumbers:=True
   Range("B2:M6").Select
   Selection.NumberFormat = "0"
   Range("A1").Select
[color=deepskyblue]  Sheets("Personen X - test1").Select[/color]
[color=deepskyblue]  Sheets("Personen X - test1").Name = "CSV"[/color]
   Range("A1").Select
   Workbooks.Open Filename:= _
       "C:\Documents and Settings\brigitte\Bureaublad\Test\Personen per maand - test.xls"
   Sheets("Blad1").Select
[color=deepskyblue]  Sheets("Blad1").Copy Before:=Workbooks("Personen X - test1.csv").Sheets(1)[/color]
   Windows("Personen per maand - test.xls").Activate
   ActiveWindow.Close
   Sheets("Blad1").Select
   Sheets("Blad1").Name = "Personen per afdeling"
   Range("B3").Select
   ActiveCell.FormulaR1C1 = "=CSV!R[-1]C"
   Range("B3").Select
   Selection.AutoFill Destination:=Range("B3:B7"), Type:=xlFillDefault
   Range("B3:B7").Select
   Range("B10").Select
   ActiveCell.FormulaR1C1 = "=CSV!R[-8]C[1]"
   Range("B10").Select
   Selection.AutoFill Destination:=Range("B10:B14"), Type:=xlFillDefault
   Range("B10:B14").Select
   Range("B17").Select
   ActiveCell.FormulaR1C1 = "=CSV!R[-15]C[2]"
   Range("B17").Select
   Selection.AutoFill Destination:=Range("B17:B21"), Type:=xlFillDefault
   Range("B17:B21").Select
   Range("B24").Select
   ActiveCell.FormulaR1C1 = "=CSV!R[-22]C[3]"
   Range("B24").Select
   Selection.AutoFill Destination:=Range("B24:B28"), Type:=xlFillDefault
   Range("B24:B28").Select
   Range("B31").Select
   ActiveCell.FormulaR1C1 = "=CSV!R[-29]C[4]"
   Range("B31").Select
   Selection.AutoFill Destination:=Range("B31:B35"), Type:=xlFillDefault
   Range("B31:B35").Select
   Range("B38").Select
   ActiveCell.FormulaR1C1 = "=CSV!R[-36]C[5]"
   Range("B38").Select
   Selection.AutoFill Destination:=Range("B38:B42"), Type:=xlFillDefault
   Range("B38:B42").Select
   Range("B45").Select
   ActiveCell.FormulaR1C1 = "=CSV!R[-43]C[6]"
   Range("B45").Select
   Selection.AutoFill Destination:=Range("B45:B49"), Type:=xlFillDefault
   Range("B45:B49").Select
   Range("B52").Select
   ActiveCell.FormulaR1C1 = "=CSV!R[-50]C[7]"
   Range("B52").Select
   Selection.AutoFill Destination:=Range("B52:B56"), Type:=xlFillDefault
   Range("B52:B56").Select
   Range("B59").Select
   ActiveCell.FormulaR1C1 = "=CSV!R[-57]C[8]"
   Range("B59").Select
   Selection.AutoFill Destination:=Range("B59:B63"), Type:=xlFillDefault
   Range("B59:B63").Select
   Range("B66").Select
   ActiveCell.FormulaR1C1 = "=CSV!R[-64]C[9]"
   Range("B66").Select
   Selection.AutoFill Destination:=Range("B66:B70"), Type:=xlFillDefault
   Range("B66:B70").Select
   Range("B73").Select
   ActiveCell.FormulaR1C1 = "=CSV!R[-71]C[10]"
   Range("B73").Select
   Selection.AutoFill Destination:=Range("B73:B77"), Type:=xlFillDefault
   Range("B73:B77").Select
   Range("B80").Select
   ActiveCell.FormulaR1C1 = "=CSV!R[-78]C[11]"
   Range("B80").Select
   Selection.AutoFill Destination:=Range("B80:B84"), Type:=xlFillDefault
   Range("B80:B84").Select
   Range("B84,B77,B70,B63,B56,B49,B42").Select
   Range("B42").Activate
   Range("B84,B77,B70,B63,B56,B49,B42,B35,B28,B21,B14,B7").Select
   Range("B7").Activate
   Selection.Borders(xlDiagonalDown).LineStyle = xlNone
   Selection.Borders(xlDiagonalUp).LineStyle = xlNone
   Selection.Borders(xlEdgeLeft).LineStyle = xlNone
   Selection.Borders(xlEdgeTop).LineStyle = xlNone
   With Selection.Borders(xlEdgeBottom)
       .LineStyle = xlContinuous
       .Weight = xlThin
       .ColorIndex = xlAutomatic
   End With
   With Selection.Borders(xlEdgeRight)
       .LineStyle = xlContinuous
       .Weight = xlThin
       .ColorIndex = xlAutomatic
   End With
   Range("A1").Select
       NewName = Application.GetSaveAsFilename(Title:="Save Workbook As", _
       FileFilter:="Excel Workbooks(*.xls),*.xls")
   ActiveWorkbook.SaveAs Filename:=NewName, FileFormat:=xlNormal, _
       Password:="", WriteResPassword:="", _
       ReadOnlyRecommended:=False, CreateBackup:=False
End Sub

De met blauw aangegeven regels moeten dus nog aangepast worden om de macro op andere bestanden toe te kunnen passen.

Deze vraag heb ik trouwens ook gesteld op http://www.excelforum.com/excel-programming/716569-pull-or-push-data-from-one-workbook-to-another.html

Groetjes Brigitte

Personen X en Y CSVbestanden.zip

Personen per maand - test.xls

Link naar reactie
Delen op andere sites

Gast
Dit topic is nu gesloten voor nieuwe reacties.
×
×
  • Nieuwe aanmaken...

Belangrijke informatie

We hebben cookies geplaatst op je toestel om deze website voor jou beter te kunnen maken. Je kunt de cookie instellingen aanpassen, anders gaan we er van uit dat het goed is om verder te gaan.