Afficher 1 msge erreur doublon en VBA

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

J

Jean-Pierre

Guest
Bonjour à tous,

Voici le soucis que je n'arrive pas à résoudre:

J'ai une liste de noms sur une Feuil2, sur la feuil1 une colonne (A2:A34) une série de N° de 68 à 100 représentant des attributions que je dois donner à chaque nom, comme par exemple
un Nom avec son N° de diplôme.
j'ai créé un UserForm sur la Feuil2 comprenant 2 fenêtres déroulantes
permettant de 'voir'mes N° (Feuil1) & les noms (Feuil2) et un bouton de validation permettant d'enregistrer le N° dans Feui1!B2 & Nom (Feuil1!C2) et pour l'opérateur l'affichage du résulat dans une cellule de la Feuil2!P249 & Q249.
Ce que je souhaiterai : c'est un message d'erreur qui devrait apparaître avertissant l'opérateur qu'1 de ces N° a déjà été attribué.
J'ai essayé toutes les opérations y compris ''Validation'.
Voilà, je m'en remets à vous qui avez de l'expérience et du génie!
mais peut-être que je suis utopique et dans ce cas je vous prie
de m'excuser pour ce long bavardage.
& Mille Bravos pour ce site.
 
re

la meme macro, mais mieux, lol, celle-ci te supprimera de la combobox les numéros déjà utilisé.

Par contre réinitialisation de ceux-ci lors d'une nouvelle initialisation de l'userform (suis-je clair ?) :

Code:
Private Sub CommandButton1_Click()
Dim derligne As Integer
Dim c As Range
Dim lindex As Byte

If Me.ComboBox1 = '' Then MsgBox 'Merci de choisir un numéro': Exit Sub
If Me.ComboBox2 = '' Then MsgBox 'Merci de choisir un nom': Exit Sub

With Sheets('feuil2'Â'Â')
derligne = .Range('c65536'Â'Â').End(xlUp).Row + 1

For Each c In .Range('c1:c' & derligne - 1)
If ComboBox1 = c Then MsgBox 'Numéro déjà utilisé.', vbOKOnly + vbCritical, 'Attention...': Exit Sub
Next c


.Range('c' & derligne) = ComboBox1
.Range('d' & derligne) = ComboBox2
End With
lindex = ComboBox1.ListIndex
ComboBox1.RemoveItem (ComboBox1.ListIndex)
ComboBox1.ListIndex = lindex


End Sub

voilà

Message édité par: Hervé, à: 01/03/2005 00:25
 
Hervé

1 Gd merci d'avoir répondu aussi rapidemment ! Mais désolé de répondre si tardivement , car je suis parti en voyage et viens de rentrer ce soir de Lille.

Je n'ai pas encore inséré/essayé les 2 macros dans mon travail, mais
utilisé ton zip et... bravo! car c'est exactement ce que je voulais réaliser cela m'aide énormément dans mon projet.
Je m'attellerai demain soir aux exercices...
Je te tiens au courant si j'avais qq problèmes de mise en oeuvre
des macros, ou simplement pour te dire que c'est génial.

Encore merci et bonne journée.
@+

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

S
Réponses
0
Affichages
726
S
R
Réponses
2
Affichages
2 K
Risbal14
R
C
  • Question Question
Réponses
10
Affichages
20 K
Colombine
C
N
  • Question Question
Réponses
5
Affichages
3 K
C
  • Question Question
Réponses
11
Affichages
2 K
loran45
L
Retour