prevenir d'un doublon

  • Initiateur de la discussion Initiateur de la discussion Moon
  • 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 !

M

Moon

Guest
Bonjour,
Je suis débutant sous excel et mon probleme est le suivant :
J'ai un fichier excel me permettant par macro d'entrée un nombre de ticket cinéma remboursé par personne et par mois
Colone 1 : nom
Colone 2 : nombre de ticket
Colone 3 : Somme remboursée
Colone 4 : la date du jour de saisie

j'aimerais pouvoir indiquer à la saisie d'un nom que celui ci à déjas dépassé le nombre de ticket remboursé par mois (on rembourse 2 ticket par mois max).

Merci d'avance pour vous reponse
Moon
 
Bonjour

Ci joint une modification de la macro.
J'ai rajouté une colonne Mois, on peut la supprimer par une extraction du mois de la colonne date

Private Sub CommandButton1_Click()
'Call controle

For n = 2 To Range('A1').End(xlDown).Row
If Cells(n, 1) = ComboBox1 And Cells(n, 2) + 1 > 2 Then
MsgBox ('total depassé')
Me.Hide
Exit Sub
End If
Next
'***********************************************************
'mois en cours
moisencours = TextBox4.Value
nbbillet = TextBox1.Value
nom = TextBox1.Value
colonnenom = 1
colonnemois = 6
For i = 2 To Range('A1').End(xlDown).Row
If Cells(i, colonnemois) = moisencours And Cells(i, colonnenom) = nom Then nb = nb + 1
Next i
If nb > 2 Then
MsgBox ('total depassé')
Me.Hide
Exit Sub
End If
'***********************************************************************************
'permet de copier le contenu de ComboBox1 dans la cellule aprés la derniere pleinne
Range('A1').End(xlDown).Offset(1, 0) = TextBox1.Value 'nom
Range('A1').End(xlDown).Offset(0, 1) = TextBox1.Value 'nb ticket
Range('A1').End(xlDown).Offset(0, 3) = TextBox3.Value & '/' & TextBox4.Value & '/' & TextBox2.Value ''date
Range('A1').End(xlDown).Offset(0, 2) = '=RC[-1]*1.5 & '' €''' 'somme remboursé
Range('A1').End(xlDown).Offset(0, 4) = '=R[-1]C+RC[-2]' 'total remboursement
Range('A1').End(xlDown).Offset(0, 6) = TextBox4.Value 'date mois
'Range('A1').End(xlDown).Offset(0, 3) = TextBox3.Value

End Sub
 
Merci Jp14, Je vient d'essayer ta solution et comme pour le fichier de pierrejean, lorsque je met le nombre de ticket à 1 je peut toujours en ajouter sans que le message d'alerte n'apparraisse, je vais essayer de trouver par moi même et sinon une autre question, qu'elle est l'instruction qui permet de chercher dans tout le tableau et pas uniquement dans la derniere ligne pleinne ???

Merci pour tout.

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

Réponses
3
Affichages
1 K
Réponses
8
Affichages
1 K
Réponses
0
Affichages
1 K
Retour