Quelle boucle dois-je utiliser?

monami

XLDnaute Nouveau
salut tt lmnde

J'ai un petit probleme que je n'arrive pas a resoudre je vous demande svp de l'aide et merci.

Comment faire une boucle qui n'autorise qu'un seul enregistrement c a dire, si le nom saisi dans la textbox1 se trouve déja dans la liste alors affiche un message exple "ce nom existe;saisissez un autre" j'ain essayé ça mais je n'ai pas réussi

Dim x As Integer
'Boucle de 1 à 100
For x = 1 To 100
'On sort de la boucle si la cellule testée contient la meme Valeur que textbox1

If (Cells(x, 1)) .value=textbox1.value
Then Exit For
affiche un message
msgbox" Ce nom existe, veuillez saisir un autre"
et vider textbox1
textbox1.value=""
Next x

Question 2: Comment vider touts les textbox dans un USF sauf une (affiche la date)
Merci pour votre
 

PMO2

XLDnaute Accro
Re : Quelle boucle dois-je utiliser?

Bonjour,

Un exemple avec la démarche suivante

1) créez un UserForm1
2) y créer une TextBox1 et, à sa droite, un Label1
3) y créer une TextBox2 et, à sa droite, un Label2
4) y créer une TextBox3 et, à sa droite, un Label3
5) y créer un CommandButton1
6) copiez le code suivant dans la fenêtre de code du UserForm

Code:
Private Sub CommandButton1_Click()
Dim S As Worksheet
Dim R As Range
Dim var
Dim i&
Dim j&
Dim C As Control
Set S = Sheets("test")
Set R = S.Range("a1:a" & S.[a65536].End(xlUp).Row & "")
var = R
For i& = 1 To UBound(var, 1)
  For j& = 1 To UBound(var, 2)
    If Trim(LCase(var(i&, j&))) = Trim(LCase(TextBox1)) Then
      MsgBox "Le nom " & var(i&, j&) & " existe déjà"
        '--- efface les TextBox sauf la TextBox2 qui contient la date ---
      For Each C In Me.Controls
        If TypeName(C) = "TextBox" Then
          If C.Name <> "TextBox2" Then C = ""
        End If
      Next C
        '----------------------------------------------------------------
    End If
  Next j&
Next i&

''' votre traitement si le nom n'a pas été trouvé '''
MsgBox "votre traitement ..."
End Sub

Private Sub UserForm_Initialize()
TextBox2 = Format(Now, "dd/mm/yy")
TextBox3 = "Autre chose à effacer"
Label1.Caption = "Nom"
Label2.Caption = "Date"
Label3.Caption = "Autre chose"
CommandButton1.Caption = "Valider"
End Sub

7) créez une feuille "test" et mettez des données de A1 jusqu'à Ax

La comparaison aura lieu entre les valeurs de la colonne A de la feuille "test" ET la valeur de TextBox2.

Cordialement.

PMO
Patrick Morange
 

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 165
Messages
2 085 880
Membres
103 009
dernier inscrit
dede972