Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

VBA et Validation incompatibles ?

6 réponses
Avatar
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

6 réponses

Avatar
Fredo P
Serait il possible d'avoir le fichier in question, on y verrait plus clair
http://cjoint.com
--
Fredo P.
"Pierre.M" a écrit dans le message de news:

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




Avatar
Pierre.M
En voila un modele simplifie : http://cjoint.com/?fExI6j6CH3




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

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


Avatar
JB
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 wrote:
En voila un modele simplifie :http://cjoint.com/?fExI6j6CH3

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



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 -



Avatar
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 ce cas-la ?

Merci encore et bon week-end.

Pierre.M



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

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


Avatar
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 wrote:
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 said:



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 -



Avatar
Pierre.M
Je viens d'apprendre quelque chose.
Merci beaucoup.

Pierre.M




On 2008-05-31 10:34:10 +0200, JB said:

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 wrote:
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 said:



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 -