VBA et Validation incompatibles ?

Le
Pierre.M
Bonsoir tous,

Je vous soumets le petit problème suivant car je ne trouve pas de solution.

Dans un tableau j'utilise une macro pour remplir une grille de présence
en "cochant" des cellule à l'aide d'un double-clic.
Ca fonctionne bien.

J'ai voulu rajouter une validation des données pour ces memes cellules
(une formule SommeProd - pour éviter la saisie de doublons "meme
personne/meme date") et la, ca ne marche pas.

Si je supprime la macro la validation de donnees est OK.

Les deux sont-ils incompatibles ?
Peut-on contourner cela ? Si oui, comment ?

Merci pour vos conseils et bonne soirée.

Pierre.M
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Fredo P
Le #6742011
Serait il possible d'avoir le fichier in question, on y verrait plus clair
http://cjoint.com
--
Fredo P.
"Pierre.M"
Bonsoir tous,

Je vous soumets le petit problème suivant car je ne trouve pas de
solution.

Dans un tableau j'utilise une macro pour remplir une grille de présence en
"cochant" des cellule à l'aide d'un double-clic.
Ca fonctionne bien.

J'ai voulu rajouter une validation des données pour ces memes cellules
(une formule SommeProd - pour éviter la saisie de doublons "meme
personne/meme date") et la, ca ne marche pas.

Si je supprime la macro la validation de donnees est OK.

Les deux sont-ils incompatibles ?
Peut-on contourner cela ? Si oui, comment ?

Merci pour vos conseils et bonne soirée.

Pierre.M




Pierre.M
Le #6742721
En voila un modele simplifie : http://cjoint.com/?fExI6j6CH3




On 2008-05-30 22:04:56 +0200, "Fredo P"

Serait il possible d'avoir le fichier in question, on y verrait plus clair
http://cjoint.com


JB
Le #6743561
Bonjour,

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range,
Cancel As Boolean)
If Not Intersect([B1:G11], Target) Is Nothing Then
Target.Value = IIf(Target.Value = "", "X", "")
temp = _
"Sumproduct(($A$2:$A$11=" & Cells(Target.Row, 1).Address & ")*(" &
_
Range(Cells(2, Target.Column), Cells(11, Target.Column)).Address
& "= ""X""))"
If Evaluate(temp) > 1 Then
MsgBox "Doublon"
Application.EnableEvents = False
Target = Empty
Application.EnableEvents = True
End If
Cancel = True
End If
End Sub

JB
http://boisgontierjacques.free.fr/

On 30 mai, 23:36, Pierre.M
En voila un modele simplifie :http://cjoint.com/?fExI6j6CH3

On 2008-05-30 22:04:56 +0200, "Fredo P"



Serait il possible d'avoir le fichier in question, on y verrait plus cla ir
http://cjoint.com- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -



Pierre.M
Le #6743821
Merci beaucoup. C'est bien ce dont j'avais besoin.

Saurais-tu par contre me dire pourquoi ça ne fonctionnait pas avec la
validation de données ?
Cette methode me semblait plus simple.
Y a-t-il une incompatibilité en général ou particulièrement dans ce cas-la ?

Merci encore et bon week-end.

Pierre.M



On 2008-05-31 08:35:18 +0200, JB
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range,
Cancel As Boolean)
If Not Intersect([B1:G11], Target) Is Nothing Then
Target.Value = IIf(Target.Value = "", "X", "")
temp = _
"Sumproduct(($A$2:$A$11=" & Cells(Target.Row, 1).Address & ")*(" &
_
Range(Cells(2, Target.Column), Cells(11, Target.Column)).Address
& "= ""X""))"
If Evaluate(temp) > 1 Then
MsgBox "Doublon"
Application.EnableEvents = False
Target = Empty
Application.EnableEvents = True
End If
Cancel = True
End If
End Sub


JB
Le #6744271
Données/Validation ne réagit qu'aux événements exogènes (X est cr ée
par le programme et non pas saisi au clavier)

JB

On 31 mai, 09:30, Pierre.M
Merci beaucoup. C'est bien ce dont j'avais besoin.

Saurais-tu par contre me dire pourquoi ça ne fonctionnait pas avec la
validation de données ?
Cette methode me semblait plus simple.
Y a-t-il une incompatibilité en général ou particulièrement dans c e cas-la ?

Merci encore et bon week-end.

Pierre.M

On 2008-05-31 08:35:18 +0200, JB


Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range,
Cancel As Boolean)
If Not Intersect([B1:G11], Target) Is Nothing Then
  Target.Value = IIf(Target.Value = "", "X", "")
  temp = _
    "Sumproduct(($A$2:$A$11=" & Cells(Target.Row, 1).Address & ")* (" &
_
      Range(Cells(2, Target.Column), Cells(11, Target.Column)).Add ress
& "= ""X""))"
  If Evaluate(temp) > 1 Then
    MsgBox "Doublon"
    Application.EnableEvents = False
    Target = Empty
    Application.EnableEvents = True
  End If
  Cancel = True
End If
End Sub- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -



Pierre.M
Le #6744651
Je viens d'apprendre quelque chose.
Merci beaucoup.

Pierre.M




On 2008-05-31 10:34:10 +0200, JB
Données/Validation ne réagit qu'aux événements exogènes (X est cr
ée
par le programme et non pas saisi au clavier)

JB

On 31 mai, 09:30, Pierre.M
Merci beaucoup. C'est bien ce dont j'avais besoin.

Saurais-tu par contre me dire pourquoi ça ne fonctionnait pas avec la
validation de données ?
Cette methode me semblait plus simple.
Y a-t-il une incompatibilité en général ou particulièrement dans c
e cas-la ?


Merci encore et bon week-end.

Pierre.M

On 2008-05-31 08:35:18 +0200, JB


Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range,
Cancel As Boolean)
If Not Intersect([B1:G11], Target) Is Nothing Then
  Target.Value = IIf(Target.Value = "", "X", "")
  temp = _
    "Sumproduct(($A$2:$A$11=" & Cells(Target.Row, 1).Address & ")*
(" &


_
      Range(Cells(2, Target.Column), Cells(11, Target.Column)).Add
ress


& "= ""X""))"
  If Evaluate(temp) > 1 Then
    MsgBox "Doublon"
    Application.EnableEvents = False
    Target = Empty
    Application.EnableEvents = True
  End If
  Cancel = True
End If
End Sub- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -





Publicité
Poster une réponse
Anonyme