Progress bar

Status
Niet open voor verdere reacties.

Ron001

Gebruiker
Lid geworden
4 dec 2017
Berichten
384
Allen,

Ben een beetje aan het uitproberen...

Heb bij het close_event een macro die automatisch een back up wegschrijft.
Nu was ik eens aan het bekijken hoe ik tijdens het opslaan een progress bar kan laten lopen

O zich werkt het, alleen weet ik niet hoe ik deze bar moet laten beginnen na het klikken op "Bestand opslaan" en tot deze opgeslagen is.

Ik kan er alleen zelf maar een tijdspanne inzetten, is deze variabel te maken? Update.Variable ofzoiets?

Code:
Option Explicit

Public Sub Progressbaraf()

    FProgressbar.Show vbModeless
    FProgressbar.Update 0
    
    Opslaan_copy 'macro voor het opslaan
    Application.Wait Now + TimeValue("0:00:01")
    FProgressbar.Update 0.1
    
    'Einde
    Unload FProgressbar
    
End Sub
 
Laatst bewerkt:
Waarschijnlijk bedoel je FProgressbar.Repaint

Maar verwacht niet dat deze gaat lopen bij het opslaan van je bestand.
 
Als ik de file opsla, duurt dit een tweetal seconden voordat deze de back up verzend en zichzelf afsluit.
Voor deze variabele tijd had ik een progress bar willen vullen van 0 tot 100%

Dit is dus geen optie?
 
Nee.
Een Progressbar is bedoelt om bijvoorbeeld in een loop te gebruiken en op gezette momenten te verversen.
Dat doet deze niet zelf.
 
Laat een modeless formulier zien met een berichtje erop dat hij bezig is en sluit deze als alles gereed is.
 
Gewoon een userfrom met wat tekst erop in een labelobject bijvoorbeeld.
Als je dat formulier dan modeless (Formuliernaam.Show vbModeless) opent bereik je hetzelfde maan zonder de progress bar.
 
Kan je aub eens een voorbeeldje plaatsen? Kom er niet uit...:confused:
 
Je kan beter het document plaatsen dat je al hebt.
 
Als je op sluiten "kruisje" drukt en je neemt "Bestand opslaan" schrijft deze een back up weg en hier zou ik dan graag het balkje hebben totdat het opgeslagen is/Excel sluit (Opslagen gebeurt hier niet omdat ik in de mappenstructuur "***MIJN NAAM*** heb gezet)

Als je in mijn "echte" file dan annuleren neemt, gaat deze niet terug naar file, maar komt ook het vragenschermpje van de file zelf er nog op, moet men dus twee keer annuleren drukken (kan ik dit opvangen?)

Bedankt!
 

Bijlagen

  • edmoor.xlsm
    21,1 KB · Weergaven: 43
FProgressbar.Show suggereert dat je een Userform hebt met de naam FProgressbar.
Deze zit echter niet in je document.

Wat betreft het opslaan.
Op die manier heeft Cancel = True geen enkel nut omdat je deze niet in de Workbook_BeforeClose gebruikt.
 
Laatst bewerkt:
Sorry...
Had het er wel staan bij mijn vorige tests, bij deze...

Wat betreft het opslaan.
Op die manier heeft Cancel = True geen enkel nut omdat je deze niet in de Workbook_BeforeClose gebruikt.

Op welke manier moet ik dan "annuleren"?
 

Bijlagen

  • edmoor.xlsm
    24,1 KB · Weergaven: 46
Die Cancel = True doet niks in de Sub Opslaan_copy()
Die zie je daar nergens in de parameters van de functie staan.
Zet je code dus in de Workbook_BeforeClose(Cancel As Boolean)
 
Zet je code dus in de Workbook_BeforeClose(Cancel As Boolean)

Maar de back up file moet weggeschreven worden alleen maar als deze wordt opgeslagen.
Dus als ik deze in Workbook_BeforeClose(Cancel As Boolean) zet krijg ik steeds back up's...

Of zie ik dit helemaal verkeerd?
 
Als je een backup wilt maken van een document op het moment van opslaan kan je dat beter in de Workbook_BeforeSave doen.
 
Maar ik wil date de back up wordt gemaakt, wanneer de file gesaved is...

Wat moet ik hierin aanpassen om enkel de annuleren van mijn Msgbox te krijgen en bij "cancel" terug naar file te gaan zonder dat daarna de "annuleren" van de file zelf nog volgt...

Code:
Sub Opslaan_copy()

If Not ThisWorkbook.ReadOnly Then
           
            Select Case MsgBox("Bestand opslaan?", vbYesNoCancel, "Vraagske")  '3 keuze box openen, "Ja/Nee/Annuleren"
            
            Case Is = vbYes 'Wanneer "Ja", opslaan op de locaties hieronder
                
                'ActiveWorkbook.SaveAs "W:\AS_ONDH\9. Mappen van WVB-IBT-WM\Ron \Chris\" + ActiveWorkbook.Name
                
                Dim Origname As String
                    Application.DisplayAlerts = False
                    With Sheets("Blad2")
                         .Range("A1").Value = .Range("A1").Value + 1
                          If .Range("A1").Value >= 500 Then
                            .Range("A1").Value = 1
                            End If
                            ActiveWorkbook.Save
                    End With

                        ActiveWorkbook.SaveAs "W:\AS_ONDH\9. Mappen van WVB-IBT-WM\Ron\Up2DateCopyPoPlanfile\" & Sheets("Blad2").Range("A1") & " " & Replace(Environ("username"), ".", " ")
                        'ActiveWorkbook.SaveAs "W:\AS_ONDH\9. Mappen van WVB-IBT-WM\Ron \Chris\" + ActiveWorkbook.Name
                    Application.DisplayAlerts = True
                Exit Sub 'Afsluiten bestand na het opslaan
                
                Case Is = vbCancel 'Wanneer "Annuleren", terug naar bestand
                  Cancel = True
                        
                Case Is = vbNo 'Wanneer "Nee", afsluiten zonder opslaan
                  ThisWorkbook.Saved = True
            Exit Sub 'Afsluiten "ingeval van gebruiker..."
    End Select
    
End If
'If ThisWorkbook.ReadOnly Then
'Select Case MsgBox("Bestand wordt gesloten, opslaan is niet mogelijk! " _
                '& vbNewLine & vbNewLine & "Klik Ok om af te sluiten zonder op te slaan." & vbNewLine & "" _
                '& vbNewLine & "Klik annuleren en kies 'Opslaan als' om een persoonlijk bestand te maken." & vbNewLine & "", vbOKCancel, "ReadOnly bestand") 'Indien je niet gebruiker ... bent deze POP-up
        'Case Is = vbCancel
        'Cancel = True
        
'End Select
'End If

End Sub
 
Dat kan je controleren met:
If ThisWorkbook.Saved Then

Nogmaals, die Cancel = True in je Sub Opslaan_Copy doet helemaal niets.
 
Dus...

Hoe kan ik die "annuleren" laten werken?
Kan je eventueel mijn code wat aanpassen aub? ;-)
 
Dat heb ik in #14 al laten zien.
Daar wordt een Sub gebruikt die de Cancel parameter wel kent.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan