Macro pour liste déroulante obligatoire avec double clic

[Résolu/Fermé]
Signaler
Messages postés
20
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
14 mars 2017
-
Messages postés
20
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
14 mars 2017
-
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



5 réponses

Messages postés
15958
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 septembre 2021
1 534
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...
Messages postés
20
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
14 mars 2017

Bonjour,
Voici mon fichier correspondant.
Merci par avance de votre aide.

https://www.cjoint.com/c/GClk11TUAYv
Messages postés
15958
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 septembre 2021
1 534
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 !!!!!!!!!!!!!!!!!!!!
Messages postés
20
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
14 mars 2017

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
Messages postés
15958
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 septembre 2021
1 534
Messages postés
20
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
14 mars 2017

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.