waarom stop de code ermee??

Status
Niet open voor verdere reacties.

Ad4Jansen

Gebruiker
Lid geworden
20 jun 2007
Berichten
130
waarom stopt de code ermee??

Goedemorgen,

Ik heb twee codes gemaakt 1 voor als het bestand aanwezig is en de 2e is straks de code als het bestand niet meer aanwezig is.


Code:
Sub openen()

'
' Macro1 openen
' De macro is opgenomen op 3-7-2007 door aj.
'
'
    Selection.Cut
    Workbooks.Open Filename:=Sheets("ONVERDEELD").Range("d1").Value & ".xls"
    Sheets("uren").Select
    ActiveCell.SpecialCells(xlLastCell).Select
    ActiveCell.Offset(1, -8).Range("A1").Select
    End Sub

Code:
Sub openengereedwerk()

'
' Macro1 openen gereedwerk
' De macro is opgenomen op 3-7-2007 door aj.
'
'
    
    Selection.Cut
    Workbooks.Open Filename:=Sheets("ONVERDEELD").Range("f1").Value & ".xls"
    Sheets("uren").Select
    ActiveCell.SpecialCells(xlLastCell).Select
    ActiveCell.Offset(1, -8).Range("A1").Select
  End Sub

Ze zijn beide identiek (althans dat denk ik) alleen het op te halen bestand staat ergens anders. Alleen in het 2e geval stopt de code na het openen van het bestand. Graag zou ik willen dat hij op Sheet verder gaat maar hij luistert niet :evil:

Waar kan dit nu aan liggen

Ad
 
Laatst bewerkt:
Wat staat er precies in D1 en F1?
Bestaan die files wel degelijk?
Welke tabbladen zitten er in de files (en ook in de file met de code)?

Wigi
 
wat staat er in de ........

Goedemorgen Wigi (en anderen)

Ik heb een document gemaakt waarin ik de uren van werknemers vermeld. Als het werk klaar is dan maak ik het document absoluut en verplaats ik het naar de map gereed werk.
Het enige verschil is dat ze absoluut gemaakt worden.


