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

Workbooks.Open Filename:= werkt niet naar wens

Status
Niet open voor verdere reacties.

WimenBeer

Verenigingslid
Lid geworden
12 sep 2008
Berichten
808
Ik heb al in een vorige vraag een probleem opgeloste gekregen ('#WAARDE! fout bij gebruik function in VBA'), maar in deze zelfde VBA functie en/of sub krijg ik nog iets niet voorelkaar.

Code:
Dim ControleInd As String

Function startwk(mw As String, w As String, m As String, j As String)
    wkstaat mw & j & m & w
    startwk = ControleInd
End Function

Sub wkstaat(c0)
    If Dir("\\Sadnl\dfsnl\GRNL00\0164\Beheer\PIT\Urenstaten Ordina\" & c0 & ".*") <> "" Then
        ControleInd = "X"
        Ophalen_Uren (c0)
    Else
        ControleInd = ""
    End If
End Sub

Sub Ophalen_Uren(c0)
    On Error GoTo Ophalen_Uren_err
    
    Workbooks.Open Filename:= _
        "\\Sadnl\dfsnl\GRNL00\0164\Beheer\PIT\Urenstaten Ordina\" & c0 & ".xls"
    Range("B10:K27").Select
    Selection.Copy
    ActiveWindow.Close
    Sheets("Weekdata").Select
    ActiveSheet.Paste

Ophalen_Uren_Exit:
    Exit Sub

Ophalen_Uren_err:
    MsgBox Err
    GoTo Ophalen_Uren_Exit

End Sub

De functie startwk en de aanroep van de sub wkstaat werken naar wens, alleen als ik inderdaad een bestand heb gevonden (controleInd = "X") dan wil ik een vaste inhoud uit dat bestand Range("B10:K27").Select kopieren naar de active sheets Weekstaat.

Op zich lijkt het geen probleem en zou het ook moeten werken echter het kopieren gebeurt alleen als ik Macro1() direct aanroep via Macro/'Macro1'/Uitvoeren.
Code:
Sub Macro1()
'
' Macro1 Macro
' De macro is opgenomen op 15-9-2008 door Z539031.
'
c0 = "EW73VS20080936"
'
    Workbooks.Open Filename:= _
        "\\Sadnl\dfsnl\GRNL00\0164\Beheer\PIT\Urenstaten Ordina\" & c0 & ".xls"
    Range("B10:K27").Select
    Selection.Copy
    ActiveWindow.Close
    Sheets("Weekdata").Select
    ActiveSheet.Paste
End Sub

Als ik de zelfde actie uitvoer maar dan aangeroepen vanuit sub wkstaat dan lijkt het alsof alles goed gaat (ik krijg geen foutboodschappen) maar er wordt niets gekopieerd.

Kan iemand mij aangeven waar het verschil inzit. Ik snap hier (wederom) niets van.

Alvast bedankt
Wim
 
Zijn er kenners die mij met dit probleem kunnen helpen.
Ik heb het voor een werkopdracht nodig.

HELP HELP

Wim
 
Ik heb het niet in detail bekeken, maar ik kan mij best voorstellen dat als er iets instaat als

Code:
ActiveWindow

dat daar wel eens wat kan gaan misgaan.
 
Inderdaad dat staat er in maar waarom werkt het dan op de ene manier wel en op de andere manier niet.

Daar ben ik naar op zoek.
 
Gebruik in VBA geen Activate, select, activeworkbook, activesheet , activecell of selection, maar noem objecten bij hun naam:

Workbooks("test.xls")
Sheets("Blad5")
cells(1,1), Range("A11") of [A20:C120]
 
snb,

Code:
Workbooks("test.xls")
Sheets("Blad5")
cells(1,1), Range("A11") of [A20:C120]

Ik ga proberen je adviezen op te volgen, maar ik heb nog een aanvullende vraag?

Hoe pas ik met dit soort code een copieer opdracht van de ene sheet naar de andere sheet toe.

Ik mag niet de volgende code gebruiken, maar wat dan wel

Code:
    Selection.Copy
    ActiveWindow.Close
    Sheets("Weekdata").Select
    ActiveSheet.Paste

Graag je reactie
 
Ik heb deze oplossing opgenomen in mijn sub, maar krijg dan de foutboodschap

Ongeldig gebruik van een eigenschap.

op

Workbooks

Doe ik iets verkeerd of moet het toch anders
 
Gebruik in VBA geen Activate, select, activeworkbook, activesheet , activecell of selection, maar noem objecten bij hun naam:

Workbooks("test.xls")
Sheets("Blad5")
cells(1,1), Range("A11") of [A20:C120]

snb,

Code:
Workbooks("test.xls")
Sheets("Blad5")
cells(1,1), Range("A11") of [A20:C120]

Zo simpel is het niet om gewoon deze woorden te deleten:

Gebruik in VBA geen Activate, select, activeworkbook, activesheet , activecell of selection
 
Niet bewust weggelaten
Code:
Gebruik in VBA geen Activate, select, activeworkbook, activesheet , activecell of selection, maar noem objecten bij hun naam:

Workbooks("test.xls")
Sheets("Blad5")
cells(1,1), Range("A11") of [A20:C120]

Maar ik krijg wel een foutboodschap als ik het op deze manier doe.

Wat nu?
 
Ik heb mijn code nu alvolgt opgenomen.

Code:
Sub Ophalen_Uren(c0)
    On Error GoTo Ophalen_Uren_err
    Dim BestVan As String
    Dim BestNaar As String
    
    BestVan = "\\Sadnl\dfsnl\GRNL00\0164\Beheer\PIT\Urenstaten Ordina\" & c0 & ".xls"
    BestNaar = "\\Sadnl\dfsnl\GRNL00\0164\Beheer\PIT\Uren medewerkers ADM\PIT Ordina.xls"
    
    With UserForm1
        Workbooks.Open BestVan

        Workbooks(BestVan).Worksheets("Blad1").Range("B10:K27").Copy Workbooks(BestNaar).Worksheets("Blad1").Range("A1")
        
        Workbooks(BestVan).Close

    End With

Ophalen_Uren_Exit:
    Exit Sub

Ophalen_Uren_err:
    MsgBox Err.Description
    GoTo Ophalen_Uren_Exit

End Sub

Echter bij het uitvoeren van
Code:
Workbooks(BestVan).Worksheets("Blad1").Range("B10:K27").Copy Workbooks(BestNaar).Worksheets("Blad1").Range("A1")
Krijg ik een foutboodschap "Subscript valt buiten het bereik".

Waar kan dat aan liggen.
 
Zijn de namen van de sheets in beide workbooks wel "Blad1"? Dit is op deze manier geschreven namelijk de naam die je op de tab tegenkomt. Als de sheets dus een andere naam hebben, kan de code ze niet vinden.

Groet. Leo
 
Leo,

Ja in beide worbooks heten de tabbladen "Blad1".
Alleen in het "BestVan" zijn de tabbladen verborgen via "Extra/Opties".

Kan het daar misschien aan liggen?

Wim
 
Het lijkt er op dat de volgende opdracht niet goed wordt uitgevoerd waardoor de foutboodschap verschijnt

Code:
Workbooks.Open BestVan

Ik heb ook geprobeert om het open met te doen
Code:
ChDir BestVan
Maar dan krijg ik de boodschap dat het pad niet kan worden gevonden.

Graag nog een beetje hulp
 
Wat is de inhoud van de variabele BestVan op het moment van de fout?
 
Wat is de inhoud van de variabele BestVan op het moment van de fout?

Code:
    BestVan = "\\Sadnl\dfsnl\GRNL00\0164\Beheer\PIT\Urenstaten Ordina\" & c0 & ".xls"
    BestNaar = "\\Sadnl\dfsnl\GRNL00\0164\Beheer\PIT\Uren medewerkers ADM\PIT Ordina.xls"
 
Uiteraard, maar nu de c0 nog... ;)

c0 bevat een opgebouwde naam van het bestand.
MedewerkerId & jaar & maand & weeknummer
b.v.
DI01ZH20080938
Al deze bestanden staan op een vaste plaats op onze server opgeslagen.

Het medewerkerID, jaar, maand, weeknummer worden vanuit de sheet mee gegevens alsvolgt

Code:
Dim ControleInd As String

Function startwk(mw As String, w As String, m As String, j As String)
    wkstaat mw & j & m & w
    startwk = ControleInd
End Function

Sub wkstaat(c0)
    If Dir("\\Sadnl\dfsnl\GRNL00\0164\Beheer\PIT\Urenstaten Ordina\" & c0 & ".*") <> "" Then
        ControleInd = "X"
        Ophalen_Uren (c0)
    Else
        ControleInd = ""
    End If
End Sub
 
Aangezien de fout zich voordoet op de regel

Code:
Workbooks.Open BestVan

moet je net boven die regel dit sschrijven:

Code:
MsgBox BestVan

En daarna nagaan wat hier fout mee kan zijn.
 
Ik werk nu thuis en heb dus geen toegang tot de server.
Ik ga e.e.a. vanmiddag even omzetten naar mijn eigen omgeving en dan kom ik er op terug.

Bedankt alvast
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan