• 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.

VBA: Verwijzen naar een bestandsnaam

Status
Niet open voor verdere reacties.

RoCompy87

Gebruiker
Lid geworden
13 nov 2006
Berichten
284
Hallo allemaal,

Ik ben sinds heel kort een beetje in VBA aan het knutselen bij het maken van macro's, maar ik kom ergens niet uit... Ik heb een macro die de waarden van een bepaald bereik moet kopiëren naar een nieuw werkblad. Daarna moet er worden teruggekeerd naar de originele werkmap (waarin dus het werkblad staat met het bereik dat werd gekopieerd naar het nieuwe bestand). Nu zou ik dit kunnen opgeven:
Code:
Windows("bestandsnaam.xls").Activate
Maar als iemand er voor kiest om de bestandsnaam te wijzigen, dan werkt de macro niet meer. Ik zat zelf al te zoeken in het declareren van variabelen. Dit heb ik onder andere geprobeerd:
Code:
Sheets("analyse").Select
    Dim invbestand
    invbestand = Range("H8").Value = ThisWorkbook.Name
'hier staat wat code die voor het kopiëren zorgt
Windows(invbestand).Activate
'en wat afsluitende code zoals het terug beveiligen van het werkblad

Kan iemand mij helpen? Misschien slaat bovenstaande wel helemaal nergens op :o
 
Ik heb nu dit:

Code:
Sub KopieerAnalyse()
    Sheets("analyse").Select
    Dim wbTarget
    wbTarget = ActiveWorkbook.Name
'
'instructies voor het kopiëren
'
    Windows(wbTarget).Activate
    Sheets("analyse").Select
'
'afsluitende instructies
'
    End Sub

En het werkt zonder foutmelding, dus waarschijnlijk zit het zo wel goed :thumb: Thanks!
 
Zoiets is het geraamte van de code:

Code:
Sub KopieerAnalyse()

    Dim wbSource [B]As Workbook[/B]
    Dim wbTarget [B]As Workbook[/B]
    
Set wbSource = Workbooks("naamvanhetbronbestand.xls")
Set wbTarget = ActiveWorkbook

'instructies voor het kopiëren
' bvb.

wbSource.Sheets("naamvandebronsheet").Range("A1").Copy wbTarget.Sheets("naamvandedoelsheet").Range("A1")

'afsluitende instructies

    End Sub

Geen .Select's en .Activate's nodig.

Wigi
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan