Hallo mensen,
ik ben bezig met een addin voor Excel. Deze heeft een knop op een eigen ribbon.
Deze is gemaakt o.a. dmv Addinexpress en flink wat eigen code (C#).
Waar mijn probleem nu zit is het volgende:
Ik heb een Excel.Application object, hiervan wil ik na het klikken op mijn knop de ActivePrinter property wijzigen. Dit werkt, mits je niet op dat moment in een cel aan het typen was, en je op de knop klikt dus zonder eerst op enter of pijltje omlaag te drukken.
Op het moment dat je de cell nog aan het editten bent, en dan via mijn Addin de active printer wilt wijzigen, is de Active Printer property read-only, en is deze niet te wijzigen.
De oplossing is dus (in theorie) simpel, eerst zorgen dat een cell niet meer geëdit word op het moment dat de ActivePrinter gezet word. Dit heb ik geprobeerd op verschillende manieren op te lossen.
De eerste manier is, de eerstvolgende cell (Excel.Range ActiveCell.Next) te selecteren (Range.Select() of Range.Activate()).
Op dat moment, zie je de omlijning van de cell in excel wel verspringen, maar de cursor knippert nog in de cell waar je in eerste instantie aan het typen was. Dus dit werkt niet.
Mijn volgende oplossing was, een SendKeys("{ENTER}",true) te geven, echter is dit ook niet mogelijk. Op het moment van klikken ligt de focus namelijk op de Ribbon, en deze krijg je niet op de ActiveSheet.
Wie heeft er enig idee van een oplossing? Ik kom er niet meer uit...
ik ben bezig met een addin voor Excel. Deze heeft een knop op een eigen ribbon.
Deze is gemaakt o.a. dmv Addinexpress en flink wat eigen code (C#).
Waar mijn probleem nu zit is het volgende:
Ik heb een Excel.Application object, hiervan wil ik na het klikken op mijn knop de ActivePrinter property wijzigen. Dit werkt, mits je niet op dat moment in een cel aan het typen was, en je op de knop klikt dus zonder eerst op enter of pijltje omlaag te drukken.
Op het moment dat je de cell nog aan het editten bent, en dan via mijn Addin de active printer wilt wijzigen, is de Active Printer property read-only, en is deze niet te wijzigen.
De oplossing is dus (in theorie) simpel, eerst zorgen dat een cell niet meer geëdit word op het moment dat de ActivePrinter gezet word. Dit heb ik geprobeerd op verschillende manieren op te lossen.
De eerste manier is, de eerstvolgende cell (Excel.Range ActiveCell.Next) te selecteren (Range.Select() of Range.Activate()).
Op dat moment, zie je de omlijning van de cell in excel wel verspringen, maar de cursor knippert nog in de cell waar je in eerste instantie aan het typen was. Dus dit werkt niet.
Mijn volgende oplossing was, een SendKeys("{ENTER}",true) te geven, echter is dit ook niet mogelijk. Op het moment van klikken ligt de focus namelijk op de Ribbon, en deze krijg je niet op de ActiveSheet.
Wie heeft er enig idee van een oplossing? Ik kom er niet meer uit...