XL 2016 Limiter saisie de donnée à 10 via userform

koodbook

XLDnaute Nouveau
Bonjour à tous,

Je bloque sur un sujet...
J'ai un userform qui me permet de saisir des données dans un tableau constitué uniquement d'une colonne.

1- Comment est-il possible de limiter la saisie à 10 lignes uniquement? Avec un message en cas d'atteinte des
10 lignes?
2- J'aimerais aussi savoir comment vérifier à la validation de la saisie, si l'information est déjà inscrite dans le tableau pour afficher un message?

Je vous remercie pour votre aide.
Et bonne journée ensoleillée à tous :)

Données du tableau:
En tête: B13

Mon code:

Option Explicit
Const messajout = "Ajouter une entrée"
Dim I As Integer, j As Integer

Private Sub Annuler_Click()
Unload Me
End Sub

Private Sub Valider_Click()
If TextActivite = "" Then
MsgBox "Vous devez inscrire un périmètre ou une activité ", vbExclamation, messajout
TextActivite.SetFocus
Exit Sub
End If
Call Enregdonnees
Range("B14").Select
End Sub

Private Sub Enregdonnees()
I = Range("B23").End(xlUp).Row + 1
With Worksheets("Configuration")
.Activate
.Cells(I, 2) = TextActivite
End With
End Sub​
 

Lone-wolf

XLDnaute Barbatruc
Bonjour koodbook :), le Forum :)

Pour la 1ère demande: dans la macro d'enregistrement tu rajoute
If .Cells(33, "B") <> "" Then
MsgBox "Vous avez atteint la 10ème ligne", , "Ajouter une entrée"
Unload Me
End If

Pour la 2ème, code à adapter

VB:
Private Sub TextBox4_Enter()
Dim  cel As Range

Set cel = Sheets("Configuration").Columns(2).Find(TextActivite, , xlValues, xlWhole)
If Not cel Is Nothing Then
MsgBox "L'activité est déjà inscrite.", , "ATTENTION"
TextActivite = ""
End If
End Sub
 

koodbook

XLDnaute Nouveau
Bonjour Lone-wolf,

Merci beaucoup pour ton aide ;)

Et bonne journée à tous!

Pour le forum et ceux que cela pourrait aider, voici mon code final :

Option Explicit
Const messajout = "Ajouter une entrée"
Const messsupp = "Supprimer une entrée"
Dim I As Integer, j As Integer, cel As Range

Private Sub Annuler_Click()
Unload Me
End Sub

Private Sub Valider_Click()
Set cel = Sheets("Configuration").Columns(2).Find(TextActivite, , xlValues, xlWhole)

If Not IsEmpty(Range("B23")) Then
MsgBox "Vous avez atteint la limite du nombre d'activité", vbExclamation, messsupp
Unload Me
Exit Sub
End If
If TextActivite = "" Then
MsgBox "Vous devez inscrire un périmètre ou une activité ", vbExclamation, messajout
TextActivite.SetFocus
Exit Sub
End If

If Not cel Is Nothing Then
MsgBox "L'activité est déjà inscrite", , "ATTENTION"
TextActivite.SetFocus
Exit Sub
End If

Call Enregdonnees
Range("B14").Select
End Sub

Private Sub Enregdonnees()

I = Range("B23").End(xlUp).Row + 1
With Worksheets("Configuration")
.Activate
.Cells(I, 2) = TextActivite
Unload Me
End With
End Sub​
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas