• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

makro - kopieren plakken - andere bestandsnaam

Status
Niet open voor verdere reacties.

Albatros

Gebruiker
Lid geworden
4 nov 2001
Berichten
388
Hoi,


Ik heb een invul sheet, met een macro, die gegevens ophaalt uit een ander bestand.
Als ik het invul bestand opsla onder het weeknummer, werkt de makro niet meer.
Wat is hier aan te doen?
Iets met "actuele" sheet, van waaruit de makro wordt geactiveerd, of iets met een MSGbox, waarin de huidige bestandsnaam ingetypt moet worden?

Code:
Sub Macro2()
'
' Macro2 Macro
'
    Workbooks.Open Filename:= _
    "C:\Documents and Settings\Mijn documenten\Excel\Test waarden.xls"
    Application.Goto Reference:="R1C1"
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Windows("Test invul.xls").Activate
    Application.Goto Reference:="R5C1"
    ActiveSheet.Paste
    Application.Goto Reference:="R5C1"
    Windows("Test waarden.xls").Activate
    ActiveWindow.Close
End Sub

Albatros
 
Ik veronderstel dat volgende regel verwijst naar je invulbestand van voor de naamsverandering:

Code:
Windows("Test invul.xls").Activate

Aangezien je de naam van het workbook gaat veranderen naar iets anders, gaat hij het workbook in bovenstaande regel code niet meer vinden, en een fout geven.

Je werkt beter met twee workbook variabelen. 1 voor de file die je gaat openen, en de andere voor het huidige workbook in onder te brengen.
 
Klopt, "test invul.xls'' wordt wekelijks opgeslagen in bv. ''test wk01 07.xls'', test wk02 07.xls, enz.
Vandaar dat per opgeslagen bestand de makro niet verder loopt.

Albatros
 
Klopt, "test invul.xls'' wordt wekelijks opgeslagen in bv. ''test wk01 07.xls'', test wk02 07.xls, enz.
Vandaar dat per opgeslagen bestand de makro niet verder loopt.

Albatros


Stukje voorbeeldcode om met twee workbooks te werken.

Code:
Dim wbSoure as Workbook
Dim wbTarget as Workbook
Dim SourcePath as String

'het huidige workbook is het targetworkbook
wbTarget=ActiveWorkbook

SourcePath="C:\source.xls"
wbSource=Workbooks.Open(SourcePath)

nu heb je twee workbook variabelen die verwijzen naar de correcte bestanden, en die kan je dan ook zo aanspreken.

vb. waarde in A1 van WbSource moet in A2 van wbTarget staan.

Code:
wbTarget.sheets("sheet waar data moet komen").range("A2")=wbSource.sheets("sheets waar de data staat").range("A1")
 
Finch,

Ik kom er maar niet uit.:confused::confused:
Mischien dat ik iets over het hoofd zie.:mad:
nb. het bron bestand heeft wel altijd een vaste plaats.

Albatros
 

Bijlagen

Hier wat code (jouw code as basis)

Code:
[FONT="Courier New"]Sub Macro2()

Dim wbSource As Workbook
Dim wbTarget As Workbook
Dim SourcePath As String

'het huidige workbook is het targetworkbook
Set wbTarget = ActiveWorkbook

SourcePath = "C:\Documents and Settings\Mijn documenten\Excel\Test waarden.xls"
Set wbSource = Workbooks.Open(SourcePath)

wbSource.Activate
Application.Goto Reference:="R1C1"
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
    
With wbTarget
    .ActiveSheet.Paste
    .Application.Goto Reference:="R5C1"
    .Close
End With
End Sub[/FONT]
 
Hoi Finch

Na een kleine aanpassing ziet de code er nu uit:
Code:
Sub Macro2()

Application.ScreenUpdating = False

Dim wbSource As Workbook
Dim wbTarget As Workbook
Dim SourcePath As String

'het huidige workbook is het targetworkbook
Set wbTarget = ActiveWorkbook

SourcePath = "C:\Documents and Settings\Gijs\Mijn documenten\Excel\Test waarden.xls"
Set wbSource = Workbooks.Open(SourcePath)

wbSource.Activate
Application.Goto Reference:="R1C1"
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
ActiveWindow.Close
    
With wbTarget
    .Application.Goto Reference:="R5C1"
    .ActiveSheet.Paste
    .Application.Goto Reference:="R5C1"
End With
Application.ScreenUpdating = True
End Sub

Zonder jouw hulp was mij dit niet gelukt. Het werkt nu perfect!
Reuze bedankt !!:thumb::thumb:

Albatros
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan