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
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
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