Iets vreemd met een identiek .xlsm-bestand (met VBA) op twee verschillende PC's.

Status
Niet open voor verdere reacties.

willema

Gebruiker
Lid geworden
26 aug 2005
Berichten
308
Dag allemaal,

Ik heb een werkmap met op een van de werkbladen oa. een CmdButton. Een klik op die button voert een subroutine uit (die iets met de opmaak doet).

Ik heb ook code op het werkblad onder WorkSheet_Change en WorkSheet_SelectionChange.

Nu, als ik een kopie van dat bestand uitvoer op een Windows Vista-PC met Excel 2007, dan gebeurt er iets anders dan met een identieke kopie op een Windows 7-laptop met Excel 2010.

Als ik in een cel een waarde wijzig EN VOOR het bevestigen van die wijziging (= dus vóór het indrukken van de Enter/Return knop of vóór het verlaten van die cel door selectie van een andere cel):

Op de Windows Vista/Excel 2007 PC is het NIET mogelijk om hiertussen op de CmdButton te klikken en de code uit te voeren. Het klikken op de knop wordt hier NIET gezien als bevestiging van de celinvoer.
Op de Windows 7/Excel 2010 laptop is WEL mogelijk om hiertussen op de CmdButton te klikken en de code uit te voeren. Het klikken op de knop wordt hier OOK gezien als bevestiging van de celinvoer.

m.a.w. De eerste PC reageert zoals ik het wil. Ik wil dat die code onder CmdButton pas kan worden uitgevoerd nadat de gewijzigde waarde is bevestigd via de Return/Enter knop of het verlaten van de cel.

Waarom ? De code onder WorkSheet_Change en WorkSheet_SelectionChange controleert of een ingevoerde waarde aan een aantal voorwaarden voldoet. Is dat niet zo, dan wordt die celwaarde op een "neutrale" standaardwaarde gezet. Als ik de kopie uitvoer op de Windows 7/Excel 2010 laptop en ik voer een verkeerde waarde in en klik dan zonder bevestiging op de CmdButton, dan wordt die code uitgevoerd en blijft die verkeerde waarde gewoon op mijn werkblad staan.

Weet iemand wat hier aan de hand kan zijn ?
 
Hey VenA,

het is nogal een complex bestand en de gegevens in de validatielijsten zijn vertrouwelijke bedrijfsinfo.
Maar ik probeer from scratch het probleem te reconstrueren en zet dat hier dan online.
Wordt vervolgd.
 
Zoals beloofd een "uitgekleed" sjabloon.

In werkblad "1000" kan je in de cellen A3:A20 een waarde kiezen uit een dropdown-lijst of een waarde intypen. Geldige waarden zijn "ST" of een getal van 1 t.e.m. 25.

Om andere redenen (die code heb ik in deze uitgeklede versie weg gehaald) heb ik niet de gewone foutafhandeling van lijstvalidatie kunnen gebruiken, maar controleer ik de invoer na Worksheet_SelectionChange met de op Moduleniveau gedeclareerde variabelen die verkregen zijn na Worksheet_Change.

Dat werkte al die tijd perfect op alle PC's. Maar toen kwam er die KNOP :evil: :p ...

Op mijn Windows Vista/Excel 2007-PC werkt dit nog altijd perfect. Als je een verkeerde waarde intikt is het NIET mogelijk om de "KNOP" te bedienen tot wanneer je de waarde bevestigt met een druk op Enter of een selectie van een andere cel. Dus na uitvoering van ChkValSCa en ChkValSCb die de (verkeerde) waarde pompt wissen.

Op mijn Windows 7/Excel 2010-laptop werkt dit niet. Als je een verkeerde waarde intikt is het WEL mogelijk om de "KNOP" te bedienen. Bijgevolg wordt ChkValSCa en ChkValSCb niet meer uitgevoerd en blijft een verkeerde invoer mogelijk.

Ik zou dit wellicht kunnen oplossen als ik begrijp waarom identiek hetzelfde bestand op de ene PC anders reageert dan op de andere laptop.

Heeft iemand een idee ? Of willen jullie dit eens bij jullie testen en me via deze weg de resultaten laten weten ? :thumb:


met dank en...
 

Bijlagen

  • HelpMijTest.xlsm
    26,5 KB · Weergaven: 18
Laatst bewerkt:
Wat dit met versie problemen te maken kan hebben? Geen idee. Je kan de code wel wat anders inrichten. In het voorbeeldje krijg je bij alles wat je invoert in A2:A20 een melding. Afhankelijk van de invoer gaat 'Knop1' aan of uit. Na het klikken op 'Knop1' gaat deze weer uit.
 

Bijlagen

  • HelpMijTest.xlsb
    28 KB · Weergaven: 16
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan