Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/12/2011, 14h54   #1
Invité de passage
 
Inscription : septembre 2008
Messages : 121
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 121
Points : 4
Points : 4
Par défaut Interdire doublons dans deux colonnes

Bonjour,

En reprenant le bon code de mercatoq comment peut on interdire les doublons aux colonnes "C et D".

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range, Plage As Range
 
If Target.Column = 1 And Target.Row > 5 And Target.Count = 1 Then
    Target.NumberFormat = "0##"" ""##"" ""##"" ""##"
    Set Plage = Range("A6:A" & [A65000].End(xlUp).Row)
    If Application.CountIf(Plage, Target.Value) > 1 Then
        Set c = Range("A:A").Find(Target.Text, LookIn:=xlValues, lookat:=xlWhole, After:=Target.Offset(1, 0), SearchDirection:=xlNext)
        MsgBox "Doublon en ligne " & c.Row
        Set c = Nothing
        Application.EnableEvents = False
        Target.Clear
        Application.EnableEvents = True
    End If
    Set Plage = Nothing
End If
End Sub
D'avance un grand merci

@+

Max
apdf1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2011, 15h55   #2
Expert Confirmé Sénior
 
Homme Daniel
aucune
Inscription : septembre 2011
Messages : 2 004
Détails du profil
Informations personnelles :
Nom : Homme Daniel
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : aucune

Informations forums :
Inscription : septembre 2011
Messages : 2 004
Points : 4 037
Points : 4 037
Bonjour,

Le code suivant interdit les doublons pour les colonnes C ou D:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range, Plage As Range
 
If (Target.Column = 3 Or Target.Column = 4) And Target.Row > 5 And Target.Count = 1 Then
    Target.NumberFormat = "0##"" ""##"" ""##"" ""##"
    Set Plage = Range(Cells(6, Target.Column), Cells(65000, Target.Column).End(xlUp))
    If Application.CountIf(Plage, Target.Value) > 1 Then
        Set c = Columns(Target.Column).Find(Target.Text, LookIn:=xlValues, lookat:=xlWhole, After:=Target.Offset(1, 0), SearchDirection:=xlNext)
        MsgBox "Doublon en ligne " & c.Row
        Set c = Nothing
        Application.EnableEvents = False
        Target.Clear
        Application.EnableEvents = True
    End If
    Set Plage = Nothing
End If
End Sub
__________________
Cordialement.

Daniel

Citation:
La plus perdue de toutes les journées est celle où l'on n'a pas ri.
Chamfort
Daniel.C est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 03/12/2011, 16h32   #3
Invité de passage
 
Inscription : septembre 2008
Messages : 121
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 121
Points : 4
Points : 4
Bonjour Daniel

Je te remercie et te souhaite une bonne soirée

@+
Max
apdf1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h03.


 
 
 
 
Partenaires

Hébergement Web