XL 2016 Uniformiser la date des cellules

Phylo

XLDnaute Occasionnel
Bonjour

J 'ai crée un fichier excel qvec un code vba qui incorpore la date automatiquement
Mais vu que le fichier est utilisé par plusieurs personne. La date entrée est variable selon la date d' ordi de chaque personne

je veux insérer l'instruction dans ce code

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, Columns("J")) Is Nothing And Target.Value <> "" Then
Target.Offset(0, 1).Value = Date & " " & Time
End If

'Dans les colonnes I et K la format de la date est : dd-mm-yyyy
exemple :
Columns()Numberformat="dd-mm-yyyy"


Merci d'avance
 

Pièces jointes

  • FOR-AQ release inbox 07-09-2020.xlsm
    765.1 KB · Affichages: 107
Solution
Mode:=1 est à préciser après une virgule à la fin d'une instruction CA.Add dans la Sub UserForm_Initialize.
Oui, elle ne gène pas, elle est là au cas où vous auriez besoin un jour de pouvoir en supprimer une. Ne serait-ce qu'à la suite d'un ajout avec une information erronée tapée dans une ComboBox.

Je joint mon classeur où j'ai déplacé un ou deux CA.Add pour qu'ils soient dans un ordre plus proche de celui des colonnes du tableau.

Phylo

XLDnaute Occasionnel
Merci bcp Dranreb.

J’allais te poser une question. Les utilisateurs parfois sans faire attention changent l’entête des colonnes. Ce qui bloque la macro. Quand je verrouille les entêtes. Le macro s’arrête. J ai essayé tous mais rien ne marche de façon efficace. As tu une idée?
 

Dranreb

XLDnaute Barbatruc
Ne verrouillez que les cellules de titres avant de protéger la feuille.
Zut! ça ne suffit pas.
Alors il faut déprotéger la feuille dans l'UserForm_Initialize et la reprotéger dans une Private Sub UserForm_QueryClose :
VB:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
   Feuil6.Protect
   End Sub
Au fait il vous plait mon nouvel UserForm ?
 
Dernière édition:

Phylo

XLDnaute Occasionnel
Oui je l'ai ouvert dés que j'ai lancé le deuxiéme formulaire.
Il m'a donnée ce message d'erreur de compilation je pense

1601856705518.png


Pour la protection; si je comprends bien ce que tu veux dire
1- Selectionner les cellules, les verrouiller et faire protéger la feuille
2- Comment je dois la déprotéger dans l'UserForm_Initialize ? enfin c'est quoi ton code !!!

3- Puis dans la feuille source (feuille 6) une reprotéction

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Feuil6.Protect
End Sub
 

Phylo

XLDnaute Occasionnel
J'aimerai travailler sur un projet d'amélioration de la façon de travailler.

Je m'explique..
chaque personne de l'équipe travailler sur la révision d'un dossier identifié par un numéro de lot de 6 chiffres.

