Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

gerard55

XLDnaute Occasionnel
Bonjour à tous
Dans une colonne, de a3: a30 j'ai un certain nombre de mots d'écrit avec parfois des cellules vide. Je voudrais qu'excel m'affiche un message d'erreur lors du lancement d'une macro quand il y un nom qui est écrit 2 fois.
Merci pour vos suggestions
a+
 
Re : doublon

Bonjour Gerard55,

Voici le code VBA à mettre dans la ThisWorkbook

Code:
Private Sub Workbook_Open()
    Dim lgLig1 As Long
    Dim lgLig2 As Long
    
    ' Feuille à traiter
    With Worksheets("Feuil1")
        ' Boucle de la ligne 3 à 30
        For lgLig1 = 3 To 30
            ' Boucle de la ligne 4 à 30
            For lgLig2 = lglig + 1 To 30
                ' Si doublon, message
                If lgLig1 <> lgLig2 And .Range("A" & lgLig1) <> "" _
                    And .Range("A" & lgLig2) <> "" _
                    And .Range("A" & lgLig1) = .Range("A" & lgLig2) Then
                    
                    MsgBox "Il existe des doublons", vbInformation, "Attention..."
                    Exit Sub
                End If
            Next lgLig2
        Next lgLig1
    End With
End Sub

@+
 
Re : doublon

Bonsoir Mathieu
Merci pour ce code. Il fonctionne, mais, le message s'affiche à l'ouverture du classeur. Alors que, je voudrais -soit un message immédiatement suite à une double saisie
-soit lors du lancement de la macro mais là, je ne vois pas comment la lancer. Car, je lance d'autre macro en même temps. Alors avec la méthode Call je pourrait l'appeler mais là je ne vois pas comment
Merci pour les suggestions
a+
 
Re : doublon

Bonsoir Gerard55,

Une nouvelle version lors de la saisie de données entre les cellules A3:A30
Tu mets ce code dans la feuille Feuil1 par exemple

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim lgLig As Long
    
    If Not Intersect(Target, Range("A3:A30")) Is Nothing And Target.Count Then
        ' Boucle de la ligne 3 à 30
        For lgLig = 3 To 30
            ' Si doublon, message
            If Range("A" & lgLig) <> "" _
                And Target.Row <> lgLig _
                And Range("A" & lgLig) = Target.Value Then
                        
                MsgBox "Il existe des doublons", vbInformation, "Attention..."
                Exit Sub
            End If
        Next lgLig
    End If
End Sub

@+
 

Pièces jointes

Re : doublon

Bonsoir,
a placer en VBA
Private Sub Worksheet_Change(ByVal cellule As Excel.Range)
If cellule.Column = 1 Then
If Application.WorksheetFunction. _
CountIf(Range("A:A"), cellule.Value) > 1 Then
MsgBox "Hola ! J' y suis déja "
cellule.Value = ""
cellule.Select
End If
End If
End Sub
A +
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
12
Affichages
606
Réponses
17
Affichages
2 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…