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​
 

Discussions similaires

Réponses
6
Affichages
268

Statistiques des forums

Discussions
311 711
Messages
2 081 794
Membres
101 817
dernier inscrit
carvajal