Erreur dans une boucle VBA

Bonjour à tous.

J'ai une boucle VBA pour l'alimentation d'une combobox. Quand je définit à la main la plage d'alimentation de O2 à Ox tout fonctionne.

Au début de mon code je demande par une inputbox la première cellule de recherche (au lieu que ce soit O2)... Mais l'adaptation ne fonctionne pas. Pouvez vous me dire qu'est-ce qui bloque dans les syntaxes svp?

Code qui marche :

a = ws.Range("O2:O" & ws.[O65000].End(xlUp).Row)

Via l'inputbox, si je mets O2 je sors l'info avec

Res.Address(0, 0)

Soit théoriquement (et c'est là que ça bloque) :

a = ws.Range(Res.Address(0, 0) & ":" & Res.Column & ws.[ & Res.Column  & 65000].End(xlUp).Row)

Mais non...

Si quelqu'un a la correction de la syntaxe voire une ligne plus "courte" je suis preneur

Merciii

Code complet ici : A mettre dans un module et lancer, pas besoin d'avoir un fichier

Sub CreateCombBox1()
'Déclaration variables
Dim ws As Worksheet
Dim oTB As Object
'Définition variables
Set ws = Worksheets("Feuil1")
Set Ras = Application.InputBox("Indiquez sur quelle cellule la liste doit être" & vbLf & "intégrée.", "Saisir une cellule" & vbLf & vbLf & "(Ex: N20)", "N20", Type:=8)
Rass = Ras.Address
Set Res = Application.InputBox("Indiquez la Cellule à partir de laquelle la liste" & vbLf & "doit commencer.", "Saisir une cellule" & vbLf & vbLf & "(Ex: Si de A5 à A(x), tapez A5)", "N20", Type:=8)
Ress = Res.Address(0, 0)
Set oTB = ws.OLEObjects.Add(ClassType:="Forms.ComboBox.1", _
                Link:=False, DisplayAsIcon:=False, Width:=150, Height:=18)
'Positionnement Combobox
    With oTB
    .LinkedCell = Rass
    .Left = ws.Range(Rass).Left
    .Top = ws.Range(Rass).Top
    .Object.BackColor = RGB(255, 255, 255)
    .Object.ForeColor = RGB(0, 0, 0)
    End With
'Alimentation Dico Combobox
        Set mondico = CreateObject("Scripting.Dictionary")
            a = ws.Range("O2:O" & ws.[O65000].End(xlUp).Row)
            For i = LBound(a) To UBound(a)
              If a(i, 1) <> "" Then mondico(a(i, 1)) = ""
            Next i
'Tri des données Combobox Alpha + Alimentation
            temp = mondico.keys
            Call Tri(temp, LBound(temp), UBound(temp))
            oTB.Object.List = temp
            oTB.Object.Text = "Saisir un nom"
End Sub
Sub Tri(a, gauc, droi)
  ref = a((gauc + droi) \ 2)
  g = gauc: D = droi
  Do
     Do While a(g) < ref: g = g + 1: Loop
     Do While ref < a(D): D = D - 1: Loop
     If g <= D Then
        temp = a(g): a(g) = a(D): a(D) = temp
        g = g + 1: D = D - 1
     End If
   Loop While g <= D
   If g < droi Then Call Tri(a, g, droi)
   If gauc < D Then Call Tri(a, gauc, D)
End Sub

Bonjour,

res.column renvoie un numéro de colonne pas son identification par lettre(s)

essaie ceci

a =ws.Range(res.Address(0, 0) & ":" & ws.Cells(Rows.Count, res.Column).End(xlUp).Address)

Bonjour et merci de te pencher sur mon suejt... La Méthode Range de l'objet _Worksheet à échoué

Bonjour,

voir correction plus haut

Parfait comme toujours ^^ Reste à la comprendre je regarde ça en détail ce soir.

Merci à toi

Rechercher des sujets similaires à "erreur boucle vba"