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

Bricoltou

XLDnaute Occasionnel
Bonsoir

J'ai une BDD avec des combobox (fichier joint) sur laquelle j'aurai également sélectionné le Jour , la date et le mois .
J'ai dans la feuille BD du classeur des absences prévues a la journée ou une période donnée .
Est -il possible lorsque je vais cliqué sur OK de ma BDD de controler la date de celle ci et les dates de ma feuilles d'absence et j'aimerai avoir un msgbox avec un message ex :le chauffeur est absent ce jour .
J'en profite pour remercier l'ensemble des personnes du Forum qui viennent en aide a des débutants comme moi .😉

Merci pour vos réponses

@+

Bricoltou
 

Pièces jointes

Re : Probléme de date

Bonjour le Fil , Pierrot 93

Quel est le problème de mettre un post sur plusieurs Forum .
Je suis débutant en VBA et j'ai un souci de date sur la construction de ma macro , j'essaie donc de progresser en demandant de l'aide et j'essaie de passer mon post a un maximum de personne comme j'espere pouvoir aider d'autre personnes par la suite .

Ceci dit je n'ai toujours pas trouver de réponse à mon problème

@+

Bricoltou
 
Re : Probléme de date

Bonjour à Tous

N'ayant pas de réponse j'aimerai savoir si c'est possible de faire ou je dois me diriger vers une autre solution
Merci de votre aide pour m'aider dans cette galère .

@+

Bricoltou


Bonsoir

J'ai une BDD avec des combobox (fichier joint) sur laquelle j'aurai également sélectionné le Jour , la date et le mois .
J'ai dans la feuille BD du classeur des absences prévues a la journée ou une période donnée .
Est -il possible lorsque je vais cliqué sur OK de ma BDD de controler la date de celle ci et les dates de ma feuilles d'absence et j'aimerai avoir un msgbox avec un message ex :le chauffeur est absent ce jour .
J'en profite pour remercier l'ensemble des personnes du Forum qui viennent en aide a des débutants comme moi .😉

Merci pour vos réponses

@+

Bricoltou
 

Pièces jointes

Re : Probléme de date

Bonjour,

J'ai ajouté un contrôle sur la combobox18 (qu'il faut généraliser)
N'ayant pas trouvé d'autre solution, j'ai nommé une cellule "ControlDate" dans la feuille BD (en K1)

Private Sub ComboBox18_Change()
'Stop
If flag = 1 Then flag = 0: Exit Sub
a = ComboBox18.Value: Range("ControlDate").Value = Val(Format(TextBox1.Value, "#0"))
'Application.Run "test_présence"
Sheets("BD").Activate
For i = 2 To 100
d1 = Val(Format(Cells(i, 3), "#0")): d2 = Val(Format(Cells(i, 4), "#0"))
If Cells(i, 1) = a And Range("ControlDate").Value >= (d1) And Range("ControlDate").Value <= (d2) Then MsgBox ("En congés"): résultat = 1
Next
End Sub

et

un programme dans le module 1🙁à appeler par tous les contrôles

Sub test_présence()
'Stop
Sheets("BD").Activate
For i = 2 To 100
d1 = Val(Format(Cells(i, 3), "#0")): d2 = Val(Format(Cells(i, 4), "#0"))
If Cells(i, 1) = a And d >= (d1) And d <= (d2) Then MsgBox ("En congés"): i = 100
Next
'Stop
End Sub

C'est sûrement très améliorable

a+
 

Pièces jointes

Re : Probléme de date

Merci CHALET53 pour ta réponse .😎
La macro ne marche et d'ailleurs je ne comprend pas le fonctionnement lié avec les listes ControlDate et ControlNom .
je ne suis pas sur de les avoirs biens créer .
Pourrais tu m'expliquer clairement le fonctionnement et la façon de creer les listes .

Merci d'avance

@+

Bricoltou

Quelques modifs après test sur un deuxième combobox avec rajout d'une deuxième cellule nommée ControlNom[/QUOTE]
 
Re : Probléme de date

re,

Pour nommer une cellule, se positionner dans la cellule, ensuite cliquer dans la zone (en haut à gauche de la feuille au dessus de l'intersection colonne A et ligne 1) où est indiquée la référence de la cellule active (dans mon exemple, c'était K1 et L1) :écrire le nom choisi et valider par Entrée. Ensuite quand on se met sur la cellule en question, dans cette zone, c'est le nom qui apparaît et non plus la référence Colonne/Ligne

Je prolongerai ultérieurement (peut-être dans la soirée), je dois m'absenter.

As-tu essayé de lancer la procédure sur l'exemple que je t'ai envoyé : lorsque la personne est en congé, dès la saisie, le message apparaît.

Déjà, dans le principe, est-ce que ça correspond à ta demande

a+
 
Re : Probléme de date

Bonjour le Fil , chalet 53

Merci pour ton aide , j'ai touvé la solution grace a un ami qui m'a dirigé sur une de ces connaissances , trop compliqué pour mes début
merci encore
code ci dessous 😀

Function teste_si_le_chauffeur_est_malade(nom_du_chauffeur As String, date_du_jour As Date)
Dim cell As Range
'cette loop va vérifier si les chauffeurs ne sont pas malades pour la variable nom_du_chauffeur, et renvoit un message si c'est le cas
With Worksheets("BD")
For Each cell In .Range(.Cells(2, .Range("BD_titre_chauffeur").Column), .Cells(.UsedRange.Rows.Count, .Range("BD_titre_chauffeur").Column))
If cell.Value = nom_du_chauffeur Then
'compare les dates :
If date_du_jour >= Worksheets("BD").Cells(cell.Row, Range("BD_titre_du").Column).Value And _
date_du_jour <= Worksheets("BD").Cells(cell.Row, Range("BD_titre_au").Column).Value Then
MsgBox "Le chauffeur " & cell.Value & " est malade.", vbOKOnly, "Attention"
teste_si_le_chauffeur_est_malade = True
Exit Function
End If
End If
Next
End With
End Function

Private Sub CommandButton3_Click()
'si la focntion renvoit vrai, ca veut dire que le chauffeur est malade et donc on exit la sub et on ne valide pas le reste.
'on peut reocpier ca en changeant les combox pour tester le reste
If teste_si_le_chauffeur_est_malade(Me.ComboBox18, CDate(Me.TextBox1)) Then Exit Sub
@+

Bricoltou
 
- 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

Discussions similaires

Réponses
15
Affichages
2 K
Retour