Macro pour liste déroulante obligatoire avec double clic

Résolu
xaviermagdelaine Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   -  
xaviermagdelaine Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   -
B


Bonsoir à tous,
J'ai un fichier excel (créer par une autre personne) qui me permet d'enregistrer des mouvements de matériels.
Le fonctionnement est le suivant:
Je double clic par ex en C4; une fenêtre s’ouvre et je scanne un code barre correspondant au nom d'une personne identique à la liste se trouvant sous l'onglet "personnel" (ex.pierre, paul, alain, julie) mais pas Daniel car il ne se trouve pas dans la liste.
Mon problème est que je voudrais que nous puissions pas mettre n'importe quelques nom dans cette fenêtre mais UNIQUEMENT les noms se trouvant dan l'onglet "Personnel" (actuellement , ils peuvent écrire n'importe quoi et cela fonctionne sauf que s'ils ne font de double clic le mouvement n'est pas enregistrer dans l'onglet "historique" et que cela doit aller obligatoirement dans l'historique).




Voici le code actuel créer par une autre personne car je n'y connais pas grand chose à ce niveau mais j'aurais besoin de votre savoir afin d'améliorer ce petit fichier.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("C3:C50")) Is Nothing Then
Cancel = True
'Récupération des données de la ligne choisie
xDesigna = Cells(Target.Row, "A")
xReferen = Cells(Target.Row, "B")
xNomAjus = Cells(Target.Row, "C")
xDatePre = Cells(Target.Row, "D")
xManquan = Cells(Target.Row, "F")
xStatut = Cells(Target.Row, "E")
'Test si un ajusteur est déja indiqué
If xNomAjus <> Empty Then
xMess = Empty
xMess = xMess & "L'ajusteur " & xNomAjus & " est déjà indiqué" & Chr(13)
xMess = xMess & "Cela veut-il dire qu'il à rendu le matériel" & Chr(13) & Chr(13)
xMess = xMess & " - Si OUI, matériel rendu, donc effacement des données" & Chr(13)
xMess = xMess & " - Si NON, erreur de ligne" & Chr(13)
xRep = MsgBox(xMess, vbQuestion + vbYesNo, "TOTO")
If xRep = vbYes Then
Cells(Target.Row, "C") = Empty
Cells(Target.Row, "D") = Empty
xStatut = "Rendu"
Cells(Target.Row, "E") = ""
GoTo EnregistreHistorique
Else
Exit Sub
End If
Else
xNomAjus = InputBox("Nom de l'ajusteur", "AJUSTEUR")
Cells(Target.Row, "C") = xNomAjus
Cells(Target.Row, "D") = Now
xDatePre = Cells(Target.Row, "D")
xStatut = "Emprunté"
Cells(Target.Row, "E") = xStatut
End If
EnregistreHistorique:
With Sheets("HistoriquePrêt")
xDerLig = .Range("A65536").End(xlUp).Row
xNewlig = xDerLig + 1
.Cells(xNewlig, "A") = xDesigna 'Désignation
.Cells(xNewlig, "B") = xReferen 'Référence
.Cells(xNewlig, "C") = xNomAjus 'Nom ajusteur
.Cells(xNewlig, "D") = Now 'Date pret
.Cells(xNewlig, "F") = xManquan 'Manquant
.Cells(xNewlig, "E") = xStatut 'Statut
End With
End If
End Sub

J'espère avoir été assez clair dans mes explications et je vous remercie par avance de votre aide.
Bonne soirée



A voir également:

5 réponses

f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

Mon problème est que je voudrais que nous puissions pas mettre n'importe quelques nom dans cette fenêtre mais UNIQUEMENT les noms se trouvant dan l'onglet "Personnel"
Certes. Un fichier avec des donnees bidons(mais coherantes) serait le bienvenu

Pour transmettre un fichier,
Veillez a ce qu'il n'y ait PAS DE DONNEES CONFIDENTIELLES
il faut passer par un site de pièce jointe tel que cjoint.com

Allez sur ce site : https://www.cjoint.com/
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse...
0
xaviermagdelaine Messages postés 20 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,
Voici mon fichier correspondant.
Merci par avance de votre aide.

https://www.cjoint.com/c/GClk11TUAYv
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

J'ai recupere le fichier
une fenêtre s’ouvre et je scanne un code barre correspondant
Moi je vois une inputbox pour saisie manuelle du nom, pas de scan code a barre !!!!!!!!!!!!!!!!!!!!
0
xaviermagdelaine Messages postés 20 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,
Oui je pense que cela s'appelle une inputbox pour entrée des noms manuellement ou bien à partir de code barre que j'ai créer pour lire avec une douchette et le problème se trouve à ce niveau.Il faudrait que l'on puisse entrer dans cette inpubox uniquement les noms des personnes.En fait les personnes porte un badge avec leur code barre identique à la liste se trouvant dans mon fichier sous l'onglet "personnel"et je ne veux pas que l'on puisse entrer autre chose que ce qui se trouve dans cette liste.

Ai-je été plus clair.

Ex:de code barre
https://www.cjoint.com/c/GClo3kgHKnv
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
0
xaviermagdelaine Messages postés 20 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,
Je te remercie pour ta réponse qui correspond parfaitement à ce que souhaitais.
Il me reste juste à regarde ton code afin de le comprendre et de le dupliquer sur toutes les autres feuilles du classeur.
Je te souhaite une bonne journée.
0