Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Le contenu de la cellule étant le même que celui de la textbox interdir saisie

fb62840

XLDnaute Impliqué
Bonjour à toutes et tous,

Je fais appel à vous car je ne parviens pas à obtenir un fonctionnement correct de cette macro (elle est supposer vérifier que le contenu d'une TextBox ne se trouve pas déjà sur la feuille)

Code:
Private Sub CommandButton1_Click()
Dim val1
val1 = TextBox1.Value
With Sheets("Base")
    For Each Cell In .Range("A2:C" & .Range("A65536").End(xlUp).Row)
    Next
    'Devrait m'afficher vrai lorsque la cellule a le même contenu que la TextBox1
    MsgBox Cell = val1
    'Et pourtant lorsque c'est le cas cela affiche "Faux"   

 If Cell = val1 Then
        MsgBox ("Impossible d'enregistrer plusieurs fois les mêmes données.")
        Exit Sub
 Else

    Num = Sheets("Base").Range("A65536").End(xlUp).Row + 1
    Sheets("Base").Activate
    Range("A" & Num).Value = TextBox1.Value
    Range("B" & Num).Value = TextBox2.Value
 End If
End With
End Sub
 

Pièces jointes

  • Donn.xls
    30.5 KB · Affichages: 34
  • Donn.xls
    30.5 KB · Affichages: 45
  • Donn.xls
    30.5 KB · Affichages: 35

laetitia90

XLDnaute Barbatruc
Re : Le contenu de la cellule étant le même que celui de la textbox interdir saisie

bonjour fb62840 , l'ami Pierrot

je vois que tu tiens pas compte de la textbox2 ??
une facon de l'ecrire je cherche seulement sur colonne 1 a adapter

Code:
Private Sub CommandButton1_Click()
 Dim n As Long, a As Range
 With Sheets("Base")
 n = .Range("A65536").End(xlUp).Row
 Set a = .Range("A2" & ":A" & n).Find(What:=TextBox1, LookIn:=xlValues, LookAt:=xlWhole)
 If Not a Is Nothing Then
 MsgBox ("Impossible d'enregistrer plusieurs fois les mêmes données.")
 Else
 .Range("A" & n + 1) = TextBox1.Value
 .Range("B" & n + 1) = TextBox2.Value
 End If
 End With
End Sub
 

fb62840

XLDnaute Impliqué
Re : Le contenu de la cellule étant le même que celui de la textbox interdir saisie

Comment pourrais-je faire si je souhaitais mettre deux conditions ?

avec par exemple une condition sur le nom ?

 

laetitia90

XLDnaute Barbatruc
Re : Le contenu de la cellule étant le même que celui de la textbox interdir saisie

re,

Code:
Private Sub CommandButton1_Click()
 Dim n As Long, a As Range, b As Range
 With Sheets("Base")
 n = .Range("A65536").End(xlUp).Row
 Set a = .Range("A2" & ":A" & n).Find(What:=TextBox1, LookIn:=xlValues, LookAt:=xlWhole)
 Set b = .Range("B2" & ":B" & n).Find(What:=TextBox2, LookIn:=xlValues, LookAt:=xlWhole)
 If Not a Is Nothing Or Not b Is Nothing Then
 MsgBox ("Impossible d'enregistrer plusieurs fois les mêmes données.")
 Else
 .Range("A" & n + 1) = TextBox1.Value
 .Range("B" & n + 1) = TextBox2.Value
 End If
 End With
End Sub

dans certains plus simple de contrôler a la source & non en validant mais bon!!!
 

fb62840

XLDnaute Impliqué
Re : Le contenu de la cellule étant le même que celui de la textbox interdir saisie

Merci c'est parfait.

 

Discussions similaires

Réponses
1
Affichages
177
Réponses
0
Affichages
157
Réponses
6
Affichages
144
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…