Aide création userform

Lasmal

XLDnaute Nouveau
Bonjour à tous,

Je souhaiterais de l'aide pour la finalisation d'un userform à compléter par des utilisateurs.

J'ai bien avancé, mais je rencontre quelques difficultés :
* J'ai du mal à mettre en place tous les contrôles (saisie numérique, champs vides...)
* J'obtiens des messages d'erreurs concernant les end if sans if

- Tous les champs (TEXBOX) doivent-être obligatoirement remplis
- Le résultat du temps journalier doit s'afficher automatiquement en fonction de la saisie

Quelqu'un pourrait-il m'aider SVP ?
Merci
:)
 

Pièces jointes

  • classeur_Préparation.xlsm
    27.8 KB · Affichages: 75
Dernière modification par un modérateur:

grisan29

XLDnaute Accro
Re : Aide création userform

bonsoir lasmal et le forum

il faudrait également s'occuper d'avoir les heures en affichage correct sur l'usf a l'ouverture a moins que c'est ce que tu veux

mais a partir de demain je serai moins disponible, juste le soir peut être
 

Pièces jointes

  • usflasmal.jpg
    usflasmal.jpg
    100.7 KB · Affichages: 31

grisan29

XLDnaute Accro
Re : Aide création userform

bonjour Si...., Lasmal

si.... c'est ce que j'ai essayer et abandonné les spinbuttons excellent:cool: je n'ai pa réussi ce que tu as fait
je te joint mon essai
moi je verrai la création d'un tableau pour répertorier les horaires, car comme l'a dit lasmal il n'est pas le seul a utiliser le classeur afin de choisir dans une combobox la personne et son horaire

car tel que c'est maintenant, tout le monde met son horaire au même endroit pas logique du tout
 

Pièces jointes

  • testHeureUsfSpb.xlsm
    19.5 KB · Affichages: 31
Dernière édition:

Lasmal

XLDnaute Nouveau
Re : Aide création userform

Bonjour Grisan 29,

Il ne faut surtout pas aller dans ce sens, Pleaz ! ce serait du boulot pour rien

Ce fichier que je crée s'inscrit dans une utilisation plus globale - et pour des raisons de confidentialité je ne peux vous montrer le reste du classeur. Rassure-toi, TOUT EST OK à ce niveau !

Restons bien sur ma demande initiale- en post 27

:) :)
 

Lasmal

XLDnaute Nouveau
Re : Aide création userform

Bonsoir Si..., Grisan 29 et les autres '

"Si..." j'ai testé ton fichier et j'en suis très satisfait :) :)
Cela résout le problème du format de saisie, c'est aussi plus esthétique et original :) :)
Je garde donc, ta proposition
Merci beaucoup !

Il me reste 1 souci à régler pour finaliser tout cela :

- Je souhaiterais griser le bouton "Enregistrer" tant que le prénom et tous les horaires n'ont pas été indiqués par l'utilisateur.

J'ai placé le code ci-dessous (tu l'avais proposé en aide), mais j'obtiens le message d'erreur : "Nom ambigu détecté : TN_Change"

Code:
Option Explicit
Dim x As Date, kH1 As Byte, kM1 As Long

Private Sub HD_Change()

End Sub

Private Sub UserForm_Initialize()
  Me.Height = 273
  Lst.List = Array("Arrivée", "Départ -Déjeuner", "Retour -Déjeuner", "Sortie")
End Sub
Private Sub H1_Change()
  x = CDate(HD) + IIf(kH1 < H1, CDate(1 & ":00"), -CDate(1 & ":00"))
  HD = CStr(Format(x, "hh:mm"))
  kH1 = H1
End Sub
Private Sub M1_Change()
  x = CDate(HD) + IIf(kM1 < M1, CDate("00:" & 1), -CDate("00:" & 1))
  HD = CStr(Format(x, "hh:mm"))
  kM1 = M1