In D1 staat het adres van het bestand als het nog niet gereed gemeld is
(in formule ='P:\Werken\[mapindeling.xls]Blad1'!$B$1&"\"&A1) p:\werken\werk 20400 tot 20500\20413 kampenaar

In F1 staat het adres van het bestand als het gereed gemeld is (='P:\Werken\[mapindeling.xls]Blad2'!$B$1&"\"&A1)


In beide gevallen wordt het bestand gevonden en geopend. Alleen in het 2e geval kom ik niet op het tabblad uren terecht.

In het blad met de code zit alleen blad1

Ad
 
Laatst bewerkt:
Het is raar maar wanneer...

Het is raar maar wanneer ik het via F8 (tip op een andere site) doorloop dan gaat hij wel goed................:mad:

Ik snap er niets van:shocked:

Graag wil ik dit laatste stukje oplossen ik wil mij er niet bij neerleggen.

Ad
 
Je refereert in de code niet goed naar de bestanden.

Gebruik dit:

Code:
    Dim wb As Workbook
    Application.ScreenUpdating = False
    Set wb = Workbooks.Open(ThisWorkbook.Sheets("ONVERDEELD").Range("d1").Value & ".xls")
    Application.Goto wb.Sheets("uren").Cells(1).SpecialCells(xlLastCell).Offset(1, -8).Range("A1")
    Application.ScreenUpdating = True

Wigi
 
Wigi wederom bedankt

Wigi wederom bedankt

Jammer genoeg kan ik het maandag pas uitproberen

Ad
 
Hij doet het niet...!

Goedemorgen,

Het zal allemaal wel aan mij liggen maar ik krijg de melding

Fout 9 tijdens uitvoering

Het subscript valt buiten het bereik

:confused:

Wat kan ik hiermee

Ad
 
Ad,

Heb je de werkbladen "ONVERDEELD" of "uren" niet per ongeluk hernoemd?
Zo ja dan is dat precies de reden waarom je werkbladen niet zou moeten benaderen o.b.v. werkbladnaam maar o.b.v. de CodeName van het werkblad-object.
 
Laatst bewerkt:
naam werkblad

Nee ik heb de tabbladen niet hernoemd. Maar ik wil wel proberen hoe je de werkbladen benadert obv de code. Als je me die tip geeft natuurlijk......... :p

Ad
 
Op welke regel komt het fout?

Wat zit er in je variabelen tijdens het uitvoeren van de code? (met F8)

Codenames van bladen kennen wij niet bij jou, die zie je enkel in VBA in je bestand.
 
wanneer het fout gaat....

Hoi Wigi,

Bij set wb = workbooks.open enzz

Code:
Application.ScreenUpdating = False
    Dim wb As Workbook
    Selection.Cut
  

  Set wb = Workbooks.Open(ThisWorkbook.Sheets("ONVERDEELD").Range("f1").Value & ".xls")


    Application.Goto wb.Sheets("uren").Cells(1).SpecialCells(xlLastCell).Offset(1, -8).Range("A1")
    Application.ScreenUpdating = True

Selection = de geselecteerde regel

Alvast bedankt voor je antwoord:thumb:

Ad
 
Waar staat de code geplakt?

Bestaat het blad "ONVERDEELD"?

Wat staat er in cel F1? Staat daar ook het pad van dat bestand?

Wigi
 
Dit staat er........

Hoi Wigi

in F1 staat de formule

='P:\Werken\[mapindeling.xls]Blad2'!$B$1&"\"&A1

Absoluut is dit

P:\werken\gereed werk\gereedwerk 21000 tot 22000\gereedwerk 21100 tot 21200\21102 Hameteman

In het huidige werkblad staan de onverdeelde uren en het actieve blad heet onverdeeld.

Het vreemde ervan is in mijn bovengenoemde code vindt hij en opent hij het bestand wel. Het adres is dus wel goed.


Ad
 
Laatst bewerkt:
Hoi Ad,

Op de volgende manier zet je een juiste ref. naar het werkblad-object zonder dat je kans hebt op een foutmelding daar de naam van het werkblad ooit wordt gewijzigd:

Code:
'Test de routine GetWorkSheet
Sub Test

    Dim oBookRetention As Workbook
    Dim oSheetKostenKorting As Worksheet

    Set oBook = Workbooks.Open(Filename:=[bestandsnaam])
    Set oSheet = GetWorkSheet("SheetUren", oBook)

    MsgBox oSheet.Name, vbinformation
End Sub

Private Function GetWorkSheet(sCodeName As String, oBook As Workbook) As Worksheet

    Dim oSheet As Worksheet
    
    For Each oSheet In oBook.Worksheets
    
        If oSheet.CodeName = sCodeName Then
            Set GetWorkSheet = oSheet
            Exit For
        End If
    Next
    
    If GetWorkSheet Is Nothing Then
        Err.Raise 666, "GetWorkSheet", _
            "De volgende CodeName is niet aangetroffen: " & sCodeName & vbCrLf & _
            "Bestand: " & oBook.FullName 
    End If

End Function

Succes!
 
locatie code

Mijn code heb ik opgeslagen in een apart macro bestand wat ik eronder heb liggen.

Wat ik open heb is het macro bestand en daar boven op de te verdelen uren.

Vanuit het tabblad onverdeeld
knip ik de regels betrekking hebbende op 1 werk
vervolgens roept ik het bestand (werk) op...

en wil ik het in dit bestand (werk) in het tablad uren plakken.

(vervolgens printen, opslaan, afsluiten, verwijderen eerder geselecteerde regels)

En dan gaat het verhaal weer opnieuw beginnen.

Ad
 
Mijn code heb ik opgeslagen in een apart macro bestand wat ik eronder heb liggen

Dan gaat

Code:
ThisWorkbook.Sheets("ONVERDEELD")

niet werken aangezien ThisWorkbook naar een ander bestand verwijst, waar geen ONVERDEELD blad is. Vandaar subscript out of range.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan