Bonjour,
Je n'arrive pas à trouver comment déclarer une seule fois les variables ET leur valeurs pour plusieurs macros:
Je prends l'exemple de 3 macros (j'ai mis les mêmes macros sur 3 modules pour expliquer au mieux mon besoin),
MODULE 1 et 2 ça marche mais module 3: ca plante.
MODULE 1: je déclare classiquement dans chaque macro les types de variables et leur valeur:
Sub SUP()
Dim L As Long
Dim v As Long
Dim R As Long
Dim ligne As Long
ligne = 2
L = 1
v = 2
R = 3
While Cells(ligne, L) <> ""
If Cells(ligne, v) > 10 Then
Cells(ligne, R) = "SUP"
End If
ligne = ligne + 1
Wend
End Sub
Sub INF()
Dim L As Long
Dim v As Long
Dim R As Long
Dim ligne As Long
ligne = 2
L = 1
v = 2
R = 3
While Cells(ligne, L) <> ""
If Cells(ligne, v) < 10 Then
Cells(ligne, R) = "INF"
End If
ligne = ligne + 1
Wend
End Sub
Sub efface()
Dim L As Long
Dim v As Long
Dim R As Long
Dim ligne As Long
ligne = 2
L = 1
v = 2
R = 3
While Cells(ligne, L) <> ""
Cells(ligne, R) = " "
ligne = ligne + 1
Wend
MODULE 2: Pour faire plus simple, je ne déclare en début de module que le type de variables pour éviter de le répéter dans toutes les macros, par contre, je déclare les valeurs des variables dans chaque macro:
Dim L As Long
Dim v As Long
Dim R As Long
Dim ligne As Long
Sub SUP()
ligne = 2
L = 1
v = 2
R = 3
While Cells(ligne, L) <> ""
If Cells(ligne, v) > 10 Then
Cells(ligne, R) = "SUP"
End If
ligne = ligne + 1
Wend
End Sub
Sub INF()
ligne = 2
L = 1
v = 2
R = 3
While Cells(ligne, L) <> ""
If Cells(ligne, v) < 10 Then
Cells(ligne, R) = "INF"
End If
ligne = ligne + 1
Wend
End Sub
Sub efface()
ligne = 2
L = 1
v = 2
R = 3
While Cells(ligne, L) <> ""
Cells(ligne, R) = " "
ligne = ligne + 1
Wend
End Sub
MODULE 3: c'est ce dont j'ai besoin: si j'ai à changer sur 50 macros les variables et leur valeur pourquoi on ne peut pas faire comme avec les type de variable et les saisir une seule fois en début de module ??
Dim L As Long
Dim v As Long
Dim R As Long
Dim ligne As Long
ligne = 2
L = 1
v = 2
R = 3
Sub SUP()
While Cells(ligne, L) <> ""
If Cells(ligne, v) > 10 Then
Cells(ligne, R) = "SUP"
End If
ligne = ligne + 1
Wend
End Sub
Sub INF()
While Cells(ligne, L) <> ""
If Cells(ligne, v) < 10 Then
Cells(ligne, R) = "INF"
End If
ligne = ligne + 1
Wend
End Sub
Sub efface()
While Cells(ligne, L) <> ""
Cells(ligne, R) = " "
ligne = ligne + 1
Wend
End Sub
J'ai "ERREUR D'INSTRUCTION".... sur le module 3, comment procéder svp ?
Merci d'avance pour votre aide !
Je n'arrive pas à trouver comment déclarer une seule fois les variables ET leur valeurs pour plusieurs macros:
Je prends l'exemple de 3 macros (j'ai mis les mêmes macros sur 3 modules pour expliquer au mieux mon besoin),
MODULE 1 et 2 ça marche mais module 3: ca plante.
MODULE 1: je déclare classiquement dans chaque macro les types de variables et leur valeur:
Sub SUP()
Dim L As Long
Dim v As Long
Dim R As Long
Dim ligne As Long
ligne = 2
L = 1
v = 2
R = 3
While Cells(ligne, L) <> ""
If Cells(ligne, v) > 10 Then
Cells(ligne, R) = "SUP"
End If
ligne = ligne + 1
Wend
End Sub
Sub INF()
Dim L As Long
Dim v As Long
Dim R As Long
Dim ligne As Long
ligne = 2
L = 1
v = 2
R = 3
While Cells(ligne, L) <> ""
If Cells(ligne, v) < 10 Then
Cells(ligne, R) = "INF"
End If
ligne = ligne + 1
Wend
End Sub
Sub efface()
Dim L As Long
Dim v As Long
Dim R As Long
Dim ligne As Long
ligne = 2
L = 1
v = 2
R = 3
While Cells(ligne, L) <> ""
Cells(ligne, R) = " "
ligne = ligne + 1
Wend
MODULE 2: Pour faire plus simple, je ne déclare en début de module que le type de variables pour éviter de le répéter dans toutes les macros, par contre, je déclare les valeurs des variables dans chaque macro:
Dim L As Long
Dim v As Long
Dim R As Long
Dim ligne As Long
Sub SUP()
ligne = 2
L = 1
v = 2
R = 3
While Cells(ligne, L) <> ""
If Cells(ligne, v) > 10 Then
Cells(ligne, R) = "SUP"
End If
ligne = ligne + 1
Wend
End Sub
Sub INF()
ligne = 2
L = 1
v = 2
R = 3
While Cells(ligne, L) <> ""
If Cells(ligne, v) < 10 Then
Cells(ligne, R) = "INF"
End If
ligne = ligne + 1
Wend
End Sub
Sub efface()
ligne = 2
L = 1
v = 2
R = 3
While Cells(ligne, L) <> ""
Cells(ligne, R) = " "
ligne = ligne + 1
Wend
End Sub
MODULE 3: c'est ce dont j'ai besoin: si j'ai à changer sur 50 macros les variables et leur valeur pourquoi on ne peut pas faire comme avec les type de variable et les saisir une seule fois en début de module ??
Dim L As Long
Dim v As Long
Dim R As Long
Dim ligne As Long
ligne = 2
L = 1
v = 2
R = 3
Sub SUP()
While Cells(ligne, L) <> ""
If Cells(ligne, v) > 10 Then
Cells(ligne, R) = "SUP"
End If
ligne = ligne + 1
Wend
End Sub
Sub INF()
While Cells(ligne, L) <> ""
If Cells(ligne, v) < 10 Then
Cells(ligne, R) = "INF"
End If
ligne = ligne + 1
Wend
End Sub
Sub efface()
While Cells(ligne, L) <> ""
Cells(ligne, R) = " "
ligne = ligne + 1
Wend
End Sub
J'ai "ERREUR D'INSTRUCTION".... sur le module 3, comment procéder svp ?
Merci d'avance pour votre aide !