End Sub
Private Sub TN_Change()
  TN = UCase(TN)
  Me.Height = 259.5: Lst.ListIndex = 0
End Sub
Private Sub OK_Click()
  Dim L As Byte
  L = Lst.ListIndex
  If L < 0 Then Exit Sub
  Me("C" & L) = HD
  If L < 3 Then Lst.ListIndex = L + 1
  If L = 3 And C3 <> "" Then TT = CStr(Format(CDate(C3) - CDate(C2) + CDate(C1) - CDate(C0), "hh:mm"))
End Sub

Sub commandButton1_Click()
  Dim N As Byte, A()
  [D10] = TN
  For N = 18 To 21
    Cells(N, 4) = CDate(Me("C" & N - 18))
    Cells(N, 5) = Hour(Cells(N, 4)) + Minute(Cells(N, 4)) / 60
  Next
  [D22] = CDate(TT)
  [E22] = Hour([D22]) + Minute([D22]) / 60
  Unload Me
End Sub

Dim A(5) As Byte '4 cas
Private Sub UserForm_Activate()
  Vu
End Sub
Private Sub TN_Change()
  A(1) = IIf(TN = "", 0, 1): Vu
End Sub
Private Sub C0_Change()
  A(2) = IIf(C0 = "", 0, 1): Vu
End Sub
Private Sub C1_Change()
  A(3) = IIf(C1 = "", 0, 1): Vu
End Sub
Private Sub C2_Change()
  A(4) = IIf(C2 = "", 0, 1): Vu
End Sub
Private Sub C3_Change()
  A(5) = IIf(C3 = "", 0, 1): Vu
End Sub

Private Sub commandButton1_Click()
  MsgBox "Enregistrement effectué"
End Sub
Sub Vu()
  Dim N As Byte, T As Byte
  For N = 1 To 4: T = T + A(N): Next
  CommandButton1.Visible = T = 4
End Sub

Pourrais-tu m'aider, toi ou une autre personne Pleaz?

Merci
 
Dernière modification par un modérateur:

grisan29

XLDnaute Accro
Re : Aide création userform

bonjour lasmal, si... et le forum

dans ta question tu as donné la réponse
J'ai placé le code ci-dessous (tu l'avais proposé en aide), mais j'obtiens le message d'erreur : "Nom ambigu détecté : TN_Change"
mais il y a aussi commandButton1

car ils ont déja chacun une action change par ils sont double
bref cette réponse aurais du être évitée avec un peu de jugeote du au bug qui affichait clairement où est le bug et pourquoi il est déclenché

et après règlé les problèmes de doublons reste le problème de variantes car ton bouton ne réapparait pas quand les horaires sont inscrit
A(5) est déclaré mais les autres tu en fait quoi A, A1, A2 ETC....
et tout le code que tu as mis ne sers pas car c'est dans l'activation qu'il faut mettre l'instruction pour rendre invisible le bouton
Code:
Private Sub UserForm_Activate()
 Me.CommandButton1.Visible = False

End Sub
et dans le change du textbox TT il faut mettre
Code:
Private Sub TT_Change()
  Me.CommandButton1.Visible = True
End Sub
 
Dernière édition:

Lasmal

XLDnaute Nouveau
Re : Aide création userform

Bonjour Grisan 29,

Merci de ton aide :)

Concernant la 1ère partie de ta réponse, je ne vois pas ce que je dois faire concrètement car, je ne suis pas un pro du vba :(

Pourrais-tu me corriger le code, si tu as la solution Pleaz?
Merci :)
 

grisan29

XLDnaute Accro
Re : Aide création userform

bonjour lasmal

tout ce que j'ai fait est de viré ce que tu as mis pour mettre les 2 bloc de code ci dessus

