Relatieve verwijzing van bestandsnaam in VBA-code

Status
Niet open voor verdere reacties.

HELIX585

Nieuwe gebruiker
Lid geworden
7 okt 2014
Berichten
1
Beste,

Ik heb een template "PROBEERSEL2.xlsm" aangemaakt waar ik macro's heb opgenomen. Eén van die macro's bevat volgende code :
//
Sub Macro1()
'
' Macro1 Macro
'
' Sneltoets: Ctrl+Shift+M
'
Windows("mengselcatalogus ob dl.xlsx").Activate
Selection.Copy
Windows("PROBEERSEL2.xlsm").Activate
ActiveCell.Offset(0, 12).Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows("mengselcatalogus ob dl.xlsx").Activate
ActiveWindow.SmallScroll Down:=-12
ActiveCell.Offset(1, 0).Range("A1:A81").Select
Application.CutCopyMode = False
Selection.Copy
ActiveWindow.SmallScroll Down:=-3
Windows("PROBEERSEL2.xlsm").Activate
ActiveWindow.SmallScroll Down:=-24
ActiveCell.Offset(0, -12).Range("A1").Select
ActiveSheet.Paste Link:=True
Windows("mengselcatalogus ob dl.xlsx").Activate
Application.CutCopyMode = False
Windows("PROBEERSEL2.xlsm").Activate
End Sub
//


Deze file is bedoeld om een productrecept aan te maken vanuit een samenvattende mengselcatalogus. Eens het productrecept automatisch gegenereerd werd, sla ik het op als "naam product". Als dit recept dan verandert, moet ik deze macro nog eens laten lopen, maar zoals je kan zien verwijst deze macro dan nog steeds naar "PROBEERSEL2", waardoor excel een foutmelding genereerd. Door wat moet ik "PROBEERSEL2"veranderen in deze code, zodat de macro ook werkt als ik deze file een andere naam geef?

Alvast bedankt!
Mvg,
Gert
 
- gebuik svp code tags rondom VBA-code [ code ] .... [ /code ] (spaties tussen de rechte haken verwijderen.
- vermijd het gebruik van 'Activate' en 'Select' in VBA; ma.w.: kuis je code
- gebruik in plaats van windows(...) ThisWorkbook.
 
Gert,

Lastig om dit zo te bedenken zonder bestanden om te kunnen testen. Even uit het hoofd dan maar.

Open bestand "PROBEERSEL2.xlsm" en "mengselcatalogus ob dl.xlsx" beide en ga in "PROBEERSEL2.xlsm" staan
op het tabblad waar je de gegevens wil hebben.

Zoals je ziet gebruik ik de naam "PROBEERSEL2.xlsm" niet in de macro, maar ik gebruik Activeworkbook.
Als je deze macro dus gebruikt in een bestand met een andere naam werkt hij ook.

Code:
Sub Macro1()
'
' Macro1 Macro
'
' Sneltoets: Ctrl+Shift+M
'
Workbook("mengselcatalogus ob dl.xlsx").Selection.Copy
ActiveWorkbook.Offset(0, 12).Range("A1").PasteSpecial Paste:=xlPasteValues, _
    Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Workbook("mengselcatalogus ob dl.xlsx").Offset(13, 0).Range("A1:A81").Copy
ActiveWorkbook.Offset(-24, -12).Paste Link:=True

End Sub

Veel Succes.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan