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 29/10/2011, 16h01   #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 Contrôle de doublons

Bonjour,

Voila j'ai créé un formulaire pour enregistrer des nouveaux Adhérents au sein du club dans une base de données.

Je recherche une façon de contrôler la présence de doublon lors de la saisie (à savoir si le nom/prénom sont déjà présents, par un message et un arrêt de la création).

Un très grand merci à tout ceux qui pourront m'aider...

Ci joint le fichier exemple

Cordialement
Max
apdf1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/10/2011, 16h39   #2
Membre Expert
 
Inscription : août 2006
Messages : 1 435
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 1 435
Points : 1 756
Points : 1 756
Bonjour,
La fonction Find permet de trouver un enregistrement
A créer dans un module
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
Function presence(nom As String, prenom As String) As Boolean
 Dim ligne As Long, ligne1 As Long, c As Variant
 presence = False
 'élargir la recherche ( ici A:B ) si plus de colonnes
 With Sheets("Feuil1").Range("A:B")   
Set c = .Find("gabin", LookIn:=xlValues)
  If Not c Is Nothing Then
   ligne1 = c.Row   'la recherche revient au début 
   'on considère les prénom dans la colonne 2
   If .Cells(ligne1, 2) = prenom Then presence = True: Exit Function
   'poursuite de la recherche
   Do
    Set c = .FindNext(c)
    ligne = c.Row
    If .Cells(ligne, 2) = prenom Then presence = True: Exit Function
   Loop While Not c Is Nothing And ligne <> ligne1
  End If
 End With
End Function
à utiliser ainsi
Code :
1
2
 
 If presence("Gabin","Jean") then msgbox("trouvé")
helas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/10/2011, 17h05   #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 Helas

Je te remercie beaucoup

J'ai un message d'erreur sur cette ligne

Code :
 With Sheets("Adhérents").Range("A:B") Set c = .Find("baudry", LookIn:=xlValues)
=> "Erreur de syntaxe"

Adhérents étant le nom de ma feuille

@+

Max
apdf1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/10/2011, 17h22   #4
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 849
Points : 16 849
Envoyer un message via Skype™ à bbil
Bonjour...

ce n'est pas une ligne que tu montre c'est deux il manque un retour chariot avant le Set..
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/10/2011, 17h46   #5
Invité de passage
 
Inscription : septembre 2008
Messages : 121
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 121
Points : 4
Points : 4
Bonjour,

Effectivement il manquer un retour chariot. Mais ceci dit, pourquoi que lorsque je tape un nom existant sa me vide bien tous les texBox mais en plus sa copie une ligne avec les infos qui se trouver dans les texBox

Cordialement
Max
apdf1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/10/2011, 18h43   #6
Invité de passage
 
Inscription : juillet 2007
Messages : 22
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 22
Points : 4
Points : 4
Tu dois, avoir un problème dans ta recherche de doublon....même si la formule fonctionne.
Quel évènement utilises tu pour le stockage des données dans ta feuille excel: exit, ou click sur un commandbutton?
rocuet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/10/2011, 19h04   #7
Invité de passage
 
Inscription : septembre 2008
Messages : 121
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 121
Points : 4
Points : 4
Bonjour Rocuet,

Je te remercie d'avoir répondu, pour l'événement du bouton "Private Sub CommandButton1_Click()"

Mais se que je ne comprend toujours pas si je rentre un nom volontairement qui existe dans la liste j'ai bien mon textBox qui se vide mais en plus sa copie une ligne avec les infos qui se trouver dans la texBox

Cordialement

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



Fuseau horaire GMT +2. Il est actuellement 09h53.


 
 
 
 
Partenaires

Hébergement Web