Valeur de la texbox dans la Bd

Bonjours à tous,

J'ouvre un nouveau sujet sur mon projet de planning.

Je vous expose ce que je veux réaliser.

Le principe avec ma combobox txterecherche, je sélectionne un nom. Je valide sur le bouton BtnRecherche il va me rechercher les données dans la feuille JOURNALIER. Et me remplir les textbox de 1 à 10.

Maintenant j'essaye de rentrer une valeur dans la texbox retard et de valider la saisie avec le bouton Validation_retard.

La valeur devra être mise dans la BD JOURNALIER et jour sur la ligne choisit au-par avant avec la combox txterecherche et dans la bonne colonne.( pour retard la colonne G).

J'ai débuté un début de code mais il ne marche pas, je continu mes recherches sur le net et je sollicite votre aide.

Je joint mon fichier.

Merci

11test.zip (66.33 Ko)

Bonjour

A tester

Merci Banzai64 pour ta réponse, une étape à été franchie cela me met bien la valeur dans la cellule concerné mais le code ne parvient pas à faire mon calcul d'heure "Call calcul_ retard".

Mon code pour faire le calcul part de la colonne B voir la macro calcul_retard. Si je mets Selection.Offset(0, -5).Select sa me met une erreur. de plus la valeur n'est pas copier dans la Bd jour.

Merci

Bonjour

Je ne connais pas ton code

J'ai modifié la macro que j'avais modifiée pour que ta macro "calcul_retard" fonctionne et plus particulièrement cette instruction

Selection.Offset(0, 0).Select

Qui correspond à sélectionner la cellule de la colonne B

Merci Banzai64,

Sa marche nickel une deuxième chose j'ai rajouter une condition dans la textbox retard. La condition doit déclencher un userform2 pendant 1 seconde sans refermer l'userform1. J'ai commencer un début de code il s'affiche bien mais ne disparait pas au bout d'une seconde.

Je joint mon fichier

Une solution merci

6test.zip (63.96 Ko)

Nouveau jour nouveau Bonjour

A tester

Merci encore une fois Banzai64 mais là j'ai besoin d'explication pour comprendre le code.

Private Sub retard_Change()

If EnCours = True Then Exit Sub 'Peut-tu m'expliquer le fonctionnement de la variable EnCours

EnCours = True

If Trim(Me.TextBox9) = "Acc" Then

retard.Text = ""

UserForm2.Show 0 ' Peut-tu m'expliquer le 0 après Show

Application.Wait Now + TimeValue("00:00:03") '3secondes

Unload UserForm2

End If

EnCours = False

End Sub

De plus si je rajoute une deuxième condition If Trim(Me.TextBox8) = "Maladie" Then

avec un Userform3. Il faut que je tape les 6 lignes à partir de if trim jusqu'à End if ou on peut simplifier.

Merci

9test.zip (61.28 Ko)

Bonjour

Anneraud a écrit :

If EnCours = True Then Exit Sub 'Peut-tu m'expliquer le fonctionnement de la variable EnCours

Pour bien comprendre l'utilité , enlèves (commentes) la ligne et observes ce qui se passe

Anneraud a écrit :

UserForm2.Show 0 ' Peut-tu m'expliquer le 0 après Show

Ne bloque pas le code, les instructions situées à la suite sont exécutées (Tempo + fermeture)

Sans le 0, les instructions situées à la suite ne seraient exécutées qu'après la fermeture de l'userform

Anneraud a écrit :

De plus si je rajoute une deuxième condition

Si tu as d'autres conditions similaires, tu seras obligé de doubler ton code

Exemple

Private Sub retard_Change()
  If EnCours = True Then Exit Sub
  EnCours = True
  If Trim(Me.TextBox9) = "Acc" Then
    retard.Text = ""
    UserForm2.Show 0
    Application.Wait Now + TimeValue("00:00:01") '1secondes
    Unload UserForm2
  ElseIf Trim(Me.TextBox8) = "Maladie" Then
    retard.Text = ""
    UserForm3.Show 0
    Application.Wait Now + TimeValue("00:00:01") '1secondes
    Unload UserForm3
  End If
  EnCours = False
End Sub

Merci de ton aide Banzai64, J'ai compris tes codes.

Et en relisant les différents post j'ai vu que j'avais oublié de dire bonjours pour la nouvelle journée.

