Bonjour à tous,

peut être n'ai je pas bien su chercher... d'habitude je fini toujours pas trouver.

Premièrement, est-ce correct de déclarer plusieurs variables de la manière suivante :
à la place de :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
Dim v1 As String
Dim v2 As String
Dim v3 As String
Dim v4 As String


Sinon, ma question principale est d'élucider ceci :
Si je déclare quatre variables et que je j'affecte la valeur d'une des variables à une case, pas de problème :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
Sub TEST()
Dim v(4) As String
 
v1 = "2312"
v2 = ""
v3 = "rien"
v4 = "AZ12"
 
Sheets(1).Range("A" & i) = v3
 
End Sub
Mais si je cherche à affecté chaque valeur de variable à une nouvelle cellule, excel semble ne comprend pas. Les valeurs sont nulles !

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub TEST()
Dim v(4) As String
 
v1 = "2312"
v2 = ""
v3 = "rien"
v4 = "AZ12"
 
For i = 1 To 4
Sheets(1).Range("A" & i) = vi
Next i
 
End Sub


De même avec des valeurs Boolean, toutes les variables sont interprétées comme False après un For !
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
Sub Pouet()
Dim v_1 As Boolean
Dim v_2 As Boolean
Dim v_3 As Boolean
Dim DerLigne As Long
Sheets("Chronologie").Select
DerLigne = Range("A1000").End(xlUp).Row
Sheets("Prise contact").Select
 
v_1 = Sheets("Prise contact").Range("B2").Value = Sheets("Prise contact").Range("B1").Value
v_2 = Sheets("Chronologie").Range("B" & DerLigne).Value = Sheets("Prise contact").Range("B2").Value 
v_3 = Sheets("Chronologie").Range("C" & DerLigne).Value = Sheets("Prise contact").Range("K2").Value
 
 
If v_1 = True Then
Sheets("Prise contact").Range("V1") = "vrai"
Else: Sheets("Prise contact").Range("V1") = "faux"
End If
 
If v_2 = True Then
Sheets("Prise contact").Range("V2") = "vrai"
Else: Sheets("Prise contact").Range("V2") = "faux"
End If
 
If v_3 = True Then
Sheets("Prise contact").Range("V3") = "vrai"
Else: Sheets("Prise contact").Range("V3") = "faux"
End If
 
For i = 1 To 3
If v_i = True Then
Sheets("Prise contact").Range("w" & i) = "vrai" & i
Else: Sheets("Prise contact").Range("w" & i) = "faux"
End If
Next i
 
End Sub
Cette macro donne dans mon cas :
Faux Vrai Faux pour la colonne V
et Faux Faux Faux pour la colonne W !

Une idée ?

Merci d'avance !

FloPomPom