OLE bewerking fout

Status
Niet open voor verdere reacties.

Ron001

Gebruiker
Lid geworden
4 dec 2017
Berichten
384
Beste Forumgebruikers

Ik heb een vraagje;
Ik ben voor mijn werk een PO planfile aan het maken (Lees: plannen preventief onderhoud CNC machines)
Ik ben zonder voorkennis Excel-VBA begonnen en heb uiteindelijk toch wel iets handig gemaakt vind ik.
Alleen zit ik nu nog met een laatste probleem ivm back up nemen van mijn file; wij werken in deze file met 4 mensen dus telkens iemand gaat “saven” zou ik willen dat hij back up stuurt naar aparte map.
Zo heb onderstaande code in een testfile gezet en die werkt.
Vb : 15 Ron
16 Bert
17 Peter

Is de opbouw van de naam van de back up..

Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)

Dim strFilename     As String
Dim rngRange        As Range
Dim naamstring As String

naamstring = Replace(Environ("username"), ".", " ")

Set rngRange = Worksheets("Blad2").Range("A1")

Application.DisplayAlerts = False

ActiveWorkbook.SaveAs "W:\AS_ONDH\9. Mappen van WVB-IBT-WM\Ron\Up2DateCopyPoPlanfile\" & rngRange & " " & naamstring, FileFormat:=52

Application.DisplayAlerts = True

End Sub

****De teller om de back ups te saven***

Private Sub Workbook_Open()

'Teller PO planlijst Backup
 
 Blad2.Select
 Range("A1").Value = Range("A1").Value + 1

           ' Saven waarde teller
 ActiveWorkbook.Save
 
 If Range("A1").Value = 500 Then
 Range("A1").Value = 1

 End If
 
 'MsgBox "Cel waarde is nu:    " & Worksheets("Blad2").Range("A1")

End Sub

Het probleem stelt zich nu ik deze werkende code in mijn “echte” file ga plakken en de macro ga uitvoeren…
Dan krijg ik steeds volgende foutmelding en loopt file vast…

Microsoft Excel wacht totdat een andere toepassing een OLE bewerking heeft voltooid

Kent iemand dit probleem?

Alvast bedankt!

Ron
 
Welke macro voer je dan uit en op welke regel krijg je die foutmelding?

Daarnaast is dit:
Code:
Set rngRange = Worksheets("Blad2").Range("A1")
helemaal overbodig.

Zo is het voldoende:
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Map = "W:\AS_ONDH\9. Mappen van WVB-IBT-WM\Ron\Up2DateCopyPoPlanfile\"
    Bst = Sheets("Blad2").Range("A1") & " " & Replace(Environ("username"), ".", " ")
    
    Application.DisplayAlerts = False
    ActiveWorkbook.SaveAs Map & Bst, FileFormat:=52
End Sub

Private Sub Workbook_Open()
    With Sheets("Blad2")
        .Range("A1").Value = .Range("A1").Value + 1
        ActiveWorkbook.Save
        If .Range("A1").Value = 500 Then
            .Range("A1").Value = 1
        End If
    End With
End Sub
 
Laatst bewerkt:
@ Edmoor,
Alvast bedankt voor de snelle reactie, woensdag ben ik terug op mijn werk en begin ik met je code eens te testen.
En probeer ik wat meer uitleg te geven ivm OLE foutmelding...
 
Daar zo ik liever .SaveCopyAs voor gebruiken.
 
@ Edmoor,

Alvast hartelijk bedankt voor het (duidelijk) herschrijven van mijn code, deze werkt inderdaad! Top!
Ik heb deze dus getest in mijn testfile, achteraf heb ik deze in mijn "echte" file gezet en het loopt weer vast...

De backup code staat onder : Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Zodra ik save, schrijft hij de backup nog wel weg naar de juiste map, maar dan blijft deze draaien (lees: de cursor) en loopt deze vast met volgende melding : Microsoft Excel wacht totdat een andere toepassing een OLE bewerking heeft voltooid
Nu kan ik de file alleen nog afsluiten met CTRL ALT DEL

Ik denk dat dit iets te maken heeft met de links naar externe Excel files in mijn "echte" file
Ik zal hieronder mijn code voor de externe links een plaatsen (ik denk dat hij daar steeds gegevens probeert uit op te halen - alhoewel dit niet moet want de externe files/ zijn gesloten op dat moment)

Code:
Public Const TargetWorkbookOpmerkingenPath = "W:\AS_ONDH\4. Personeel\Planning\KpoOpmerkingen.xlsm"
Public Const TargetWorkbookOpmerkingenName = "KpoOpmerkingen"
Public Const TargetWorkbookWerkordersPath = "W:\AS_ONDH\4. Personeel\Planning\Werkorders PO planning.xlsm"
Public Const TargetWorkbookWerkordersName = "Werkorders PO planning"
Public Const TargetWorkbookGPOBezettingPath = "W:\AS_ONDH\3. Preventief Onderhoud\GROOT PO\Uitvoering\GPO Bezetting.xlsm"
Public Const TargetWorkbookGPOBezettingName = "GPO Bezetting"

Sub Nav_OpenOpmerkingenPage()
    Nav_OpenOpmerkingenPageDetails (ActiveSheet.Buttons(Application.Caller).Caption)
End Sub

Sub Nav_OpenWerkordersPage()
    Nav_OpenWerkordersPageDetails (ActiveSheet.Buttons(Application.Caller).Caption)