Excuser-moi pour cette maladresse et BONJOUR à tout le Forum.

Pour le fun peut-on dans les userform2 et 3 mettre le nom et le prénom à la place de Personne.

J'aime la perfection merci pour une solution

Bonjour

A tester

Private Sub retard_Change()
  If EnCours = True Then Exit Sub
  EnCours = True
  If Trim(Me.TextBox9) = "Acc" Then
    retard.Text = ""
    With UserForm2
      .Label1.Caption = Me.txtrecherche & " en accident de travail"
      .Show 0
    End With
      Application.Wait Now + TimeValue("00:00:01") '1secondes
    Unload UserForm2
  ElseIf Trim(Me.TextBox8) = "Maladie" Then
    retard.Text = ""
    With UserForm3
      .Label1.Caption = Me.txtrecherche & " en maladie"
      .Show 0
    End With
    Application.Wait Now + TimeValue("00:00:01") '1secondes
    Unload UserForm3
  End If
  EnCours = False
End Sub

j'ai copier le code dans mon fichier. J'ai tester mais il y a une erreur.

Je te joint mon fichier de nouveau.

Merci encore une fois de ton aide Banzaï64.

6test.zip (68.21 Ko)

Bonjour

Le label dans l'userform3 s'appelle Label

A tester

Toujours pareil.

Je joint le fichier avec le nouveau code.

Excuse moi mauvaise manip le fichier que tu m'a donné marche.

Mais je m’aperçoit dés que je change de nom dans txtrecherche et que je ne valide pas par le bouton BtnRecherche.

Il me garde les enseignes valeurs des textbox de 1 à 10. Donc le programme me déclanche le mauvais userform mais il me met bien le prénom souhaité. Peut-être il faut mettre une condition dans textbox retard dés qu'il y un changement de nom et obliger de valider d'abord par le bouton BtnRecherche.

Merci d'une solution

9test.zip (64.35 Ko)

Bonjour

Et une version sans le bouton OK

Quand je te fourni un fichier utilises les corrections faites

Banzai64 a écrit :

Le label dans l'userform3 s'appelle Label2

Merci mille fois pour ton aide Banzaï64.

Tout marche je vais pouvoir continuer sur mon travail et faire la même chose pour mes autres textbox.

Le sujet n'est pas clos car j'ai d'autre question avenir sur le développement de mon planning pour cela j'ouvrirai une nouvelle discussion.

Merci et bonne fin de journée

Bonjour à tous,

Encore un petit problème je veux rajouter une condition dans ma texbox retard .

Si il y a une heure d’inscrite dans la texbox9 il faut que la valeur de la texbox retard soit inférieur à la textbox9. Sinon un userform apparait. Le problème pour que le code marche je de doit inscrire 09:20 est-il possible de ne pas taper le 0 des dizaine d'heure car si j’écris 9:20 ceci déclenche mon userform d'avertissement.

une idée Merci

10test1.xlsm (107.88 Ko)

Bonjour

Cela devient compliqué

Car TextBox9 peut contenir du texte ou une heure, donc il faut savoir si la TextBox9 contient une heure valide, si Retard contient une heure valide et ensuite tester la différence entre ces heures

Le plus simple (enfin je pense) serait d'interdire la saisie dans Retard si la TextBox9 est renseignée

Qu'en dis-tu ?

Merci pour ta réponse rapide, le problème une personne peut-être en accident de travail l'après-midi et en retard le matin.

J'ai commencer un bout de code mais ce qui me dérange je dois saisir le 0 des dizaine d'heure exemple 09:20 et non pas 9:20 sinon sa déclenche mon userform d'avertissement.

une idée

Bonjour

Désolé mais pour le moment je n'ai pas de solution

Au cours de la saie on ne peut savoir si le 1er chiffre tapé fait partie de la dizaine ou de l'unité (sauf si c'est 0)

Quelqu'un aura sans doute une idée

Bonjour,

Je me suis aperçu d'un deuxième problème quand je mets une donné dans la texbox retard et validé par le bouton sa me met bien la valeur dans la bd mais sa me recharge pas les nouvelles valeurs dans les texbox de 1 à 10.

J'ai essayé de relancer txtrecherche par show mais sa marche partiellement car il me recharge une deuxième fois la liste des nom.

Une idée pour vider la liste déroulante avant de relancer txtrecherche.

Merci

Rechercher des sujets similaires à "valeur texbox"