VBA Programmation

bonsoir a tous,

je veux résoudre le problème d'erreur 70 accès refusé

Private Sub UserForm_Initialize()

Dim dligne As Integer

dligne = Feuil4.Range("A" & Rows.Count).End(xlUp).Row

Me.ComboBox4.AddItem ""

For Each cel In Feuil4.Range("A2:A", dligne)

Me.ComboBox4 = cel

If Me.ComboBox4.ListIndex = -1 Then

Me.ComboBox4.AddItem cel

End If

Me.ComboBox4.Text = Me.ComboBox4.List(0)

Next cel

Edit modo : code mis entre balises avec le bouton </>

Bonjour taha.marouen,

Un essai ...

Private Sub UserForm_Initialize()
    Dim dligne As Integer
    Dim cel As Range

    With Feuil4
        dligne = .Range("A" & Rows.Count).End(xlUp).Row
        Me.ComboBox4.AddItem ""

        For Each cel In .Range("A2:A" & dligne)
            Me.ComboBox4 = cel

            If Me.ComboBox4.ListIndex = -1 Then
                Me.ComboBox4.AddItem cel
            End If

            Me.ComboBox4.Text = Me.ComboBox4.List(0)
        Next cel
    End With
End Sub

ric

Bonjour,

ric bonjour,

à savoir : Lorsque vous écrivez ceci : Feuil4.Range("A2:A", dligne)
vous faites référence au nom "VBA" de la feuille (CodeName), Maintenant si c'est le nom de l'onglet sous Excel il faut qu'il soit entre guillemet avec Sheets :
Sheets("Feuil4")

Mais sans fichie nous ne pouvons savoir à quoi cela fait référence !

@ bientôt

LouReeD

Salut le fil,

Un petit rajout, l'utilisation de tableaux structurés facilite grandement la vie du programmeur, en exemple selon un tableau dans le style ci-dessous et qui sera nommé tab_Contacts

image

Dans la Méthode Initialise du formulaire tu peux remplir le ComboBox facilement

Private Sub UserForm_Initialize()
    With Me.ComboBox1
        .ColumnCount = 2
        .List = Range("tab_Contacts[[Prénom]:[Nom]]").Value
    End With
End Sub

Plus simple et plus compréhensible n'est-il pas ?

et si comme l'on veut pousser un peu plus loin, on pourrait intégrer l'index et le récupérer pour une utilisation future.

Rechercher des sujets similaires à "vba programmation"