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

Niet kunnen kopieeren na gebruik van xlCalculationAutomatic

Status
Niet open voor verdere reacties.

jansbl

Gebruiker
Lid geworden
1 mrt 2007
Berichten
86
Hallo,

Omdat mijn werkboek een aantal cellen bevat, welke niet worden bijgewerkt als het Excel staat op "Handmatig berekenen" heb ik bij werkboek openen gezet:
Code:
Private Sub Workbook_Open()
On Error Resume Next
    
    With Application
        .Calculation = xlCalculationAutomatic
    End With
    ActiveWorkbook.PrecisionAsDisplayed = False

End Sub
Indien tussentijds een werkboek wordt geopend, waar "Handmatig berekenen" staat ingeschakeld, geldt dit "Handmatig berekenen" ook als je weer terug gaat naar het eerste werkboek.
Daarom heb ik die code ook gezet bij
Code:
Private Sub Workbook_Activate()
    With Application
        .Calculation = xlCalculationAutomatic
    End With
    ActiveWorkbook.PrecisionAsDisplayed = False
End Sub
, zodat "Automatisch berekenen" weer is ingeschakeld.

Dit werkt allemaal goed, er is echter een (vervelende) bijkomstigheid:
Knippen en plakken vanaf een werkblad naar een andere werkt niet meer.
Als ik de sub "Workbook_Activate()" uitschakel, werkt het knippen en plakken wel weer normaal.
Is er iets wat ik kan toevoegen aan de sub "Workbook_Activate()" ??

Alvast bedankt,

Jans
 
Werkt het ook terug wanneer je de regel

Code:
ActiveWorkbook.PrecisionAsDisplayed=false

weghaalt?

En dat is de enige code in uwe activate?
 
Hi Finch,

Als ik
Code:
ActiveWorkbook.PrecisionAsDisplayed=false
weg haal, werkt het knippen en plakken ook niet.
In "Workbook_activate()" is dat de enige code.

m.vr.gr.,
Jans
 
Dit vind ik een raar probleem aangezien automatisch berekenen de standaard waarde is.

edit: heb je code hier even getest en hier doet hij het wel.
 
Laatst bewerkt:
Dit vind ik een raar probleem aangezien automatisch berekenen de standaard waarde is.

edit: heb je code hier even getest en hier doet hij het wel.

Hi Finch,
Ik moet mezelf even corrigeren:
Het knippen en plakken van de ene naar de andere sheet van hetzelfde werkboek gaat wel. Alleen als ik van een ander werkboek naar dat bewuste werkboek wil kopieeren, gaat het niet.

Jans
 
Raar probleem, heb het nu zelf kunnen simuleren, maar ben er nog nooit tegenaan gelopen.

Blijkbaar wordt je plakken overschreven wanneer je code uitvoert in je workbook_activate.
Ik heb momenteel geen "mooie" oplossing, maar wel 2 workarounds.

1) in je workbook_activate kijken of je aan het copieren bent, indien ja dan bv. 5 of 10 sec wachten met het veranderen van de calculate methode. Indien nee, gewoon de calculate methode vervangen.
Code:
Private Sub Workbook_Activate()
  
If Application.CutCopyMode = False Then
    CalcAutomate
Else
    Application.OnTime Now + TimeValue("00:00:10"), "CalcAutomate"
End If

End Sub

en vervolgens volgende code in een module plaatsen.

Code:
Sub CalcAutomate()
'in een module plaatsen

With Application
        .Calculation = xlCalculationAutomatic
    End With
    ActiveWorkbook.PrecisionAsDisplayed = False
MsgBox "done" 'just for testing
End Sub

2) Blijkbaar wordt je clipboard niet geledigd, dus kan je dat ook aanzetten. Vervolgens de juiste cellen selecteren en het copieren triggeren vanuit je clipboard:

Code:
Private Sub Workbook_Activate()

Application.DisplayClipboardWindow = True
With Application
        .Calculation = xlCalculationAutomatic
    End With
    ActiveWorkbook.PrecisionAsDisplayed = False
MsgBox "done" 'Just for testing

end sub

Geen perfecte oplossingen, maar wel een workaround tot iemand een definitieve oplossing post. Al vrees ik dat die laatste niet zo heel simpel zal zijn, maar laat ons hopen dat ik ongelijk heb.
 
Jansbl. DAT is nou het effect van macro's... :(
Net zoals een macro er voor zorgt dat je Undo niet meer werkt. Je kan dit alleen oplossen door gebruik te maken van het klembord van Windows. Nu maak je waarschijnlijk een copie door op Ctrl + C te drukken (of gewoon via het knopje). Je plaatst het gecopieerde op het klembord door op Ctrl + C + C te drukken (vanaf versie XP). Er verschijnt dan aan de rechterkant van je sheet een venster waar het gecopieerde opstaat. Door dan je sheet te activeren waar je op wilt plakken en te dubbelklikken op het item op je klembord wordt er dus wel netjes een copie in je sheet geplaatst....

Groet, Leo
 
Dank je wel Leo.

Ik had gehoopt dat er een workaround zou zijn.
Dit vergt even wat extra discipline v.d. gebruikers.
De meeste zijn nog gewend aan simpel Ctrl+C (ikzelf dus ook :rolleyes: ).

m.vr.gr.,

Jans
 
Raar probleem, heb het nu zelf kunnen simuleren, maar ben er nog nooit tegenaan gelopen.

Blijkbaar wordt je plakken overschreven wanneer je code uitvoert in je workbook_activate.
Ik heb momenteel geen "mooie" oplossing, maar wel 2 workarounds.

Geen perfecte oplossingen, maar wel een workaround tot iemand een definitieve oplossing post. Al vrees ik dat die laatste niet zo heel simpel zal zijn, maar laat ons hopen dat ik ongelijk heb.

Excuus Finch,
Ik had jouw workaround over het hoofd gezien. Zal er na de koffie even mee aan de slag gaan.

Bedankt :thumb:,
Jans
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan