yo

Je suis face a un probleme bien embetant et dont la solution doit probablement etre evidente, mais elle m'echappe jusqu'a present.

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
Private Sub UserForm_Initialize()
Dim c As Range
    Dim Wk As Workbook
    Dim Ws As Worksheet
    Dim p As Range
    Dim i As Integer
    Dim num1V As Integer
    Dim num2V As Integer
    num1V = num2V = 0
 
    Set Wk = Workbooks.Open(FileName:="monDoc")
    ' ActiveSheet <=> wk.ActiveSheet
    Set p = ActiveSheet.Cells 
 
    For Each c In p
        If "num1" = c.Value Then
            num1V= c.Column
        ElseIf "num2" = c.Value Then
            num2V= c.Column
        ElseIf 0 <> num1VAnd 0 <> num2VThen
            Exit For
        End If
    Next c
 
    imax = Application.Run("'" & Wk.Name & "'!returnImax")
 
    i = 0
    p = ActiveSheet.Range(Cells(1 + 1, num1V ), Cells(imax, num1V )) ' le coeur du probleme, c.f.: ci-dessous 
    For Each c In p
        MsgBox "c.Value: " & c.Value
        i = i + 1
        If 5 = i Then
            Exit For
        End If
    Next c
End Sub
Le programme a pour but actuellement d'ouvrir un fichier, d'y localiser deux colonnes specifiques et en extraire les donnees (il ne fait ici que les consulter).

La ligne 28 pose un probleme. Celui-ci se traduit par la transformation de toutes les cellules de ActiveSheet en cellules vides et de la non-selection de la plage p de cellules.
Je ne sais pas quelles sont les causes a l'origine de cette erreur, vraiment aucune idee.

De plus, lorsque dans ma derniere boucle, je cherche a visualiser la valeur de la cellule couramment parcourue, j'obtiens une cellule vide ; ce qui va de pair avec les consequences evoquees ci-dessus mais que je ne comprends encore moins etant donne que dans ma premiere boucle, j'ai une reponse non-vide. La plage p etant differente, j'en deduis que le dysfonctionnement est cause par la seconde affectation a p, mais ne sait pas pour quelle(s) raison(s).

Quelqu'un s'aurait-il m'aider a surmonter ce probleme ?

Merci.