Avis, critiques et suggestions

Y compris Power BI, Power Query et toute autre question en lien avec Excel
a
apt
Membre dévoué
Membre dévoué
Messages : 564
Inscrit le : 9 mars 2006
Version d'Excel : 2007 FR

Message par apt » 31 décembre 2014, 18:39

Bonjour à tous,

J'ai réalisé une petite application utilisant une Userform et j'aimerais bien avoir vos avis, critiques et suggestions.

Merci d’avance.
USF_Coupures_v000.xlsm
(36.49 Kio) Téléchargé 41 fois
Avatar du membre
galopin01
Passionné d'Excel
Passionné d'Excel
Messages : 5'793
Appréciations reçues : 88
Inscrit le : 18 septembre 2008
Version d'Excel : 2010 / 2016
Téléchargements : Mes applications

Message par galopin01 » 31 décembre 2014, 20:21

Bonjour,
Pour contraindre une saisie numérique on utilise habituellement le code suivant :
Private Sub TextBox3_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    Select Case KeyAscii
    Case Is < 48, Is > 57
        KeyAscii = 0
    End Select
End Sub
Prend l'habitude de définir tes plages nommées avec DECALER
exemple pour Site :
=DECALER(Données!$A$1;1;;NBVAL(Données!$A:$A)-1)
A+
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
a
apt
Membre dévoué
Membre dévoué
Messages : 564
Inscrit le : 9 mars 2006
Version d'Excel : 2007 FR

Message par apt » 1 janvier 2015, 00:00

Bonsoir galopin et merci pour tes astuces.
a
apt
Membre dévoué
Membre dévoué
Messages : 564
Inscrit le : 9 mars 2006
Version d'Excel : 2007 FR

Message par apt » 1 janvier 2015, 10:34

Bonjour,

Autres suggestions possibles ?
a
apt
Membre dévoué
Membre dévoué
Messages : 564
Inscrit le : 9 mars 2006
Version d'Excel : 2007 FR

Message par apt » 16 janvier 2015, 20:53

Bonjour à tous,

1) Après d'autres tests, j'ai remarqué que la saisie de 3 chiffres dans le TextBox des heures, déclenche une erreur puisque le test se fait sur 4 chiffres et non pas trois.

Exemple : Si je saisie "932" pour l'heure "09:32" une erreur est déclenchée.

Alors comment rendre cette saisie valable tout en ajoutant un zéro avant le premier chiffre pour compléter et avoir la forme hh:mm ?

2) Le deuxième problème, c'est dans le champ de recherche TextBox4.

Si je saisie par exemple "C.S" dans le TextBox4, dans la ListBox2, je n'aurais que "C.S (Rls Dhm)" c'est tout, pourtant dans la plage nommée "Env", j'ai bien deux cas similaires contenant chacune le mot "C.S" qui sont : "C.S" et "C.S (Rls Dhm)".

Comment peut-on corriger ce problème ?

Merci.
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 11'187
Appréciations reçues : 564
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR

Message par Steelson » 17 janvier 2015, 08:25

Une idée pour le 1/
    Else
        TextBox2 = Right("0000" & TextBox2, 4)
        TextBox2 = Left(TextBox2.Value, 2) & ":" & Right(TextBox2.Value, 2)
    End If

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
a
apt
Membre dévoué
Membre dévoué
Messages : 564
Inscrit le : 9 mars 2006
Version d'Excel : 2007 FR

Message par apt » 17 janvier 2015, 09:30

Bonjour Steelson

Le code considère qu'une telle saisie "###" est erroné !

Je crois qu'il faut voir du coté de la fonction Check_hourFormat qui déclenche l'erreur :idea:
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 11'187
Appréciations reçues : 564
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR

Message par Steelson » 17 janvier 2015, 09:38

Autre solution : séparer en 2 zones : heures et minutes ?

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
a
apt
Membre dévoué
Membre dévoué
Messages : 564
Inscrit le : 9 mars 2006
Version d'Excel : 2007 FR

Message par apt » 17 janvier 2015, 17:36

Bonsoir Steelson,

Merci pour l'idée, mais je la reserve plut tard en cas ou ...

Pour le moment, j'ai essayé de modifier des lignes dans la fonction Check_Hourformat comme ceci :
    If Len(m) < 3 Then Exit Function    'si la valeur saisie par l'utilisateur est inférieur à
'3 caractères, alors Check_Hourformat non conforme
    If m Like "##:##" Then m = Left(m, 2) & Right(m, 2)
    If m Like "###" Then m = "0###"
    If m Like "####" Or m Like "0###" Then
        hr = Fix(m / 100)       ' permet de récupérer la partie concernant les heures
        min = m - (hr * 100)    ' permet de récupérer la partie concernant les minutes
        If hr > 23 Or min > 59 Then Exit Function   'Vérifications des heures et minutes entrées
        Check_hourFormat = True
    End If
Mais l'erreur persiste toujours !
Avatar du membre
galopin01
Passionné d'Excel
Passionné d'Excel
Messages : 5'793
Appréciations reçues : 88
Inscrit le : 18 septembre 2008
Version d'Excel : 2010 / 2016
Téléchargements : Mes applications

Message par galopin01 » 17 janvier 2015, 18:22

Bonsoir,
La solution de Steelson est pourtant la plus usité soit sous la forme de combo soit sous une forme proche du fichier joint...
Tout autre solution est compliquée à mettre en œuvre et parfois sujette à plantage.

Inutile de réinventer la roue pour les problèmes usuels...
A+
SaisieHoraire.xlsm
(22.86 Kio) Téléchargé 22 fois
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message