zone texte user form

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 zone texte dans un user form est-il possible d'écrire une ligne de code qui permet de ne pas saisir un code qui existe déjà dans une certaines cellules d'une feuille excel.
exemple je saisis des codes dès lors que ce code à été saisi une fois il est impossible de le saisir à nouveau.
Merci pour vos réponses
a+
Gérard
 
Re : zone texte user form

bonsoir a tous,gerard55
oui biensur tu peux faire ca facilement

sub 'ta zone' _enter()
apres tu verifies ta plage de codes deja entrés si ton entree dans ta zone existe
en sub

mais un bout de ton fichier nous aiderai beaucoup
 
Re : zone texte user form

Bonjour Gérard,

Voici un script du terrible Thierry qui détecte les doublons non pas à partir d'un USF, mais saisis directement d'une colonne en l'occurrence ici la colonne A, mais libre à toi d'en changer.

Option Explicit
Option Compare Text
'@+Thierry 28/01/2003
'http://www.excel-downloads.com/html/French/forum/messages/1_15953_15953.htm
'Doublons_Checking récupéré pour Doublons_Macros_2 France/Québec Mars 2004

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim Ref As String
Dim Cell As Range, Plage As Range
Dim L As Integer
On Error Resume Next
If Application.Intersect(Target, Range("A:A")) Is Nothing Then Exit Sub
Ref = Target.Value
L = Target.Row
Set Plage = Range("A5:A" & L - 1)
For Each Cell In Plage
If Cell = Ref Then
MsgBox "Duplication de la Référence en " & Cell.Address, vbCritical, "Thierry 's Démo"
Cell.Activate
Exit Sub
End If
Next Cell
End Sub

Par ailleurs tu trouveras en pièce jointe , toujours dans le cadre d'une saisie effectuée sur une colonne (ici E), un autre exemple, mais cette fois ci non pas par du VBA, mais plus simplement par une formule (ex : = NB.SI(E$3:E9;E10)=0) via le menu Données/Validation

En espérant t'avoir apporté du nouveau

Rénato
 

Pièces jointes

Re : zone texte user form

Bonsoir Justine et merci de t'intéresser à mon souci
je joins le bout de code dans lequel je voudrais qu'en fin de saisie, il m'alerte si cette référence exisite déjà. Je précise que cette zone texte et ce code est dans le code du bouton valider.
a+ et merci
If UsfMaBoite.Of <> "" Then
Sheets("BD").Range("c3").Value = Of.Value
Sheets("Cmde").Range("c1").Value = Of.Value
Else
MsgBox "Vous n'avez pas saisi l'OF"
Of.SetFocus
Exit Sub
End If
Gérard
 
Re : zone texte user form

Bonsoir à tous
Je reviens vers vous avec mon user form. Je ne vois pas comment m'ne sortir. Les suggestions de Rénato conviennent dans une feuille excel avec la validation. Mais moi, je voudrais que le message d'alerte s'affiche lors de la saisie de la Zone Texte dans l'user form. Car la zone concernée ce trouve sur une autre feuille (voir le code du post précédent)
Merci pour vos suggestions
a+
Gérard
 
Re : zone texte user form

bonsoir tout le monde
pour afficher une alerte, je te propose ceci mais je ne sais pas si cela te conviendra

dans les proprietes de ta textbox, tu affiches ce que tu veux dans la propriete 'controlTipText'. par exemple "attention".
regarde ensuite ce que cela fait en passant le curseur sur la-dite textbox
j'espere que cela te conviendra
bonne continuation
justine
 
Re : zone texte user form

Bonsoir justine
Visiblement rien ne se passe mais c'est sans doute normal. Je n'ai pas modifier le code. mon code est le suivant. que dois-je ajouter pour qu'il ne prenne pas un code déjçà existant dans une certaine zone d'excel (a1:a20)

If UsfMaBoite.Of <> "" Then
Sheets("BD").Range("c3").Value = Of.Value
Sheets("Cmde").Range("c1").Value = Of.Value
Else
MsgBox "Vous n'avez pas saisi l'OF"
Of.SetFocus
Exit Sub
End If
Merci encore
Gérard
 
Re : zone texte user form

Bonsoir Gerard, Rénato, justine

Test ceci :

Quand tu valides avec ton bouton, la macro vérifie dans la plage A1:Axxx si la valeur du textbox1 y figure.
Si c'est le cas une msgbox t'en avise et la macro se termine.
Si il n'y a pas de doublon ton code est appliqué.

Code:
Private Sub CommandButton1_Click()
If Application.WorksheetFunction.CountIf(Range("A1:A" & Range("A65536").End(xlUp).Row), TextBox1.Value) > 0 Then
    MsgBox "Doublon détecté", vbInformation, "Doublon:"
    With TextBox1
      .SelStart = 0
      .SelLength = Len(TextBox1)
      .SetFocus
    End With
    Exit Sub
Else
'.../... ton code si pas de doublon
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
3
Affichages
212
Retour