Methode additem ne fonctionne pas tout le temps

vmatthieu

XLDnaute Occasionnel
bonsoir à tous et par avance merci
je suis face à ce qui est pour moi un mystère

je charge des combobox par la méthode additem tout fonctionnait bien sauf pour 2 combo ou je voulais charger les colonnes 17 et 19 (COMBO 6 ET 7) je voulais donc vous soumettre le problème
afin d'anonymiser le fichier je change le contenu des cellules et la plus aucune ne se charge et alors là pourquoi he bien je n'en sais rien

comme toujours il doit y avoir une explication simple (en tout cas pour certains mais pas pour moi) et si une bonne âme voulait me la donner j'en serait très reconnaissant

merci d'avance à tous ceux qui prendeont un peu de temps
bonne soirée

PS l userform s ouvre a partir du bouton commande sur la page plan de fertilisation
 

Pièces jointes

  • plan de + 2010 EXCELhh DOW.zip
    214.5 KB · Affichages: 48

Dranreb

XLDnaute Barbatruc
Re : Methode additem ne fonctionne pas tout le temps

Bonsoir
Le problème vient de ce que vous ne précisez pas de qualificateurs devant vos 1ers Cells ce qui signifie que vous voulez qu'il prenne la feuille active, or ce n'est pas la bonne.
Notez, vous pourriez utiliser comme qualificateur les expressions de vos bloc With. Il suffirait pour cela de les faire précéder d'un point, sans rien d'autre devant.

Remarque: vous pourriez n'avoir qu'un seul With et affecter les Value de vos plages aux List de vos combobox sans boucles.
À +
 
Dernière édition:

vmatthieu

XLDnaute Occasionnel
Re : Methode additem ne fonctionne pas tout le temps

bonsoir dranreb,
un grand merci, en effet un tout petit point avant et ça marche.
Si je peux abuser de vos conseils.....

qu'est ce que vous entendez par "qualificateurs" (si je ne mettais pas un point avant cells?

pourquoi le bloc with ne fournit pas l'indication de se servir pour charger les combo de la feuille défini dans le bloc?

et enfin votre "remarque je pense n'est valable que dans le cas où les plages sont constantes je suppose, sinon je ne comprends pas comment on peut le faire

Si vous me répondez tant mieux et sinon encore merci
bonne soirée
 

Bebere

XLDnaute Barbatruc
Re : Methode additem ne fonctionne pas tout le temps

bonjour
pas besoin de déclarer une variable pour chaque boucle
autres façons d'initialiser une combobox(listbox aussi)
en prime un tri(code venant de outils macro,nouvelle macro voir module4)
Code:
Private Sub UserForm_Initialize()
    Dim DerL As Integer

    With Worksheets("CHARGEMENT DE LA BOITE")
        'tri ascendant
        DerL = .Range("A65536").End(xlUp).Row
        .Range("A3:A" & DerL).Sort Key1:=.Range("A3"), Order1:=xlAscending, Header:=xlGuess, _
                                   OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
                                   DataOption1:=xlSortNormal
        ComboBox1.List = .Range("A3:A" & DerL).Value

        'tri ascendant
        DerL = .Range("E65536").End(xlUp).Row
        .Range("E3:E" & DerL).Sort Key1:=.Range("E3"), Order1:=xlAscending, Header:=xlGuess, _
                                   OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
                                   DataOption1:=xlSortNormal

        ComboBox2.List = .Range("E3:E" & Range("E65536").End(xlUp).Row).Value

        ComboBox6.List = .Range(.Cells(3, 16), .Cells(.Cells(Rows.Count, 16).End(xlUp).Row, 16)).Value

        ComboBox7.List = .Range(.Cells(3, 20), .Cells(.Cells(Rows.Count, 20).End(xlUp).Row, 20)).Value

    End With

    'Dim VV As Integer
    'With Worksheets("CHARGEMENT DE LA BOITE")
    'For VV = 3 To Cells(Rows.Count, 20).End(xlUp).Row
    ' ComboBox7.AddItem .Cells(VV, 20)
    'Next VV
    '
    'End With



    Dim aa As Integer
    With Worksheets("CHARGEMENT DE LA BOITE")
        For aa = 3 To Cells(Rows.Count, 1).End(xlUp).Row
            ComboBox1.AddItem .Cells(aa, 1)
        Next aa

    End With

    Dim b As Integer
    With Worksheets("CHARGEMENT DE LA BOITE")
        For b = 3 To Cells(Rows.Count, 5).End(xlUp).Row
            ComboBox2.AddItem .Cells(b, 5)
        Next b

    End With

    Dim C As Integer
    With Worksheets("CHARGEMENT DE LA BOITE")
        For C = 3 To Cells(Rows.Count, 9).End(xlUp).Row
            ComboBox3.AddItem .Cells(C, 9)
        Next C

    End With

    Dim D As Integer
    With Worksheets("CHARGEMENT DE LA BOITE")
        For D = 3 To Cells(Rows.Count, 12).End(xlUp).Row
            ComboBox4.AddItem .Cells(D, 12)
        Next D

    End With

    Dim E As Integer
    With Worksheets("CHARGEMENT DE LA BOITE")
        For E = 3 To Cells(Rows.Count, 15).End(xlUp).Row
            ComboBox5.AddItem .Cells(E, 15)
        Next E

    End With

    Dim F As Integer
    With Worksheets("CHARGEMENT DE LA BOITE")
        For F = 3 To Cells(Rows.Count, 18).End(xlUp).Row
            ComboBox6.AddItem .Cells(E, 17)
        Next F

    End With



End Sub

à bientôt
 

Dranreb

XLDnaute Barbatruc
Re : Methode additem ne fonctionne pas tout le temps

Bonsoir
et enfin votre "remarque je pense n'est valable que dans le cas où les plages sont constantes je suppose, sinon je ne comprends pas comment on peut le faire
C'est pourtant précisément ce que fait Bébère (que je salue au passage) dans sa proposition (le début tout au moins, il semble avoir oublié d'effacer tout votre fatras derrière) : Il affecte les propriétés Value de plages de longueurs variable aux propriétés List de ComboBox ! Alors regardez mieux, ça devrait quand même vous intéressez plus que ça !
P.S. Un conseil qualifiez toujours vos propriétés pour éviter qu'il en emploi un objet par défaut qui ne convient pas:
toujours une expression Workbook. devant WorkSheet, et une expression Worksheet. devant Cells ou toute autre méthode Range. Bien sûr l'objet d'un bloc With (non précisé à part le point) convient aussi, encore qu'on risque d'oublier le point.
Cordialement.
 
Dernière édition:

vmatthieu

XLDnaute Occasionnel
Re : Methode additem ne fonctionne pas tout le temps

bonsoir Dranreb,
ma réponse tarde un peu mais mieux vaut tard que jamais.
en fait je n'avais pas compris votre commentaire (je penche plus sur mon inexpérience qu'un manque de pédagogie de votre part)mais tout vient de s'éclairer avec l'exemple de bébère et votre second commentaires
merci donc à vous deux et bonne soirée
 

Discussions similaires

Statistiques des forums

Discussions
312 380
Messages
2 087 799
Membres
103 664
dernier inscrit
wolvi71