Macro à compléter double-clic

un internaute

XLDnaute Impliqué
Bonjour le forum,
J'ai la macro ci-dessous:

Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column = 1 Then Target.Value = Date: Cancel = True
If Not Intersect(Range("A3:A" & Range("A" & Rows.Count).End(xlUp).Row), Target) Is Nothing Then
If Not IsError(Application.Match(CSng(Date), Columns("A"), 0)) Then
MsgBox "Une séance existe déjà à cette date"
Target = ""
End If
Cancel = True
ElseIf Not Intersect(Range("A3:A" & Range("A" & Rows.Count).End(xlUp).Row), Target) Is Nothing Then
End If
End Sub

Lorsque je double - clic sur cellule A3 ça me met "Une séance existe déjà à cette date" alors que c'est la première d'une série et que je fait OK ça me l'efface.
Par contre si je tape par exemple 29/10/2016 ça me met bien la date ezt ça la garde
Si je double clic sur cellule A4 ça me met bien : "Une séance existe déjà à cette date" ce que je veux
Y a t-il un moyen pour remédier au premier Double clic et que ça garde la date?
D'avance merci pour vos éventuels retours
Bon WE à tous
 

M12

XLDnaute Accro
Bonjour,
Teste comme ceci
Code:
Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Column = 1 And Target.Value <> "" Then
        MsgBox "Une séance existe déjà à cette date"
        Exit Sub
    Else
        If Target.Column = 1 Then Target.Value = Date: Cancel = True
            If Not Intersect(Range("A3:A" & Range("A" & Rows.Count).End(xlUp).Row), Target) Is Nothing Then
                If Not IsError(Application.Match(CSng(Date), Columns("A"), 0)) Then
                    MsgBox "Une séance existe déjà à cette date"
                    Target = ""
                End If
                Cancel = True
            ElseIf Not Intersect(Range("A3:A" & Range("A" & Rows.Count).End(xlUp).Row), Target) Is Nothing Then
        End If
    End If
End Sub
 

un internaute

XLDnaute Impliqué
Lorsque je Double clique sur la cellule A3 ça m'affiche
samedi 29 octobre 2016
Quelques fois si je suis "distrait" je clique une deuxième fois sur la cellule suivante A4 et ça m'affiche à nouveau => samedi 29 octobre 2016
Je suis "obligé" de faire suppr (pas le problème) ou alors je ne m'en aperçoit pas et j'ai 2 fois la même date.
Cordialement
 

Paf

XLDnaute Barbatruc
Bonjour à tous,

la solution parait de vérifier si la date existe déjà avant de l'inscrire !

a priori
VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Range("A3:A" & Range("A" & Rows.Count).End(xlUp).Row + 1), Target) Is Nothing Then
    If Not IsError(Application.Match(CSng(Date), Columns("A"), 0)) Then
        MsgBox "Une séance existe déjà à cette date"
        Target = ""
    Else
        Target.Value = Date
    End If
    Cancel = True
End If
End Sub

A+
 

un internaute

XLDnaute Impliqué
Bonjour à tous,

la solution parait de vérifier si la date existe déjà avant de l'inscrire !

a priori
VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Range("A3:A" & Range("A" & Rows.Count).End(xlUp).Row + 1), Target) Is Nothing Then
    If Not IsError(Application.Match(CSng(Date), Columns("A"), 0)) Then
        MsgBox "Une séance existe déjà à cette date"
        Target = ""
    Else
        Target.Value = Date
    End If
    Cancel = True
End If
End Sub

A+
 

Discussions similaires

Réponses
2
Affichages
124

Statistiques des forums

Discussions
312 115
Messages
2 085 447
Membres
102 889
dernier inscrit
monsef JABBOUR