End Sub

Sub Nav_OpenGPOBezettingPage()
    Nav_OpenGPOBezettingPageDetails (ActiveSheet.Buttons(Application.Caller).Caption)
End Sub

Private Sub Nav_OpenOpmerkingenPageDetails(ByVal sheetName As String)

    Application.ScreenUpdating = False
    Workbooks.Open Filename:=TargetWorkbookOpmerkingenPath
    Worksheets(sheetName).Activate  'Open de gevraagde sheetname in targetworkbook
    ActiveSheet.Cells(1, 1).Select  'Activeer Cell A1
    Application.ScreenUpdating = True
    
End Sub

Private Sub Nav_OpenWerkordersPageDetails(ByVal sheetName As String)

    Application.ScreenUpdating = False
    Workbooks.Open Filename:=TargetWorkbookWerkordersPath
    Worksheets(sheetName).Activate  'Open de gevraagde sheetname in targetworkbook
    ActiveSheet.Cells(1, 1).Select  'Activeer Cell A1
    Application.ScreenUpdating = True
    
End Sub

Private Sub Nav_OpenGPOBezettingPageDetails(ByVal sheetName As String)

    Application.ScreenUpdating = False
    Workbooks.Open Filename:=TargetWorkbookGPOBezettingPath
    ActiveSheet.Cells(1, 1).Select  'Activeer Cell A1
    Application.ScreenUpdating = True
    
End Sub

Mvg

Ron
 
Als je in de Sub Workbook_BeforeSave een workbook.Save doet blijft hij zichzelf aanroepen tot de stack vol is.
Zonder je document is er dus niet veel over te zeggen.
 
@ Edmoor,

Kan ik het volledige document ergens doorsturen?

Mvg

Ron
 
Je kunt het gewoon hier in het forum plaatsen; dan kan iedereen ervan leren of je suggesties doen.
 
Laatst bewerkt:
De tekst van de volledige navigation_module kan beperkt worden tot:

Code:
Sub M_Opmerking()
    Application.Goto Sheets("KpoOpmerkingen").Cells(1)
End Sub

Sub M_Werkorders()
        Application.Goto Sheets("Werkorders PO planning").Cells(1)
End Sub

Sub M_bezetting()
    Application.Goto Sheets("GPO Bezetting").Cells(1)
End Sub

Als je de namen van de werkbladen zonder spaties maakt, kun je de knoppen hernoemen (niet de caption) met dezelfde naam als het werkblad waarnaar gegaan moet worden.

Dan volstaat uiteindelijk voor alle knoppen slechts 1 macro:

Code:
Sub M_navigatie()
  Application.Goto Sheets(Application.caller).Cells(1)
End Sub
 
Laatst bewerkt:
@ snb,

Ik heb je code geprobeerd, maar werkt precies toch niet...:(

Maar zou het aan mijn "uitgebreidere" code kunnen liggen dat ik steeds problemen krijg met "Microsoft Excel wacht totdat een andere toepassing een OLE bewerking heeft "

Jullie krijgen waarschijnlijk geen foutmelding bij backupen omdat jullie de drie mappen van de navigatie module niet kunnen oproepen?
Kan ik bij navigatie iets bijzetten zodat deze 'foutmelding' uitgeschakeld wordt?

Ten einde raad...:)

Pro's please help me :)

Mvg

Ron
 
@ Snb,

Valt me juist op...

Ik heb je code geprobeerd, maar werkt precies toch niet...


Jij verwijst naar SHEETS, maar de drie files zijn externe files en zitten niet in deze Workbook. Kan het daar iets met te maken hebben?

Code:
Application.Goto Sheets(Application.caller).Cells(1)
 
@ snb

:)

Ik zal hieronder mijn code voor de externe links een plaatsen (ik denk dat hij daar steeds gegevens probeert uit op te halen - alhoewel dit niet moet want de externe files/ zijn gesloten op dat moment)
 
Ik denk dat dit iets te maken heeft met de links naar externe Excel files in mijn "echte" file
Ik zal hieronder mijn code voor de externe links een plaatsen (ik denk dat hij daar steeds gegevens probeert uit op te halen - alhoewel dit niet moet want de externe files/ zijn gesloten op dat moment)
 
Maar waarom zou je daarvoor allemaal verschillende bestanden gebruiken ?
 
Maar waarom zou je daarvoor allemaal verschillende bestanden gebruiken ?

Dit waren bestaande files hier op het netwerk die al steeds lange tijd in gebruik zijn. Iedereen is dit dus gewoon om zo te werken.
Ik heb deze een beetje aangepast naar mijn 'visie'.

Daarom zijn dit drie externe op het intranet staande files...

Mvg

Ron
 
@ Edmoor,

Kan je deze files aub nog eens bekijken? :)

Alvast bedankt!
 
Ik krijg dus nog steeds deze fout, OLE bewerking...
Hij blijft dus denk ik zoeken naar files waar naartoe gelinkt kan worden, navigation module ("denkt" dat deze geopend zijn ipv gesloten en hele file loopt daarom vast (denk ik))

Is het mogelijk om alle zogezegde geopende files te "sluiten" en deze niet meer vastloopt?
Staat in;

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

Ps: de backup wordt wel op de juiste wijze in de juiste map weggeschreven...het enige probleem is het vastlopen...

Bedankt!
 

Bijlagen

  • PO planlijst TD Assen.xlsm
    997,8 KB · Weergaven: 67
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan