Recherche dans une plage

  • Initiateur de la discussion Initiateur de la discussion Hamb
  • Date de début Date de début

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 !

H

Hamb

Guest
Bonjour le Forum,

Apres avoir fais une recherche je n’ai pas trouvé de réponses concernant ma question ! Elle y est peut-être mais pas trouvé désolé.
Voila ma question :
Avant d’exécuter ce code j’aimerais qu’il vérifie dans ma plage qu’il n’y ai pas déjà une cellule portant le même nom. Par exemple en « B14 » s’il y a Durand, lorsque j’exécuterais mon code j’aimerais qu’il me dise il y a déjà un « Durand ».

Merci de votre aide !

Dim ligne As Integer
Sheets("donnees").Select
ligne = Range("B65536").End(xlUp).Row + 1
Range("B" & ligne).Value = newsalartxt1.Value ' Nom du salarié
Range("C" & ligne).Value = newsalartxt2.Value ' Prenom du salarié
Range("D" & ligne).Value = "Reception"
If ligne = 2 Then
Range("A" & ligne).Value = 1
Else
Range("A" & ligne).Value = Range("A" & ligne - 1) + 1
End If
 
Re : Recherche dans une plage

Bonjour

Tu peux rajouter

Code:
Dim ligne As Integer
Dim Cel As Range

Sheets("donnees").Select

  Set Cel = Range("B:B").Find(newsalartxt1.Value, LookIn:=xlValues, lookat:=xlWhole)
  If Not Cel Is Nothing Then
    MsgBox "Existe"
  End If
.
.
 
Re : Recherche dans une plage

Merci banzai64

Ca fonctionne super bien il me dit effectivement qu’il y a déjà un nom mais le problème c’est qu’il le fait quand le nom est déjà dans la cellule.
Si je met ton bout de code au début il ne vérifie pas, si je le met apres il a validé mon nom et forcement il le trouve. Ou mettre ce bout de code pour qu’avant qu’il valide il vérifie si une cellule porte déjà ce nom ?

Merci
Cordialement

Dim ligne As Integer
Dim Cel As Range

Sheets("donnees").Select
ligne = Range("B65536").End(xlUp).Row + 1
Range("B" & ligne).Value = newsalartxt1.Value ' Nom du salarié
Range("C" & ligne).Value = newsalartxt2.Value ' Prenom du salarié
Range("D" & ligne).Value = "Reception"
Set Cel = Range("B:B").Find(newsalartxt1.Value, LookIn:=xlValues, lookat:=xlWhole)
If Not Cel Is Nothing Then
MsgBox "Ce nom existe deja"
End If
If ligne = 2 Then
Range("A" & ligne).Value = 1
Else
Range("A" & ligne).Value = Range("A" & ligne - 1) + 1
End If
 
Re : Recherche dans une plage

Salut Hamb
voila ce que j'ai mis et qui fonctionne je suis passe par deux variables au lieu des textBox pour le test
Code:
newsalartxt1 = "Oui"  'variable string
newsalartxt2 = "Alain" 'variable string
Dim ligne As Integer
Dim Cel As Range
Set Cel = Range("B:B").Find(newsalartxt1, LookIn:=xlValues,  lookat:=xlWhole) 'si en colonne B je rencontre newsalartxt1
If Not Cel Is Nothing Then
MsgBox "Ce nom existe deja  " & Cel
Exit Sub 'On quitte
End If
Sheets("Feuil1").Select
ligne = Range("B65536").End(xlUp).Row + 1
Range("B" & ligne).Value = newsalartxt1 ' Nom du salarié
Range("C" & ligne).Value = newsalartxt2 ' Prenom du salarié
Range("D" & ligne).Value = "Reception"
 
If ligne = 2 Then
Range("A" & ligne).Value = 1
Else
Range("A" & ligne).Value = Range("A" & ligne - 1) + 1
End If
Ps Salut Banzai64
si cela peut t'aider
Bonne fin de Journée
moi je vais aller commencer la mienne Lol
 
Dernière édition:
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
875
Retour