yo
Je suis face a un probleme bien embetant et dont la solution doit probablement etre evidente, mais elle m'echappe jusqu'a present.
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).
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
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.
Partager