Doublons TextBox/Cellule

  • Initiateur de la discussion Initiateur de la discussion Pibor
  • 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 !

P

Pibor

Guest
Bonsoir le forum,
Je cherche depuis .... heures !
Je fais un contrôle de doublons avec :

On Error Resume Next
For Each cell In Range('A2:A30')
If TextBox1.Value = ActiveCell.Value Then
Doublon = MsgBox('Ce Code existe déja !', vbOKOnly + vbInformation, _
'Doublons')
If Doublon = vbOK Then

TextBox1.Value = ''
TextBox2.Value = '' etc...
Dans le TextBox je rentre un nombre, que je copie dans une cellule. Mais le TB est en texte et la copie dans la cellule se retrouve en numérique. Donc :
If TextBox1.Value = ActiveCell.Value ne fonctionne pas !
Par exemple :
TextBox1.Value = '124' et
ActiveCell.Value = 124
J'ai regardé dans le Wiki,

Private Sub textBox1_Change()
On Error Resume Next
If Not isNumeric(Right(textBox1, 1)) Then
msgBox 'Le caractere saisi n'est pas valide'
textBox1 = Left(textBox1, Len(textBox1) - 1)
End If
End Sub

Mais nul et pas comprendre !
Une solution autre que mettre dans le TB, c124
doit peut être exister ?
Merci
 
Bonsoir pibor

une idée pour ton code :


For Each cell In Range('A2:A30')
       
If CDbl(TextBox1.Value) = cell.Value Then
                Doublon = MsgBox('Ce Code existe déja !', vbOKOnly + vbInformation, 'Doublons')
               
If Doublon = vbOK Then
                        TextBox1.Value = ''
                       
Exit Sub
               
End If
       
End If
Next cell


un autre interprétation possible :


Dim plage As Range

Set plage = Range('a2:a30')

If Application.CountIf(plage, CDbl(TextBox1)) > 1 Then
        MsgBox 'Ce Code existe déja !', vbOKOnly + vbInformation, 'Doublons'
        TextBox1.Value = ''
End If


pour ton soucis de lecture de numérique depuis une textbox regarde du coté de cdbl (voir les codes au-dessus)

salut
 
Bonsoir Hervé,
Merci pour la réponse. La solution 1 marche bien. Un petit soucis car ensuite je cherche la dernière cellule de la liste par :
Range('a65000').End(xlUp).Select
Et ca ne marche plus !
Peut être un effet de CDbl (que je ne trouve pas dans l'aide ?).
Qu'en penses tu ?
Encore merci
 
Rebonsoir Hervé
Précision :
En fait 'Range('a65000').End(xlUp).Select' vient me selectionner la cellule A44, alors que ma liste se termine en A22 ! ?
On dirait que les cellules de A23 à A41 ne sont pas vides !
Pibor
 
- 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
5
Affichages
239
  • Question Question
Microsoft 365 Problème de date
Réponses
5
Affichages
167
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
177
Réponses
4
Affichages
199
Réponses
5
Affichages
262
Retour