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

dynamische afbeeldingen vertragen macro

Status
Niet open voor verdere reacties.

BjorntobeWild

Gebruiker
Lid geworden
29 aug 2011
Berichten
120
Goedendag,

Ik heb een werkblad met verschillende dynamische afbeeldingen. Via een combobox wordt er een verwijzing naar de juiste cel gemaakt m.b.v. de "index formule" welke ik heb opgeslagen in Gedefinieerde namen. De reden dat ik gekozen heb voor dynamische afbeeldingen is dat de cel waarnaar wordt verwezen een opmaak bevat welke van belang is voor de weergave.
Nu zitten er in het werkblad verschillende macro's om regels toe te voegen aan tabellen en om grafieken te updaten met nieuwe data. Handmatig is dit een vrij omlachtige methode, dus vandaar dat hier een macro voor is gemaakt.

Het probleem is nu alleen dat door de dynamische afbeelding het invoegen van een nieuwe tabelregel zo lang duurt dat een handmatige actie nog sneller is (geldt hetzelfde voor het updaten van grafieken).

Mijn vraag is nu of dit te voorkomen is of op een andere manier op te lossen is dat de opmaak van de ene cel kan worden weergegeven in een andere cel.

Groeten,

Bjorn
 
Zet aan het begin van de macro ScreenUpdating uit en aan het einde weer aan.
 
Wellicht dat je dat script even hier kunt plaatsen.
 
zet application.enableevent op false en application.calculation op manual (en tenslotte weer terug).
 
Goeie!
Die 2 had ik niet aan gedacht :-)
 
Dank voor het meedenken.

Had gister al één of beide suggesties ook al geprobeerd, maar heb het voor de zekerheid net ook nog even getest. Helaas bleek dit ook geen oplossing te bieden.
Heb voor de zekerheid maar even een (uitgeklede) bijlage toegevoegd.
Hopelijk geeft dat wat meer inzicht in mijn probleem.

Groet,

BjornBekijk bijlage dyn afbeeldingen vb.xlsm
 
Door een kleine aanpassing aan de rij waar je de insert shift down doet kun je dat hele circus van opmaak van voorkomen en is je macro opeens een stuk sneller..

Effectief vervangt onderstaande 3 regels code ca 60-70 regels van jou. Een insert shift down actie kopieert standaard de opmaak mee maar als je de cursor op een blanco regel zet dan kopieert ie blanco opmaak.. door in de code lastrowA-1 te gebruiken voor de insert shift down word de opmaak gelijk mee gekopieerd, het enige wat je dan nog moet doen is zorgen dat de formules teruggekopieerd worden omdat er een lege regel is bijgekomen en voorlaatste rij nu geen formules heeft, dit word opgevangen door de 2e en derde regel die de inhoud terug kopieert
Code:
Range("E" & iLastRowA - 1 & ":K" & iLastRowA - 1).Insert Shift:=xlDown
Range("E" & iLastRowA & ":K" & iLastRowA).Copy
Range("E" & iLastRowA - 1 & ":K" & iLastRowA - 1).PasteSpecial (xlPasteFormulas)

het enige is dat op de onderste regel van je tabel misschien nog wat cellen (E,F,G,I en K) op blanco gezet moeten worden als de cellen voor de kopieeracties wel gevuld zijn maar bedoeld zijn voor nieuwe input..

test eerst dit maar even via de bijlage.
 

Bijlagen

Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan