Bug contrôle activeX lors du changement de résolution

Bonsoir à tous,

j'ai un problème que d'autres ont déjà dû rencontrer mais je n'ai pourtant pas trouvé de réponse à ce jour sur le forum. Je m'explique:

J'ai inséré un contrôle activeX, une liste déroulante pour être précis. A mon sens beaucoup mieux qu'une liste "validation des données", en tout cas pour l'utilisation que j'en fait. Malheureusement, j'ai vite remarqué que, de manière aléatoire (c'est en tout cas ce que je pensais au début), quand je sélectionnait le contrôle, il grossissait, et quand je le désélectionnait la police à l'intérieur rapetissait. A l'infini, à mesure que je répetait l'opération (sélection/désélection).

Après des tests pour essayer de comprendre, je me suis aperçu que c'était lié au changement de résolution. Par exemple, quand on connecte un laptop sur une base connecté à un écran, ou qu'on plug un rétroprojecteur à l'ordi (pendant que le fichier est ouvert), ça change la réso et ça fait buger les contrôle activeX. Après, il suffit de fermer l'application et de la relancer pour que ça redevienne normal, à condition de ne pas enregistrer le fichier, sinon on se retrouve avec un contrôle hyper grand ou une police riquiqui (en fonction de si le contrôle est sélectionné ou pas).

Je me demandait donc si il existait un bout de code pour éviter ce genre de désagrément Merci

Cdlt Scaramp


after beforechange

Bonsoir

Pour éviter ce genre de désagrément, le mieux est d'adapter systématiquement la taille du contrôle à une cellule de la feuille via les propriétés Left, Top, Height et Width.

Cette adaptation systématique peut se faire lors des événements d'activation de la feuille et d'ouverture du classeur par exemple.

Bonsoir,

Réponse que j'ai donné pour ce cas à un autre intervenant qui avait les mêmes problèmes que toi :

Testes avec la propriété "IntegralHeight" à False !

https://forum.excel-pratique.com/post569235.html?hilit=Theze%20Liste*#p569235

Hello merci pour votre aide,

Theze malheureusement cette propriété ("IntegralHeight") n'existe pas pour les listes déroulantes... Thev voici mon code j'aimerai ajouter que la taille de la police reste 16 mais je n'y parviens pas......

Private Sub ComboBox1_Click()
    With Shapes("ComboBox1")
        .Height = 41.25
        .Width = 376.5
        .Left = 90
        .Top = 102
    End With
End Sub

Bonjour toutes et tous

edit :

oupss, oui je vois j'ai pris le fichier de Thèze pour Listbox

crdlt,

André

Bonjour,

ci-dessous code

Private Sub ComboBox1_GotFocus()
    Dim plage As Range

    If Me.ComboBox1.ListIndex = -1 Then
        Set plage = Me.Range("D2:F3")
        With Me.ComboBox1
            .Height = plage.Height
            .Width = plage.Width
            .Left = plage.Left
            .Top = plage.Top
        End With
    End If

End Sub

Bonjour,

la plage reste bien fixe mais la police continue à rétrécir...

bug lliste deroulante

Peut-être ajouter

.Font.Size = plage.Font.Size

Merci Thev,

ça ne marchait pas trop, en revanche avec ce code ça marche, même si c'est un peu bancal^^

Private Sub ComboBox1_Click()
 ComboBox1.Font.Size = 16
    With Shapes("ComboBox1")
        .Height = 41.25
        .Width = 376.5
        .Left = 90
        .Top = 102
    End With
Application.ScreenUpdating = True
End Sub

Vu que c'est un bug d'excel, j'imagine que ça ne réagit pas e la même manière que "Excel qui marche". Merci beaucoup de votre aide et de vos idées en tout cas ça m'a bien aidé!!

A bientôt,

Scaramp

Rechercher des sujets similaires à "bug controle activex lors changement resolution"