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

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

  • Initiateur de la discussion Initiateur de la discussion koodbook
  • Date de début Date de début

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 !

K

koodbook

Guest
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​
 
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
 
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​
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…