concernant les noms ambiguës que ton code donne il s'agit de
Code:
Private Sub TN_Change()'''''''''''''''''''''''''''doublon1
  TN = UCase(TN)
  Me.Height = 259.5: Lst.ListIndex = 0
End Sub
Private Sub OK_Click()
  Dim L As Byte
  L = Lst.ListIndex
  If L < 0 Then Exit Sub
  Me("C" & L) = HD
  If L < 3 Then Lst.ListIndex = L + 1
  If L = 3 And C3 <> "" Then TT = CStr(Format(CDate(C3) - CDate(C2) + CDate(C1) - CDate(C0), "hh:mm"))
End Sub

Sub commandButton1_Click()''''''''"'''''''''doublon2
  Dim N As Byte, A()
  [D10] = TN
  For N = 18 To 21
    Cells(N, 4) = CDate(Me("C" & N - 18))
    Cells(N, 5) = Hour(Cells(N, 4)) + Minute(Cells(N, 4)) / 60
  Next
  [D22] = CDate(TT)
  [E22] = Hour([D22]) + Minute([D22]) / 60
  Unload Me
End Sub

Dim A(5) As Byte '4 cas''''''''''''''''''''''''''''''''''''''''''''''''''''''''A5 declaré
Private Sub UserForm_Activate()
  Vu
End Sub
Private Sub TN_Change()''''''''''''''''''''''''''''''''''''''''''''''''doublon 1
  A(1) = IIf(TN = "", 0, 1): Vu'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''vu et A1 non déclaré
End Sub

voila
 

grisan29

XLDnaute Accro
Re : Aide création userform

bonjour lasmal
enlève tout le code ci dessous et remplace le par les 2 codes que j'ai mis
Code:
Dim A(5) As Byte '4 cas
Private Sub UserForm_Activate()
  Vu
End Sub
Private Sub TN_Change()
  A(1) = IIf(TN = "", 0, 1): Vu
End Sub
Private Sub C0_Change()
  A(2) = IIf(C0 = "", 0, 1): Vu
End Sub
Private Sub C1_Change()
  A(3) = IIf(C1 = "", 0, 1): Vu
End Sub
Private Sub C2_Change()
  A(4) = IIf(C2 = "", 0, 1): Vu
End Sub
Private Sub C3_Change()
  A(5) = IIf(C3 = "", 0, 1): Vu
End Sub

Private Sub commandButton1_Click()
  MsgBox "Enregistrement effectué"
End Sub
Sub Vu()
  Dim N As Byte, T As Byte
  For N = 1 To 4: T = T + A(N): Next
  CommandButton1.Visible = T = 4
End Sub
code devenu inutile cause mal conçu a remplacer par ce que j'ai dit
Private Sub UserForm_Activate()
Me.CommandButton1.Visible = False

End Sub
et dans le change du textbox TT il faut mettre
Code :
Private Sub TT_Change()
Me.CommandButton1.Visible = True
End Sub

je ne me répèterai plus
 

Lasmal

XLDnaute Nouveau
Re : Aide création userform

Grisan 29,

Je te remercie beaucoup pour ton aide.

Au contraire de toi, je ne vois aucun manque de politesse dans tous mes posts que je t'invite à relire bien attentivement.
Si tu veux qu'on te dise bonjour à chaque post envoyés à quelques minutes d'intervalle, je n'en vois vraiment pas l'intérêt.

Il est normal que je dise qu'un code proposé ne fonctionne pas.

Je sollicite de l'aide sur ce forum, étant novice en vba et l'idée est bien d'aller jusqu'au bout de mon projet.

Inutile de s'énerver, je n'oblige personne et suis très reconnaissant de l'aide qu'on m'apporte. - je ne perds pas de temps sur des points de détails inutiles.
A côté de cela je fais de nombreuses recherches et tests pour réussir à finaliser mon userform.
Ce qui me permet d'apprendre rapidement.
Merci encore!
 

Discussions similaires

Statistiques des forums

Discussions
312 232
Messages
2 086 462
Membres
103 222
dernier inscrit
2BS