Bonjour,
je suis en train de développer une application Excel ( reprise d'une ancienne version sans macro ni vba) de mon travail.
je dois par exemple faire des boutons sur un userform.
tout cela est ok mais je dois faire une fonction pour un bouton "GOMME"
je vous explique :
une personne est habilité à mettre dans sa cellule une valeur (exemple CA) celle ci se colorie en bleue
ensuite la personne si elle veut la modifier va sur la cellule et clique sur le bouton gomme et cela s'efface.
son supérieur valide son CA donc passage de la cellule en verte avec un v devant CA.
il n'y a que certaines personnes qui peuvent valider le CA (liste mise dans un type string (cf fonction jointe en bas)
Des que la validation est faite la personne non habilité (pas dans la liste) ne peut pas modifier son CA ( normal me direz vous car elle a été validé mais des personnes malhonnête ont déjà fait cela par le passé).
malheureusement je dois faire cela pour 26 valeurs différentes or vba 2013 ne va pas aussi loin voila ma fonction qui fonctionne mais qui est incomplete (car manque de valeur) :
-----------------------
-----------------------
Private Sub GOMME_Click()
'
' fonction de GOMME
' réalisé par XX le 01/10/2014
' toutes personnes peut utiliser la GOMME si pas de validation ultérieur
' si données en cellule validée seules les personnes de la liste peuvent utiliser la GOMME
'
Dim Cell As Variant
Dim Liste As String
Liste = ("X X, Y Y, Z Z")
If
(ActiveCell.FormulaR1C1 = "v CA" Or ActiveCell.FormulaR1C1 = "v RTT" Or ActiveCell.FormulaR1C1 = "v Stage" Or ActiveCell.FormulaR1C1 = "v RC" Or ActiveCell.FormulaR1C1 = "v AT" Or ActiveCell.FormulaR1C1 = "v GE" Or ActiveCell.FormulaR1C1 = "v CEx" Or ActiveCell.FormulaR1C1 = "v 80%" Or ActiveCell.FormulaR1C1 = "v CET RTT" Or ActiveCell.FormulaR1C1 = "v CET CA" Or ActiveCell.FormulaR1C1 = "v ½ CET CA" Or ActiveCell.FormulaR1C1 = "v ½ CET RTT" Or ActiveCell.FormulaR1C1 = "v ½ CA" Or ActiveCell.FormulaR1C1 = "v ½ RTT" Or ActiveCell.FormulaR1C1 = "v ½ Stage" Or ActiveCell.FormulaR1C1 = "v ½ RC" Or ActiveCell.FormulaR1C1 = "v AM" Or ActiveCell.FormulaR1C1 = "v ½ GE" Or ActiveCell.FormulaR1C1 = "v ½ CEx" Or ActiveCell.FormulaR1C1 = "v 90%" Or ActiveCell.FormulaR1C1 = "v ½ CET")
And Not InStr(Liste, VBA.Environ("USERNAME")) <> 0
Then Exit Sub
' la gomme est utilisé pour tous et une précision est faite pour ne pas retiré la couleur si férié en plus du mot férié
For Each Cell In Selection
If (Cell.Value = "FERIE") Then
Cell.Value = "FERIE"
Selection.Interior.ColorIndex = 36
Exit Sub
End If
Next Cell
Selection.Interior.ColorIndex = xlNone
Selection.ClearContents
End Sub
--------------------
je souhaiterais donc faire deux listes
une pour les personnes et une autre pour les valeurs v Ca v RTT
mais lorsque je fais cela je n'arrive pas à la faire fonctionner
soit toute personne peut utiliser la gomme même si pas dans la liste si valeur à v CA ou v RTT etc
soit personnes ne peut utiliser la Gomme
j'ai essayé de faire cela mais ca ne fonctionne pas
Private Sub GOMME_Click()
' fonction de GOMME
' réalisé par X Xle 01/10/2014
' toutes personnes peut utiliser la GOMME si pas de validation ultérieur
' si données en cellule validée seules les personnes de la liste peuvent utiliser la GOMME
Dim Cell As Variant
Dim Liste As String
Dim Liste_2 As String
Liste = ("X X, Y Y , Z Z")
Liste_2 = ("v CA,v RTT,v GE,v Stg,v RC,v AT,v CEx,v 80,v 90,v CET RTT,v CET CA,v ½ CET CA,v ½ CET RTT,v ½ CA,v ½ RTT,v ½ Stage,v ½ RC,v AM,v ½ GE,v ½ CEx")
If Not InStr(Liste, ActiveCell.FormulaR1C1) And Not InStr(Liste, VBA.Environ("USERNAME")) <> 0 Then Exit Sub
' la gomme est utilisé pour tous et une précision est faite pour ne pas retiré la couleur si férié en plus du mot férié
For Each Cell In Selection
If (Cell.Value = "FERIE") Then
Cell.Value = "FERIE"
Selection.Interior.ColorIndex = 36
Exit Sub
End If
Next Cell
Selection.Interior.ColorIndex = xlNone
Selection.ClearContents
end sub
------------------------------------------
merci pour votre aide.
la difficulté et que je ne peux fournir de fichier car le fichier fait référence à username de l'utilisateur
J'essayerai d'apporter le maximum d'information pour vous éclairer et que vous m'aidiez
Cdt
je suis en train de développer une application Excel ( reprise d'une ancienne version sans macro ni vba) de mon travail.
je dois par exemple faire des boutons sur un userform.
tout cela est ok mais je dois faire une fonction pour un bouton "GOMME"
je vous explique :
une personne est habilité à mettre dans sa cellule une valeur (exemple CA) celle ci se colorie en bleue
ensuite la personne si elle veut la modifier va sur la cellule et clique sur le bouton gomme et cela s'efface.
son supérieur valide son CA donc passage de la cellule en verte avec un v devant CA.
il n'y a que certaines personnes qui peuvent valider le CA (liste mise dans un type string (cf fonction jointe en bas)
Des que la validation est faite la personne non habilité (pas dans la liste) ne peut pas modifier son CA ( normal me direz vous car elle a été validé mais des personnes malhonnête ont déjà fait cela par le passé).
malheureusement je dois faire cela pour 26 valeurs différentes or vba 2013 ne va pas aussi loin voila ma fonction qui fonctionne mais qui est incomplete (car manque de valeur) :
-----------------------
-----------------------
Private Sub GOMME_Click()
'
' fonction de GOMME
' réalisé par XX le 01/10/2014
' toutes personnes peut utiliser la GOMME si pas de validation ultérieur
' si données en cellule validée seules les personnes de la liste peuvent utiliser la GOMME
'
Dim Cell As Variant
Dim Liste As String
Liste = ("X X, Y Y, Z Z")
If
(ActiveCell.FormulaR1C1 = "v CA" Or ActiveCell.FormulaR1C1 = "v RTT" Or ActiveCell.FormulaR1C1 = "v Stage" Or ActiveCell.FormulaR1C1 = "v RC" Or ActiveCell.FormulaR1C1 = "v AT" Or ActiveCell.FormulaR1C1 = "v GE" Or ActiveCell.FormulaR1C1 = "v CEx" Or ActiveCell.FormulaR1C1 = "v 80%" Or ActiveCell.FormulaR1C1 = "v CET RTT" Or ActiveCell.FormulaR1C1 = "v CET CA" Or ActiveCell.FormulaR1C1 = "v ½ CET CA" Or ActiveCell.FormulaR1C1 = "v ½ CET RTT" Or ActiveCell.FormulaR1C1 = "v ½ CA" Or ActiveCell.FormulaR1C1 = "v ½ RTT" Or ActiveCell.FormulaR1C1 = "v ½ Stage" Or ActiveCell.FormulaR1C1 = "v ½ RC" Or ActiveCell.FormulaR1C1 = "v AM" Or ActiveCell.FormulaR1C1 = "v ½ GE" Or ActiveCell.FormulaR1C1 = "v ½ CEx" Or ActiveCell.FormulaR1C1 = "v 90%" Or ActiveCell.FormulaR1C1 = "v ½ CET")
And Not InStr(Liste, VBA.Environ("USERNAME")) <> 0
Then Exit Sub
' la gomme est utilisé pour tous et une précision est faite pour ne pas retiré la couleur si férié en plus du mot férié
For Each Cell In Selection
If (Cell.Value = "FERIE") Then
Cell.Value = "FERIE"
Selection.Interior.ColorIndex = 36
Exit Sub
End If
Next Cell
Selection.Interior.ColorIndex = xlNone
Selection.ClearContents
End Sub
--------------------
je souhaiterais donc faire deux listes
une pour les personnes et une autre pour les valeurs v Ca v RTT
mais lorsque je fais cela je n'arrive pas à la faire fonctionner
soit toute personne peut utiliser la gomme même si pas dans la liste si valeur à v CA ou v RTT etc
soit personnes ne peut utiliser la Gomme
j'ai essayé de faire cela mais ca ne fonctionne pas
Private Sub GOMME_Click()
' fonction de GOMME
' réalisé par X Xle 01/10/2014
' toutes personnes peut utiliser la GOMME si pas de validation ultérieur
' si données en cellule validée seules les personnes de la liste peuvent utiliser la GOMME
Dim Cell As Variant
Dim Liste As String
Dim Liste_2 As String
Liste = ("X X, Y Y , Z Z")
Liste_2 = ("v CA,v RTT,v GE,v Stg,v RC,v AT,v CEx,v 80,v 90,v CET RTT,v CET CA,v ½ CET CA,v ½ CET RTT,v ½ CA,v ½ RTT,v ½ Stage,v ½ RC,v AM,v ½ GE,v ½ CEx")
If Not InStr(Liste, ActiveCell.FormulaR1C1) And Not InStr(Liste, VBA.Environ("USERNAME")) <> 0 Then Exit Sub
' la gomme est utilisé pour tous et une précision est faite pour ne pas retiré la couleur si férié en plus du mot férié
For Each Cell In Selection
If (Cell.Value = "FERIE") Then
Cell.Value = "FERIE"
Selection.Interior.ColorIndex = 36
Exit Sub
End If
Next Cell
Selection.Interior.ColorIndex = xlNone
Selection.ClearContents
end sub
------------------------------------------
merci pour votre aide.
la difficulté et que je ne peux fournir de fichier car le fichier fait référence à username de l'utilisateur
J'essayerai d'apporter le maximum d'information pour vous éclairer et que vous m'aidiez
Cdt