Bonjour Christian,
Si j'ai compris, cette section
'----------
If UfParametres.TxbCCoul1.Value = 1 then
UfParametres.TxbAttib1.Backcolor = C1
ElseIf UfParametres.TxbCCoul1.Value = 2 then
UfParametres.TxbAttib1.Backcolor = C2
.../...
est basée sur la valeur de "TxbCCoul1.Value " . As-tu essayé quelque
chose dans le genre :
'----------------------------------
Dim A As Integer
With UfParametres
'récupération de la valeur du contrôle "Textbox"
If IsNumeric(.TxbCCoul1.Value) = True Then
A = .TxbCCoul1.Value
Else
MsgBox "donnée entrée non valide"
Exit Sub
End If
'S'assurer que la valeur saisie est conforme
If A >= 1 And A < 57 Then
.Controls("TxbAttib" & A).Backcolor = "C" & A
End If
End With
'----------------------------------
Dans ta procédure tu utilises C1 ... comme je ne sais pas à quoi cela
réfère... il n'est pas certain que "C" & A soit acceptable !
Salutations!
"Christian Raoux" a écrit dans le message de
news:
Salut la liste
J'ai un UserForm qui s'ouvre à la sélection d'une feuille
il est modifier par macro
mais j'ai besoin de condition répetitives pour colorisée des textBox
J'ai dans :
Private Sub Worksheet_Activate()
With UfParametres
.TxbAttib1.Value = Parametres.Range("H2").Text
.TxbCode1.Value = Parametres.Range("I2").Text
.TxbCCoul1.Value = Parametres.Range("I2").Interior.ColorIndex
.TxbAttib2.Value = Parametres.Range("H3").Text
.TxbCode2.Value = Parametres.Range("I3").Text
.TxbCCoul2.Value = Parametres.Range("I3").Interior.ColorIndex
.TxbAttib3.Value = Parametres.Range("H4").Text
.TxbCode3.Value = Parametres.Range("I4").Text
.TxbCCoul3.Value = Parametres.Range("I4").Interior.ColorIndex
.TxbAttib4.Value = Parametres.Range("H5").Text
.TxbCode4.Value = Parametres.Range("I5").Text
.TxbCCoul4.Value = Parametres.Range("I5").Interior.ColorIndex
....
.TxbAttib20.Value = Parametres.Range("H21").Text
.TxbCode20.Value = Parametres.Range("I21").Text
.TxbCCoul20.Value = Parametres.Range("I21").Interior.ColorIndex
End With
ce que je veux faire pour TxbAttib1, TxbCode1, TxbCCoul1 à TxbAttib20,
TxbCode20, TxbCCoul20
If UfParametres.TxbCCoul1.Value = 1 then
UfParametres.TxbAttib1.Backcolor = C1
ElseIf UfParametres.TxbCCoul1.Value = 2 then
UfParametres.TxbAttib1.Backcolor = C2
ElseIf UfParametres.TxbCCoul1.Value = 3 then
UfParametres.TxbAttib1.Backcolor = C3
...
ElseIf UfParametres.TxbCCoul1.Value = 56 then
UfParametres.TxbAttib1.Backcolor = C56
End If
Comment faire pour ne pas réécrir les condition à chaque fois
merci d'avance
christian
Bonjour Christian,
Si j'ai compris, cette section
'----------
If UfParametres.TxbCCoul1.Value = 1 then
UfParametres.TxbAttib1.Backcolor = C1
ElseIf UfParametres.TxbCCoul1.Value = 2 then
UfParametres.TxbAttib1.Backcolor = C2
.../...
est basée sur la valeur de "TxbCCoul1.Value " . As-tu essayé quelque
chose dans le genre :
'----------------------------------
Dim A As Integer
With UfParametres
'récupération de la valeur du contrôle "Textbox"
If IsNumeric(.TxbCCoul1.Value) = True Then
A = .TxbCCoul1.Value
Else
MsgBox "donnée entrée non valide"
Exit Sub
End If
'S'assurer que la valeur saisie est conforme
If A >= 1 And A < 57 Then
.Controls("TxbAttib" & A).Backcolor = "C" & A
End If
End With
'----------------------------------
Dans ta procédure tu utilises C1 ... comme je ne sais pas à quoi cela
réfère... il n'est pas certain que "C" & A soit acceptable !
Salutations!
"Christian Raoux" <christian.raoux@free.fr> a écrit dans le message de
news:XnF941858B0B8C0Fchristianraoux@213.228.0.196...
Salut la liste
J'ai un UserForm qui s'ouvre à la sélection d'une feuille
il est modifier par macro
mais j'ai besoin de condition répetitives pour colorisée des textBox
J'ai dans :
Private Sub Worksheet_Activate()
With UfParametres
.TxbAttib1.Value = Parametres.Range("H2").Text
.TxbCode1.Value = Parametres.Range("I2").Text
.TxbCCoul1.Value = Parametres.Range("I2").Interior.ColorIndex
.TxbAttib2.Value = Parametres.Range("H3").Text
.TxbCode2.Value = Parametres.Range("I3").Text
.TxbCCoul2.Value = Parametres.Range("I3").Interior.ColorIndex
.TxbAttib3.Value = Parametres.Range("H4").Text
.TxbCode3.Value = Parametres.Range("I4").Text
.TxbCCoul3.Value = Parametres.Range("I4").Interior.ColorIndex
.TxbAttib4.Value = Parametres.Range("H5").Text
.TxbCode4.Value = Parametres.Range("I5").Text
.TxbCCoul4.Value = Parametres.Range("I5").Interior.ColorIndex
....
.TxbAttib20.Value = Parametres.Range("H21").Text
.TxbCode20.Value = Parametres.Range("I21").Text
.TxbCCoul20.Value = Parametres.Range("I21").Interior.ColorIndex
End With
ce que je veux faire pour TxbAttib1, TxbCode1, TxbCCoul1 à TxbAttib20,
TxbCode20, TxbCCoul20
If UfParametres.TxbCCoul1.Value = 1 then
UfParametres.TxbAttib1.Backcolor = C1
ElseIf UfParametres.TxbCCoul1.Value = 2 then
UfParametres.TxbAttib1.Backcolor = C2
ElseIf UfParametres.TxbCCoul1.Value = 3 then
UfParametres.TxbAttib1.Backcolor = C3
...
ElseIf UfParametres.TxbCCoul1.Value = 56 then
UfParametres.TxbAttib1.Backcolor = C56
End If
Comment faire pour ne pas réécrir les condition à chaque fois
merci d'avance
christian
Bonjour Christian,
Si j'ai compris, cette section
'----------
If UfParametres.TxbCCoul1.Value = 1 then
UfParametres.TxbAttib1.Backcolor = C1
ElseIf UfParametres.TxbCCoul1.Value = 2 then
UfParametres.TxbAttib1.Backcolor = C2
.../...
est basée sur la valeur de "TxbCCoul1.Value " . As-tu essayé quelque
chose dans le genre :
'----------------------------------
Dim A As Integer
With UfParametres
'récupération de la valeur du contrôle "Textbox"
If IsNumeric(.TxbCCoul1.Value) = True Then
A = .TxbCCoul1.Value
Else
MsgBox "donnée entrée non valide"
Exit Sub
End If
'S'assurer que la valeur saisie est conforme
If A >= 1 And A < 57 Then
.Controls("TxbAttib" & A).Backcolor = "C" & A
End If
End With
'----------------------------------
Dans ta procédure tu utilises C1 ... comme je ne sais pas à quoi cela
réfère... il n'est pas certain que "C" & A soit acceptable !
Salutations!
"Christian Raoux" a écrit dans le message de
news:
Salut la liste
J'ai un UserForm qui s'ouvre à la sélection d'une feuille
il est modifier par macro
mais j'ai besoin de condition répetitives pour colorisée des textBox
J'ai dans :
Private Sub Worksheet_Activate()
With UfParametres
.TxbAttib1.Value = Parametres.Range("H2").Text
.TxbCode1.Value = Parametres.Range("I2").Text
.TxbCCoul1.Value = Parametres.Range("I2").Interior.ColorIndex
.TxbAttib2.Value = Parametres.Range("H3").Text
.TxbCode2.Value = Parametres.Range("I3").Text
.TxbCCoul2.Value = Parametres.Range("I3").Interior.ColorIndex
.TxbAttib3.Value = Parametres.Range("H4").Text
.TxbCode3.Value = Parametres.Range("I4").Text
.TxbCCoul3.Value = Parametres.Range("I4").Interior.ColorIndex
.TxbAttib4.Value = Parametres.Range("H5").Text
.TxbCode4.Value = Parametres.Range("I5").Text
.TxbCCoul4.Value = Parametres.Range("I5").Interior.ColorIndex
....
.TxbAttib20.Value = Parametres.Range("H21").Text
.TxbCode20.Value = Parametres.Range("I21").Text
.TxbCCoul20.Value = Parametres.Range("I21").Interior.ColorIndex
End With
ce que je veux faire pour TxbAttib1, TxbCode1, TxbCCoul1 à TxbAttib20,
TxbCode20, TxbCCoul20
If UfParametres.TxbCCoul1.Value = 1 then
UfParametres.TxbAttib1.Backcolor = C1
ElseIf UfParametres.TxbCCoul1.Value = 2 then
UfParametres.TxbAttib1.Backcolor = C2
ElseIf UfParametres.TxbCCoul1.Value = 3 then
UfParametres.TxbAttib1.Backcolor = C3
...
ElseIf UfParametres.TxbCCoul1.Value = 56 then
UfParametres.TxbAttib1.Backcolor = C56
End If
Comment faire pour ne pas réécrir les condition à chaque fois
merci d'avance
christian
Bonjour Christian,
Si j'ai compris, cette section
'----------
If UfParametres.TxbCCoul1.Value = 1 then
UfParametres.TxbAttib1.Backcolor = C1
ElseIf UfParametres.TxbCCoul1.Value = 2 then
UfParametres.TxbAttib1.Backcolor = C2
.../...
est basée sur la valeur de "TxbCCoul1.Value " . As-tu essayé quelque
chose dans le genre :
'----------------------------------
Dim A As Integer
With UfParametres
'récupération de la valeur du contrôle "Textbox"
If IsNumeric(.TxbCCoul1.Value) = True Then
A = .TxbCCoul1.Value
Else
MsgBox "donnée entrée non valide"
Exit Sub
End If
'S'assurer que la valeur saisie est conforme
If A >= 1 And A < 57 Then
.Controls("TxbAttib" & A).Backcolor = "C" & A
End If
End With
'----------------------------------
Dans ta procédure tu utilises C1 ... comme je ne sais pas à quoi cela
réfère... il n'est pas certain que "C" & A soit acceptable !
Salutations!
"Christian Raoux" a écrit dans le message de
news:
Salut la liste
J'ai un UserForm qui s'ouvre à la sélection d'une feuille
il est modifier par macro
mais j'ai besoin de condition répetitives pour colorisée des textBox
J'ai dans :
Private Sub Worksheet_Activate()
With UfParametres
.TxbAttib1.Value = Parametres.Range("H2").Text
.TxbCode1.Value = Parametres.Range("I2").Text
.TxbCCoul1.Value = Parametres.Range("I2").Interior.ColorIndex
.TxbAttib2.Value = Parametres.Range("H3").Text
.TxbCode2.Value = Parametres.Range("I3").Text
.TxbCCoul2.Value = Parametres.Range("I3").Interior.ColorIndex
.TxbAttib3.Value = Parametres.Range("H4").Text
.TxbCode3.Value = Parametres.Range("I4").Text
.TxbCCoul3.Value = Parametres.Range("I4").Interior.ColorIndex
.TxbAttib4.Value = Parametres.Range("H5").Text
.TxbCode4.Value = Parametres.Range("I5").Text
.TxbCCoul4.Value = Parametres.Range("I5").Interior.ColorIndex
....
.TxbAttib20.Value = Parametres.Range("H21").Text
.TxbCode20.Value = Parametres.Range("I21").Text
.TxbCCoul20.Value = Parametres.Range("I21").Interior.ColorIndex
End With
ce que je veux faire pour TxbAttib1, TxbCode1, TxbCCoul1 à TxbAttib20,
TxbCode20, TxbCCoul20
If UfParametres.TxbCCoul1.Value = 1 then
UfParametres.TxbAttib1.Backcolor = C1
ElseIf UfParametres.TxbCCoul1.Value = 2 then
UfParametres.TxbAttib1.Backcolor = C2
ElseIf UfParametres.TxbCCoul1.Value = 3 then
UfParametres.TxbAttib1.Backcolor = C3
...
ElseIf UfParametres.TxbCCoul1.Value = 56 then
UfParametres.TxbAttib1.Backcolor = C56
End If
Comment faire pour ne pas réécrir les condition à chaque fois
merci d'avance
christian
Bonjour Christian,
Si j'ai compris, cette section
'----------
If UfParametres.TxbCCoul1.Value = 1 then
UfParametres.TxbAttib1.Backcolor = C1
ElseIf UfParametres.TxbCCoul1.Value = 2 then
UfParametres.TxbAttib1.Backcolor = C2
.../...
est basée sur la valeur de "TxbCCoul1.Value " . As-tu essayé quelque
chose dans le genre :
'----------------------------------
Dim A As Integer
With UfParametres
'récupération de la valeur du contrôle "Textbox"
If IsNumeric(.TxbCCoul1.Value) = True Then
A = .TxbCCoul1.Value
Else
MsgBox "donnée entrée non valide"
Exit Sub
End If
'S'assurer que la valeur saisie est conforme
If A >= 1 And A < 57 Then
.Controls("TxbAttib" & A).Backcolor = "C" & A
End If
End With
'----------------------------------
Dans ta procédure tu utilises C1 ... comme je ne sais pas à quoi cela
réfère... il n'est pas certain que "C" & A soit acceptable !
Salutations!
"Christian Raoux" <christian.raoux@free.fr> a écrit dans le message de
news:XnF941858B0B8C0Fchristianraoux@213.228.0.196...
Salut la liste
J'ai un UserForm qui s'ouvre à la sélection d'une feuille
il est modifier par macro
mais j'ai besoin de condition répetitives pour colorisée des textBox
J'ai dans :
Private Sub Worksheet_Activate()
With UfParametres
.TxbAttib1.Value = Parametres.Range("H2").Text
.TxbCode1.Value = Parametres.Range("I2").Text
.TxbCCoul1.Value = Parametres.Range("I2").Interior.ColorIndex
.TxbAttib2.Value = Parametres.Range("H3").Text
.TxbCode2.Value = Parametres.Range("I3").Text
.TxbCCoul2.Value = Parametres.Range("I3").Interior.ColorIndex
.TxbAttib3.Value = Parametres.Range("H4").Text
.TxbCode3.Value = Parametres.Range("I4").Text
.TxbCCoul3.Value = Parametres.Range("I4").Interior.ColorIndex
.TxbAttib4.Value = Parametres.Range("H5").Text
.TxbCode4.Value = Parametres.Range("I5").Text
.TxbCCoul4.Value = Parametres.Range("I5").Interior.ColorIndex
....
.TxbAttib20.Value = Parametres.Range("H21").Text
.TxbCode20.Value = Parametres.Range("I21").Text
.TxbCCoul20.Value = Parametres.Range("I21").Interior.ColorIndex
End With
ce que je veux faire pour TxbAttib1, TxbCode1, TxbCCoul1 à TxbAttib20,
TxbCode20, TxbCCoul20
If UfParametres.TxbCCoul1.Value = 1 then
UfParametres.TxbAttib1.Backcolor = C1
ElseIf UfParametres.TxbCCoul1.Value = 2 then
UfParametres.TxbAttib1.Backcolor = C2
ElseIf UfParametres.TxbCCoul1.Value = 3 then
UfParametres.TxbAttib1.Backcolor = C3
...
ElseIf UfParametres.TxbCCoul1.Value = 56 then
UfParametres.TxbAttib1.Backcolor = C56
End If
Comment faire pour ne pas réécrir les condition à chaque fois
merci d'avance
christian
Bonjour Christian,
Si j'ai compris, cette section
'----------
If UfParametres.TxbCCoul1.Value = 1 then
UfParametres.TxbAttib1.Backcolor = C1
ElseIf UfParametres.TxbCCoul1.Value = 2 then
UfParametres.TxbAttib1.Backcolor = C2
.../...
est basée sur la valeur de "TxbCCoul1.Value " . As-tu essayé quelque
chose dans le genre :
'----------------------------------
Dim A As Integer
With UfParametres
'récupération de la valeur du contrôle "Textbox"
If IsNumeric(.TxbCCoul1.Value) = True Then
A = .TxbCCoul1.Value
Else
MsgBox "donnée entrée non valide"
Exit Sub
End If
'S'assurer que la valeur saisie est conforme
If A >= 1 And A < 57 Then
.Controls("TxbAttib" & A).Backcolor = "C" & A
End If
End With
'----------------------------------
Dans ta procédure tu utilises C1 ... comme je ne sais pas à quoi cela
réfère... il n'est pas certain que "C" & A soit acceptable !
Salutations!
"Christian Raoux" a écrit dans le message de
news:
Salut la liste
J'ai un UserForm qui s'ouvre à la sélection d'une feuille
il est modifier par macro
mais j'ai besoin de condition répetitives pour colorisée des textBox
J'ai dans :
Private Sub Worksheet_Activate()
With UfParametres
.TxbAttib1.Value = Parametres.Range("H2").Text
.TxbCode1.Value = Parametres.Range("I2").Text
.TxbCCoul1.Value = Parametres.Range("I2").Interior.ColorIndex
.TxbAttib2.Value = Parametres.Range("H3").Text
.TxbCode2.Value = Parametres.Range("I3").Text
.TxbCCoul2.Value = Parametres.Range("I3").Interior.ColorIndex
.TxbAttib3.Value = Parametres.Range("H4").Text
.TxbCode3.Value = Parametres.Range("I4").Text
.TxbCCoul3.Value = Parametres.Range("I4").Interior.ColorIndex
.TxbAttib4.Value = Parametres.Range("H5").Text
.TxbCode4.Value = Parametres.Range("I5").Text
.TxbCCoul4.Value = Parametres.Range("I5").Interior.ColorIndex
....
.TxbAttib20.Value = Parametres.Range("H21").Text
.TxbCode20.Value = Parametres.Range("I21").Text
.TxbCCoul20.Value = Parametres.Range("I21").Interior.ColorIndex
End With
ce que je veux faire pour TxbAttib1, TxbCode1, TxbCCoul1 à TxbAttib20,
TxbCode20, TxbCCoul20
If UfParametres.TxbCCoul1.Value = 1 then
UfParametres.TxbAttib1.Backcolor = C1
ElseIf UfParametres.TxbCCoul1.Value = 2 then
UfParametres.TxbAttib1.Backcolor = C2
ElseIf UfParametres.TxbCCoul1.Value = 3 then
UfParametres.TxbAttib1.Backcolor = C3
...
ElseIf UfParametres.TxbCCoul1.Value = 56 then
UfParametres.TxbAttib1.Backcolor = C56
End If
Comment faire pour ne pas réécrir les condition à chaque fois
merci d'avance
christian
Bonjour Christian,
Si tu acceptes la suggestion
Cette ligne de commande :
.Controls("TxbAttib" & A).Backcolor = "C" & A
sera remplacé par :
.Controls("TextBox" & A).Value = C(A)
Une façon de s'en sortir, au lieu d'utiliser des constantes, utilise
une variable de type "Array" (tableau) que tu définis dans le haut
d'un module comme Public.
Public C(1 To 56) As Integer
Tu crées une petite procédure pour initialer ce tableau à l'ouvertue
de ton classeur ... ou autrement ... selon ton application
'----------------
Sub InitialerMonTableau()
C(1) = "x"
C(2) = "y"
C(3) = "z"
'.../...etc
C(56) = "zz"
End Sub
'----------------
Et dans le ThisWorkbook de ton classeur Ou dans la procédure "Private
Sub UserForm_Initialize()" de ton formulaire.
'--------------------------------
Private Sub Workbook_Open()
InitialerMonTableau
End Sub
'--------------------------------
Salutations!
"Christian Raoux" a écrit dans le message de
news:
C1 à C56 représentes des Public Constantes definies dans les
déclarations du module, definie "As Long"
"C"& A ne marche pas "Imconpatiblité de type"
merci
Christian
"Denis Michon" écrivait
news:9Zbkb.2131$:Bonjour Christian,
Si j'ai compris, cette section '----------
If UfParametres.TxbCCoul1.Value = 1 then
UfParametres.TxbAttib1.Backcolor = C1
ElseIf UfParametres.TxbCCoul1.Value = 2 then
UfParametres.TxbAttib1.Backcolor = C2 .../...
est basée sur la valeur de "TxbCCoul1.Value " . As-tu essayé quelque
chose dans le genre :
'----------------------------------
Dim A As Integer
With UfParametres
'récupération de la valeur du contrôle "Textbox"
If IsNumeric(.TxbCCoul1.Value) = True Then
A = .TxbCCoul1.Value
Else
MsgBox "donnée entrée non valide"
Exit Sub
End If
'S'assurer que la valeur saisie est conforme
If A >= 1 And A < 57 Then
.Controls("TxbAttib" & A).Backcolor = "C" & A
End If
End With
'----------------------------------
Dans ta procédure tu utilises C1 ... comme je ne sais pas à quoi cela
réfère... il n'est pas certain que "C" & A soit acceptable !
Salutations!
"Christian Raoux" a écrit dans le message
de news: Salut la
liste
J'ai un UserForm qui s'ouvre à la sélection d'une feuille
il est modifier par macro
mais j'ai besoin de condition répetitives pour colorisée des textBox
J'ai dans :
Private Sub Worksheet_Activate()
With UfParametres
.TxbAttib1.Value = Parametres.Range("H2").Text
.TxbCode1.Value = Parametres.Range("I2").Text
.TxbCCoul1.Value = Parametres.Range("I2").Interior.ColorIndex
.TxbAttib2.Value = Parametres.Range("H3").Text
.TxbCode2.Value = Parametres.Range("I3").Text
.TxbCCoul2.Value = Parametres.Range("I3").Interior.ColorIndex
.TxbAttib3.Value = Parametres.Range("H4").Text
.TxbCode3.Value = Parametres.Range("I4").Text
.TxbCCoul3.Value = Parametres.Range("I4").Interior.ColorIndex
.TxbAttib4.Value = Parametres.Range("H5").Text
.TxbCode4.Value = Parametres.Range("I5").Text
.TxbCCoul4.Value = Parametres.Range("I5").Interior.ColorIndex ....
.TxbAttib20.Value = Parametres.Range("H21").Text
.TxbCode20.Value = Parametres.Range("I21").Text
.TxbCCoul20.Value = Parametres.Range("I21").Interior.ColorIndex
End With
ce que je veux faire pour TxbAttib1, TxbCode1, TxbCCoul1 à
TxbAttib20, TxbCode20, TxbCCoul20
If UfParametres.TxbCCoul1.Value = 1 then
UfParametres.TxbAttib1.Backcolor = C1
ElseIf UfParametres.TxbCCoul1.Value = 2 then
UfParametres.TxbAttib1.Backcolor = C2
ElseIf UfParametres.TxbCCoul1.Value = 3 then
UfParametres.TxbAttib1.Backcolor = C3 ...
ElseIf UfParametres.TxbCCoul1.Value = 56 then
UfParametres.TxbAttib1.Backcolor = C56
End If
Comment faire pour ne pas réécrir les condition à chaque fois
merci d'avance
christian
Bonjour Christian,
Si tu acceptes la suggestion
Cette ligne de commande :
.Controls("TxbAttib" & A).Backcolor = "C" & A
sera remplacé par :
.Controls("TextBox" & A).Value = C(A)
Une façon de s'en sortir, au lieu d'utiliser des constantes, utilise
une variable de type "Array" (tableau) que tu définis dans le haut
d'un module comme Public.
Public C(1 To 56) As Integer
Tu crées une petite procédure pour initialer ce tableau à l'ouvertue
de ton classeur ... ou autrement ... selon ton application
'----------------
Sub InitialerMonTableau()
C(1) = "x"
C(2) = "y"
C(3) = "z"
'.../...etc
C(56) = "zz"
End Sub
'----------------
Et dans le ThisWorkbook de ton classeur Ou dans la procédure "Private
Sub UserForm_Initialize()" de ton formulaire.
'--------------------------------
Private Sub Workbook_Open()
InitialerMonTableau
End Sub
'--------------------------------
Salutations!
"Christian Raoux" <christian.raoux@free.fr> a écrit dans le message de
news:XnF9418A99C939D8christianraoux@213.228.0.196...
C1 à C56 représentes des Public Constantes definies dans les
déclarations du module, definie "As Long"
"C"& A ne marche pas "Imconpatiblité de type"
merci
Christian
"Denis Michon" <denis.michon@cgocable.ca> écrivait
news:9Zbkb.2131$V11.635@charlie.risq.qc.ca:
Bonjour Christian,
Si j'ai compris, cette section '----------
If UfParametres.TxbCCoul1.Value = 1 then
UfParametres.TxbAttib1.Backcolor = C1
ElseIf UfParametres.TxbCCoul1.Value = 2 then
UfParametres.TxbAttib1.Backcolor = C2 .../...
est basée sur la valeur de "TxbCCoul1.Value " . As-tu essayé quelque
chose dans le genre :
'----------------------------------
Dim A As Integer
With UfParametres
'récupération de la valeur du contrôle "Textbox"
If IsNumeric(.TxbCCoul1.Value) = True Then
A = .TxbCCoul1.Value
Else
MsgBox "donnée entrée non valide"
Exit Sub
End If
'S'assurer que la valeur saisie est conforme
If A >= 1 And A < 57 Then
.Controls("TxbAttib" & A).Backcolor = "C" & A
End If
End With
'----------------------------------
Dans ta procédure tu utilises C1 ... comme je ne sais pas à quoi cela
réfère... il n'est pas certain que "C" & A soit acceptable !
Salutations!
"Christian Raoux" <christian.raoux@free.fr> a écrit dans le message
de news:XnF941858B0B8C0Fchristianraoux@213.228.0.196... Salut la
liste
J'ai un UserForm qui s'ouvre à la sélection d'une feuille
il est modifier par macro
mais j'ai besoin de condition répetitives pour colorisée des textBox
J'ai dans :
Private Sub Worksheet_Activate()
With UfParametres
.TxbAttib1.Value = Parametres.Range("H2").Text
.TxbCode1.Value = Parametres.Range("I2").Text
.TxbCCoul1.Value = Parametres.Range("I2").Interior.ColorIndex
.TxbAttib2.Value = Parametres.Range("H3").Text
.TxbCode2.Value = Parametres.Range("I3").Text
.TxbCCoul2.Value = Parametres.Range("I3").Interior.ColorIndex
.TxbAttib3.Value = Parametres.Range("H4").Text
.TxbCode3.Value = Parametres.Range("I4").Text
.TxbCCoul3.Value = Parametres.Range("I4").Interior.ColorIndex
.TxbAttib4.Value = Parametres.Range("H5").Text
.TxbCode4.Value = Parametres.Range("I5").Text
.TxbCCoul4.Value = Parametres.Range("I5").Interior.ColorIndex ....
.TxbAttib20.Value = Parametres.Range("H21").Text
.TxbCode20.Value = Parametres.Range("I21").Text
.TxbCCoul20.Value = Parametres.Range("I21").Interior.ColorIndex
End With
ce que je veux faire pour TxbAttib1, TxbCode1, TxbCCoul1 à
TxbAttib20, TxbCode20, TxbCCoul20
If UfParametres.TxbCCoul1.Value = 1 then
UfParametres.TxbAttib1.Backcolor = C1
ElseIf UfParametres.TxbCCoul1.Value = 2 then
UfParametres.TxbAttib1.Backcolor = C2
ElseIf UfParametres.TxbCCoul1.Value = 3 then
UfParametres.TxbAttib1.Backcolor = C3 ...
ElseIf UfParametres.TxbCCoul1.Value = 56 then
UfParametres.TxbAttib1.Backcolor = C56
End If
Comment faire pour ne pas réécrir les condition à chaque fois
merci d'avance
christian
Bonjour Christian,
Si tu acceptes la suggestion
Cette ligne de commande :
.Controls("TxbAttib" & A).Backcolor = "C" & A
sera remplacé par :
.Controls("TextBox" & A).Value = C(A)
Une façon de s'en sortir, au lieu d'utiliser des constantes, utilise
une variable de type "Array" (tableau) que tu définis dans le haut
d'un module comme Public.
Public C(1 To 56) As Integer
Tu crées une petite procédure pour initialer ce tableau à l'ouvertue
de ton classeur ... ou autrement ... selon ton application
'----------------
Sub InitialerMonTableau()
C(1) = "x"
C(2) = "y"
C(3) = "z"
'.../...etc
C(56) = "zz"
End Sub
'----------------
Et dans le ThisWorkbook de ton classeur Ou dans la procédure "Private
Sub UserForm_Initialize()" de ton formulaire.
'--------------------------------
Private Sub Workbook_Open()
InitialerMonTableau
End Sub
'--------------------------------
Salutations!
"Christian Raoux" a écrit dans le message de
news:
C1 à C56 représentes des Public Constantes definies dans les
déclarations du module, definie "As Long"
"C"& A ne marche pas "Imconpatiblité de type"
merci
Christian
"Denis Michon" écrivait
news:9Zbkb.2131$:Bonjour Christian,
Si j'ai compris, cette section '----------
If UfParametres.TxbCCoul1.Value = 1 then
UfParametres.TxbAttib1.Backcolor = C1
ElseIf UfParametres.TxbCCoul1.Value = 2 then
UfParametres.TxbAttib1.Backcolor = C2 .../...
est basée sur la valeur de "TxbCCoul1.Value " . As-tu essayé quelque
chose dans le genre :
'----------------------------------
Dim A As Integer
With UfParametres
'récupération de la valeur du contrôle "Textbox"
If IsNumeric(.TxbCCoul1.Value) = True Then
A = .TxbCCoul1.Value
Else
MsgBox "donnée entrée non valide"
Exit Sub
End If
'S'assurer que la valeur saisie est conforme
If A >= 1 And A < 57 Then
.Controls("TxbAttib" & A).Backcolor = "C" & A
End If
End With
'----------------------------------
Dans ta procédure tu utilises C1 ... comme je ne sais pas à quoi cela
réfère... il n'est pas certain que "C" & A soit acceptable !
Salutations!
"Christian Raoux" a écrit dans le message
de news: Salut la
liste
J'ai un UserForm qui s'ouvre à la sélection d'une feuille
il est modifier par macro
mais j'ai besoin de condition répetitives pour colorisée des textBox
J'ai dans :
Private Sub Worksheet_Activate()
With UfParametres
.TxbAttib1.Value = Parametres.Range("H2").Text
.TxbCode1.Value = Parametres.Range("I2").Text
.TxbCCoul1.Value = Parametres.Range("I2").Interior.ColorIndex
.TxbAttib2.Value = Parametres.Range("H3").Text
.TxbCode2.Value = Parametres.Range("I3").Text
.TxbCCoul2.Value = Parametres.Range("I3").Interior.ColorIndex
.TxbAttib3.Value = Parametres.Range("H4").Text
.TxbCode3.Value = Parametres.Range("I4").Text
.TxbCCoul3.Value = Parametres.Range("I4").Interior.ColorIndex
.TxbAttib4.Value = Parametres.Range("H5").Text
.TxbCode4.Value = Parametres.Range("I5").Text
.TxbCCoul4.Value = Parametres.Range("I5").Interior.ColorIndex ....
.TxbAttib20.Value = Parametres.Range("H21").Text
.TxbCode20.Value = Parametres.Range("I21").Text
.TxbCCoul20.Value = Parametres.Range("I21").Interior.ColorIndex
End With
ce que je veux faire pour TxbAttib1, TxbCode1, TxbCCoul1 à
TxbAttib20, TxbCode20, TxbCCoul20
If UfParametres.TxbCCoul1.Value = 1 then
UfParametres.TxbAttib1.Backcolor = C1
ElseIf UfParametres.TxbCCoul1.Value = 2 then
UfParametres.TxbAttib1.Backcolor = C2
ElseIf UfParametres.TxbCCoul1.Value = 3 then
UfParametres.TxbAttib1.Backcolor = C3 ...
ElseIf UfParametres.TxbCCoul1.Value = 56 then
UfParametres.TxbAttib1.Backcolor = C56
End If
Comment faire pour ne pas réécrir les condition à chaque fois
merci d'avance
christian