Aprés révision, il doit déposer le dossier dans des pigeonniers identifiées (voir l'image représenté sur excel) et il enregistre aussi l'emplacement du dossier dans chaque ligne de la fueille 6 colonne 1 (emplacement).

Le probléme est que les pigeonniers sont placées dans un endroit loins des bureaux. Parfois on donne un emplacement pour le dossier mais on sais pas si l'emplacement est vide ou non.

Mon idée est de mettre un processus automatique par macro ou autre sur une feuille excel qui sera liée à la feuille 6.

Feuille 6

1601859140119.png

Feuille station : emplacement des dossiers
Je pourrais eventuellment mettre une zone de recherche du dossier qui affichent l'emplcement du dossier dans le résultat sous forme par exemple : A17
1601859227847.png

C'est juste une proposition
dis moi ce que t'en penses ?
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Si votre version du CLsCAs n'à pas la propriéte LMaxDropBtn, supprimez simplement les instructions qui l'initialisent. Elle n'est pas fondamentale. Il y avait déjà une ébauche du dispo dans la version du poste #74, mais elle était prévue différemment. J'ai depuis fourni une mise à jour de la ressource.
Le code pour déprotéger c'est bien évidemment Feuil6.Unprotect.
Je ne comprends pas trop. Si vous saisissez en premier un numéro d'emplacement, vous savez tout de suite s'il y a des choses dessus, non ? Et inversement si vous saisissez un Batch vous savez à quel emplacement il est.
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Mais votre tableau (qui ne sera peut être pas nécessaire) ne prévoit, me semble-t-il, que deux places possibles, probablement pour le Vrac Batch et pour le PF Batch (c'est PF ou FG ? il vaudrait mieux qu'un seul de ces 2 termes soient utilisé partout !). Or j'ai cru comprendre qu'il pouvait y en avoir plusieurs de chaque dans la base pour un même emplacement. Alors je soupçonne que ça dépend de la date du jour et d'une date portée dans la base. S'agit-t-il de l'échéance ou de la relâche ?
Si la base ne comportera pas plus de quelques dizaines de milliers de lignes (étant régulièrement épurée des plus anciennes), il devrait être possible de faire l'inventaire de l'occupation des emplacements à chaque actualisation du CL. Il reste à définir comment doit réagir l'UserForm quand on s'apprête à renseigner l'emplacement, dans les différentes circonstances. S'il n'est pas réellement intéressant de pouvoir rechercher dans la base ce qui a été mis, un jour ou l'autre, à un certain emplacement, il serait peut être judicieux de confier la CBxPosition à CA plutôt qu'à CL, quitte à ce qu'un autre dispositif se charge de sa liste, selon des modalités à définir, par exemple en ne proposant que des emplacements libres au jour d'aujourd'hui …
 
Dernière édition:

Phylo

XLDnaute Occasionnel
Je sais que Ce n’est pas évident!!!

Au faite l’emplacement des dossiers dans les pigeonniers juste temporaire en attendant la relache du dossier (10 a 15 jours). Dès qu’on relâche le dossier on enlève le dossier et on supprime l’emplacement dans la ligne pour qu’un nouveau dossier prends la place. Chaque emplacement comporte deux dossiers vrac et son Fg ou (pf). Donc ca va etre quelque chose modifiable, Une combox peut faire la faire parce quelle me propose les places pleines. J’aurai aimé que dès que je rentre un emplacement qu’il me dit qu’il existe deja (comme doublon)
 

Dranreb

XLDnaute Barbatruc
Pour l'instant lorsque vous entrez juste un emplacement pour pouvez seulement chercher toutes les lignes de la base qui le portent. Vous ne pouvez actuellement le remettre vide que si la recherche est stoppée, puisqu'il est pris en charge par CL. Mais on pourrait se débrouiller sans avoir besoin de le vider en cherchant pour tous les emplacements le dernier numéro de vrac où la date de relâche est spécifiée antérieure à la date du jour ou n'est pas spécifiée. Si elle n'est plus prise en charge par CL, la ComboBox pourrait ne plus proposer que les emplacements libres. Mais ça implique qu'on n'ait jamais à localiser une ligne existante d'après l'emplacement, ou de stopper le CL quand la ComboBox reçoit le focus.
Ils ne changeront jamais ces 100 emplacements et s'appelleront toujours de A01 à E20 ?
 
Dernière édition:

Phylo

XLDnaute Occasionnel
Oui effectivement il n’y a que ces 100 en placement. Une autre information a tenir en compte. Si un vrac et son fg sont relâchés. On enlève la ligne. On garde dans la base que les dossiers non encore relâchés.

Entre parenthèses
D’ailleurs, j’aurai aimé dès que je fais la relâche du vrac ou son pf que la macro me colore en rouge ou en verte toute la ligne ou bien juste la partie propre a chaque dossier.

Par exemple, si je relâche le vrac, il me colore de la colonne A jusqu’a la colonne Q.

Et si je relâche Fg. Il me colore de la colonne R jusqu’à la colonne Z.

Bien a toi
 

Dranreb

XLDnaute Barbatruc
C'est bizarre. Alors à quoi ça servait de noter la personne et la date de relâche, s'il faut aussitôt supprimer la ligne ? En tout cas je vois que mon bouton Supprimer ne sera donc pas inutile !
Faites vos coloriages avec des mises en forme conditionnelles.
Ça vous intéresse, oui ou non que l'occupation des emplacements soit déterminée automatiquement et que seul les inoccupés soient proposés ?
 

Discussions similaires