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 Dim v(4) As String
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 :
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 Sub TEST() Dim v(4) As String v1 = "2312" v2 = "" v3 = "rien" v4 = "AZ12" Sheets(1).Range("A" & i) = v3 End Sub
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 !
Cette macro donne dans mon cas :
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
Faux Vrai Faux pour la colonne V
et Faux Faux Faux pour la colonne W !
Une idée ?
Merci d'avance !
FloPomPom
Partager