2016-11-15 1 views
-1

J'ai lu beaucoup sur les interwebs à propos des problèmes avec les contrôles ActiveX se redimensionner eux-mêmes lorsque vous cliquez ou allez à l'aperçu avant impression. Je n'ai aucun problème. J'ai un problème avec les contrôles ActiveX se redimensionner quand j'ouvre un fichier XLSM (ou XLSB il apparaît) dans Excel 2010. XLS fichiers semblent être d'accord.Contrôles ActiveX redimensionner lorsque le fichier Excel 2010 est ouvert

Cliquer sur les boutons ne provoque pas de nouveaux problèmes de taille. Le problème apparaît uniquement lors de l'ouverture du fichier. Si je supprime tous les contrôles et les refais, le problème disparaît. Est-ce que quelqu'un d'autre a ce problème et de savoir un moyen de le résoudre sans avoir à:

  1. Supprimer les contrôles et recréez les
  2. Ajouter un code VBA au classeur pour empêcher le redimensionnement ou enregistrer les paramètres précédents de taille
  3. aide Form commandes au lieu de ActiveX Controls

Fondamentalement, je suis à la recherche d'une solution facile à ce problème qui ne me demande pas de modifier la masse de nombreux classeurs que je l'expérience de ce problème dans, si possible.

+1

Donc, fondamentalement, vous posez une question qui est marquée comme 'VBA' sans vraiment vouloir de code? –

Répondre

0

clic droit sur le bouton> Format de contrôle> Propriétés> Ne pas déplacer ou dimensionner avec les cellules Cela devrait résoudre le problème

+0

Normalement, je dirais que c'est correct lorsque le redimensionnement des commandes est dû au déplacement de colonnes ou de cellules, mais ce n'est pas ce qui se passe. Cette propriété est déjà définie sur Do not move ou size. Après avoir vraiment regardé le fichier de près, je vois qu'il se produit lorsque le classeur s'ouvre et UNIQUEMENT sur la feuille de calcul active, pas n'importe quelle autre feuille de calcul dans le classeur qui pourrait avoir d'autres contrôles ActiveX sur elle. –

0

Je ne sais pas pourquoi VBA devrait être un problème puisque vous traitez généralement cliquez sur le bouton avec VBA. Je réponds à cette question ici parce que c'est la demande d'information la plus récente sur cette question et je pense que j'ai récemment trouvé la méthode la plus simple pour [avoir un pet de cerveau et j'ai oublié comment j'ai résolu ce problème vos contrôles ActiveX de redimensionner dans Excel. Vous devez forcer un redessin. Je le fais en manipulant la propriété .Top dans le cas _CLICK du contrôle:

'REMOVE FOCUS WHEN ACCELERATOR USED, .TOP MANIPULATION FIXES RESIZE BUG 
With cmdSubmit 
    .Visible = False 
    .Visible = True 
    .Top = .Top - 1 
    .Top = .Top + 1 
End With 

qui maintient le bouton en regardant bien à tout moment. Je rends également les boutons invisibles et visibles à chaque clic pour supprimer le focus résiduel qui reste lorsque les utilisateurs utilisent les touches Accelerator pour les actionner (TakeFocusOnClick ne fonctionne qu'avec les clics), ce qui est particulièrement pertinent car la possibilité de créer des solutions clavier est la seule raison pour laquelle je m'en tiens aux contrôles ActiveX.