IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Taille texte d'une listbox change sans raison


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 15
    Par défaut Taille texte d'une listbox change sans raison
    Bonjour à tous,

    J'ai cherché sur le forum, mais j'ai pas trouvé de problème similaire: j'ai une listbox sous excel. Les valeurs de la listbox viennet d'une plage de cellule. J'ai un bouton sur ma feuille, qui fait le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    If ListBox1.Selected(0) = True Then Range("D16").Value = "Austria"
    If ListBox1.Selected(1) = True Then Range("D17").Value = "Belgium"
    ...
    If ListBox1.Selected(24) = True Then Range("D40").Value = "United Kingdom"
    En plus de ca, j'ai aussi une macro sur le bouton pour copier du texte dans un autre feuille.

    Tout fonctionne très bien, sauf que je clique sur le bouton, le texte de ma listbox grandit Et il continue de grandir à chaque fois que je clique sur le bouton!

    La taille de ma listbox elle est bien fixe. La taille de la police de caractère de ma listbox reste constante!

    Si je redimensionne ma listbox, le texte retrouve sa taille normale!

    Bref, je comprends rien, et en plus je suis pas très doué en vba

    Toute aide serait la bienvenue, merci d'avance.

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour,

    Quelle valeur est définie pour la propriété IntegralHeight de ta listbox ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 15
    Par défaut
    Merci pour la réponse.

    La valeur est fausse, c'est bon ou pas ?

    Je précise encore une fois que la listbox a la bonne taille, c'est le texte à l'intérieur qui foire...

  4. #4
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Ah...

    Explique alors ce que tu as écris :

    Si je redimensionne ma listbox, le texte retrouve sa taille normale!
    Qu'entends-tu par "redimensionner" et par "taille"... (j'en perds là mon latin...)

    et montre-nous le code complet (depuis sub jusqu'à End Sub inclus) du bouton sur lequel tu cliques et qui déclenche le phénomène ...

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 15
    Par défaut
    Re-merci.

    J'ai ma listbox sur la feuille "country", et mon bouton aussi. Quand je clique sur le bouton, la taille du texte dans la listbox augmente, et ceci à chaque fois que je clique sur le bouton. La taille de ma listbox reste constante, les dernières lignes de texte ne sont donc plus visibles quand la taille du texte augmente. Quand je redimension ma listbox, le texte retrouve sa taille originale.

    Avec le bouton, je copie aussi des valeurs depuis la feuille "AllResults" sur la feuille "Results".

    J'ose pas vraiment poster ma macro car je dois coder comme un cochon, mais la voila (j'ai mis la macro DisplayResults sur le bouton):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    Sub DisplayResults()
     
        Sheets("Country").Select
        ActiveSheet.Unprotect Password = "****"
     
        Call Sheet2.SelectCountry
     
        '---------------------------------------------------------------------------------
     
        Application.ScreenUpdating = False
     
        ' Reset of the result sheet:
        Sheets("Results").Select
        Columns("A:AF").Select
        Selection.EntireColumn.Hidden = False
        Rows("1:25").Select
        Selection.EntireRow.Hidden = False
     
        ActiveCell.Rows("2:30").EntireRow.Select
        Selection.Delete Shift:=xlUp
     
        'Selection of the values from the entire list:
        Sheets("Results").Select
        Sheets("AllResults").Visible = True
     
        Sheets("AllResults").Select
        ActiveSheet.Range("$A$1:$AH$8810").AutoFilter Field:=4, Criteria1:=Sheets("Variable").Range("I29").Value
     
        'Copy of the selection:
        Range("A1").Select
        ActiveCell.Offset(1, 0).Range("A1").Select
        Range(Selection, Selection.End(xlDown)).Select
        Range(Selection, Selection.End(xlToRight)).Select
        Selection.Copy
     
        'Paste to the result sheets:
        Sheets("Results").Select
        Range("A2").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
     
    '---------------------------------------------------------------------------------
     
        'Selection of the countries and years:
        Sheets("Results").Select
        Columns("F:AD").Select
        Selection.EntireColumn.Hidden = True
     
        Range("A1").Select
     
        If Sheets("Country").Range("D16") = "Austria" Then Columns("F:F").Select
         Selection.EntireColumn.Hidden = False
        If Sheets("Country").Range("D17") = "Belgium" Then Columns("G:G").Select
         Selection.EntireColumn.Hidden = False
        If Sheets("Country").Range("D18") = "Cyprus" Then Columns("H:H").Select
         Selection.EntireColumn.Hidden = False
        If Sheets("Country").Range("D19") = "Czech Republic" Then Columns("I:I").Select
         Selection.EntireColumn.Hidden = False
        If Sheets("Country").Range("D20") = "Denmark" Then Columns("J:J").Select
         Selection.EntireColumn.Hidden = False
        If Sheets("Country").Range("D21") = "Estonia" Then Columns("K:K").Select
         Selection.EntireColumn.Hidden = False
        If Sheets("Country").Range("D22") = "Finland" Then Columns("L:L").Select
         Selection.EntireColumn.Hidden = False
        If Sheets("Country").Range("D23") = "France" Then Columns("M:M").Select
         Selection.EntireColumn.Hidden = False
        If Sheets("Country").Range("D24") = "Germany" Then Columns("N:N").Select
         Selection.EntireColumn.Hidden = False
        If Sheets("Country").Range("D25") = "Greece" Then Columns("O:O").Select
         Selection.EntireColumn.Hidden = False
        If Sheets("Country").Range("D26") = "Hungary" Then Columns("P:P").Select
         Selection.EntireColumn.Hidden = False
        If Sheets("Country").Range("D27") = "Ireland" Then Columns("Q:Q").Select
         Selection.EntireColumn.Hidden = False
        If Sheets("Country").Range("D28") = "Italy" Then Columns("R:R").Select
         Selection.EntireColumn.Hidden = False
        If Sheets("Country").Range("D29") = "Latvia" Then Columns("S:S").Select
         Selection.EntireColumn.Hidden = False
        If Sheets("Country").Range("D30") = "Lithuania" Then Columns("T:T").Select
         Selection.EntireColumn.Hidden = False
        If Sheets("Country").Range("D31") = "Luxembourg" Then Columns("U:U").Select
         Selection.EntireColumn.Hidden = False
        If Sheets("Country").Range("D32") = "Malta" Then Columns("V:V").Select
         Selection.EntireColumn.Hidden = False
        If Sheets("Country").Range("D33") = "Netherlands" Then Columns("W:W").Select
         Selection.EntireColumn.Hidden = False
        If Sheets("Country").Range("D34") = "Poland" Then Columns("X:X").Select
         Selection.EntireColumn.Hidden = False
        If Sheets("Country").Range("D35") = "Portugal" Then Columns("Y:Y").Select
         Selection.EntireColumn.Hidden = False
        If Sheets("Country").Range("D36") = "Slovakia" Then Columns("Z:Z").Select
         Selection.EntireColumn.Hidden = False
        If Sheets("Country").Range("D37") = "Slovenia" Then Columns("AA:AA").Select
         Selection.EntireColumn.Hidden = False
        If Sheets("Country").Range("D38") = "Spain" Then Columns("AB:AB").Select
         Selection.EntireColumn.Hidden = False
        If Sheets("Country").Range("D39") = "Sweden" Then Columns("AC:AC").Select
         Selection.EntireColumn.Hidden = False
        If Sheets("Country").Range("D40") = "United Kingdom" Then Columns("AD:AD").Select
         Selection.EntireColumn.Hidden = False
     
        'Selection of the years:
        Rows("2:20").Select
        Selection.EntireRow.Hidden = True
        Range("A1").Select
     
     
        If Sheets("Country").Range("G16") = 2007 Then Rows("2:2").Select
         Selection.EntireRow.Hidden = False
        If Sheets("Country").Range("G17") = 2008 Then Rows("3:3").Select
         Selection.EntireRow.Hidden = False
        If Sheets("Country").Range("G18") = 2009 Then Rows("4:4").Select
         Selection.EntireRow.Hidden = False
        If Sheets("Country").Range("G19") = 2010 Then Rows("5:5").Select
         Selection.EntireRow.Hidden = False
        If Sheets("Country").Range("G20") = 2011 Then Rows("6:6").Select
         Selection.EntireRow.Hidden = False
        If Sheets("Country").Range("G21") = 2012 Then Rows("7:7").Select
         Selection.EntireRow.Hidden = False
        If Sheets("Country").Range("G22") = 2013 Then Rows("8:8").Select
         Selection.EntireRow.Hidden = False
        If Sheets("Country").Range("G23") = 2014 Then Rows("9:9").Select
         Selection.EntireRow.Hidden = False
        If Sheets("Country").Range("G24") = 2015 Then Rows("10:10").Select
         Selection.EntireRow.Hidden = False
        If Sheets("Country").Range("G25") = 2016 Then Rows("11:11").Select
         Selection.EntireRow.Hidden = False
        If Sheets("Country").Range("G26") = 2017 Then Rows("12:12").Select
         Selection.EntireRow.Hidden = False
        If Sheets("Country").Range("G27") = 2018 Then Rows("13:13").Select
         Selection.EntireRow.Hidden = False
        If Sheets("Country").Range("G28") = 2019 Then Rows("14:14").Select
         Selection.EntireRow.Hidden = False
        If Sheets("Country").Range("G29") = "2020" Then Rows("15:15").Select
         Selection.EntireRow.Hidden = False
     
     
     
        Sheets("Country").Select
        'ActiveSheet.Protect Password = "*****"
     
        Sheets("Results").Select
        Range("A1").Select
        Sheets("AllResults").Visible = False
        Application.ScreenUpdating = True
    End Sub
    Et dans SelectCountry j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    Public Sub SelectCountry()
     
        'Selection of the country:
     
        Range("D16:D40").ClearContents
        If ListBox1.Selected(0) = True Then Range("D16").Value = "Austria"
        If ListBox1.Selected(1) = True Then Range("D17").Value = "Belgium"
        If ListBox1.Selected(2) = True Then Range("D18").Value = "Cyprus"
        If ListBox1.Selected(3) = True Then Range("D19").Value = "Czech Republic"
        If ListBox1.Selected(4) = True Then Range("D20").Value = "Denmark"
        If ListBox1.Selected(5) = True Then Range("D21").Value = "Estonia"
        If ListBox1.Selected(6) = True Then Range("D22").Value = "Finland"
        If ListBox1.Selected(7) = True Then Range("D23").Value = "France"
        If ListBox1.Selected(8) = True Then Range("D24").Value = "Germany"
        If ListBox1.Selected(9) = True Then Range("D25").Value = "Greece"
        If ListBox1.Selected(10) = True Then Range("D26").Value = "Hungary"
        If ListBox1.Selected(11) = True Then Range("D27").Value = "Ireland"
        If ListBox1.Selected(12) = True Then Range("D28").Value = "Italy"
        If ListBox1.Selected(13) = True Then Range("D29").Value = "Latvia"
        If ListBox1.Selected(14) = True Then Range("D30").Value = "Lithuania"
        If ListBox1.Selected(15) = True Then Range("D31").Value = "Luxembourg"
        If ListBox1.Selected(16) = True Then Range("D32").Value = "Malta"
        If ListBox1.Selected(17) = True Then Range("D33").Value = "Netherlands"
        If ListBox1.Selected(18) = True Then Range("D34").Value = "Poland"
        If ListBox1.Selected(19) = True Then Range("D35").Value = "Portugal"
        If ListBox1.Selected(20) = True Then Range("D36").Value = "Slovakia"
        If ListBox1.Selected(21) = True Then Range("D37").Value = "Slovenia"
        If ListBox1.Selected(22) = True Then Range("D38").Value = "Spain"
        If ListBox1.Selected(23) = True Then Range("D39").Value = "Sweden"
        If ListBox1.Selected(24) = True Then Range("D40").Value = "United Kingdom"
     
        'Selection of the years:
        Range("G16:G29").ClearContents
     
        If ListBox2.Selected(0) = True Then Range("G16").Value = "2007"
        If ListBox2.Selected(1) = True Then Range("G17").Value = "2008"
        If ListBox2.Selected(2) = True Then Range("G18").Value = "2009"
        If ListBox2.Selected(3) = True Then Range("G19").Value = "2010"
        If ListBox2.Selected(4) = True Then Range("G20").Value = "2011"
        If ListBox2.Selected(5) = True Then Range("G21").Value = "2012"
        If ListBox2.Selected(6) = True Then Range("G22").Value = "2013"
        If ListBox2.Selected(7) = True Then Range("G23").Value = "2014"
        If ListBox2.Selected(8) = True Then Range("G24").Value = "2015"
        If ListBox2.Selected(9) = True Then Range("G25").Value = "2016"
        If ListBox2.Selected(10) = True Then Range("G26").Value = "2017"
        If ListBox2.Selected(11) = True Then Range("G27").Value = "2018"
        If ListBox2.Selected(12) = True Then Range("G28").Value = "2019"
        If ListBox2.Selected(13) = True Then Range("G29").Value = "2020"
     
     
    End Sub
    Oublié de dire que par taille, j'entends taille en pixels de ma listbox: elle reste fixe.

    Les membres de ma listbox sont fixes aussi, leur nombre est connu et fixe.

  6. #6
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Euh...

    1) Je ne vois pas là le code que je t'ai demandé : celui (depuis sub jusqu'à End Sub inclus, de l'évènement Click de ton bouton)

    2) je ne vois pas non plus, dans toutes ces lignes, la moindre instruction de modification de ta listbox !!!

    Edit :

    Question subsidiaire : les propriétés (police etc...) de ta listbox sont-elles définies uniquement dans la fenêtre des propriétés (en dur donc) ou également (ou modifiées) au chargement ou à l'activation de ta UserForm ?

Discussions similaires

  1. Membre d'une classe change sans raison
    Par DakM dans le forum Langage
    Réponses: 18
    Dernier message: 26/05/2012, 11h27
  2. Ajouter du texte dans une ListBox sans sauter de ligne
    Par walid_kerkoub dans le forum Composants VCL
    Réponses: 2
    Dernier message: 03/03/2008, 15h42
  3. taille limite d'une listbox
    Par oddis dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 18/12/2006, 10h32
  4. Réponses: 5
    Dernier message: 15/04/2005, 14h22
  5. Icône a coté du texte dans une ListBox
    Par joce3000 dans le forum C++Builder
    Réponses: 6
    Dernier message: 05/12/2003, 02h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo