Bonjour. Je pense que ce problème est assez simple mais bon je n'arrive pas à m'en sortir.

Je crois voir d'où vient le pb mais je n'ai jamais fait de VBA et là j'ai un petit bug à résoudre ...

En fait l'erreur se produit quand sur une variable de type Range est effectée une valeur exclusivement numérique.

Voilà mon code (épuré) :
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

Sub UpdateComboBox()


    ThisWorkbook.Worksheets("setting").Select
    
    Dim unItem, unCA As Range
    
    PROGRAM_LIST.Clear
    CA_LIST.Clear

    If ThisWorkbook.Worksheets("setting").Range("A13") <> "" Then
        Dim previousProgram As String
        previousProgram = ""
        
        For Each unItem In ThisWorkbook.Worksheets("setting").Range("A13", Range("A13").End(xlDown))
            
           If unItem <> previousProgram Then
                previousProgram = unItem
                PROGRAM_LIST.AddItem (unItem)
            End If

            If ThisWorkbook.Worksheets("setting").Range("A4") <> "" Then
                PROGRAM_LIST.Text = ThisWorkbook.Worksheets("setting").Range("A4")
                
                If unItem = ThisWorkbook.Worksheets("setting").Range("A4") Then
                    Set unCA = unItem.Offset(0, 1)  // ici 
                    
                    If Not unCA Is Nothing Then
                        // je n'entre pas là si la valeur est numérique
                        If ThisWorkbook.Worksheets("setting").Range("B4") = "x" Then
                            ThisWorkbook.Worksheets("setting").Range("B4") = unCA
                            ThisWorkbook.Worksheets("setting").Range("B2") = unCA.Offset(0, 1)
                            data_PM.RapportPath = ThisWorkbook.Worksheets("setting").Range("B2")
                        End If
                        MsgBox "CA ajoute liste -> " + unCA //pas affiché si numérique
                        CA_LIST.AddItem unCA
                    End If
                    If ThisWorkbook.Worksheets("setting").Range("B4") <> "" Then
                        CA_LIST.Text = ThisWorkbook.Worksheets("setting").Range("B4")
                    End If
                End If
            End If
        Next
    End If

Donc voilà, je suis un peu bloqué. Quel type utiliser ? Je peux caster en VBA ?

merci d'avance