Tester une valeur numérique sous VBA

Le
Calou
Bonjour les amis,

Un petit problème à vous soumettre :
Sous VBA, j'ai une boucle qui me calcule des durées en fonction
d'heure de départ et de fin (saisie au format hh:mm). Par contre des
fois dans la saisie, je retrouve des choses du genre 12h34.

Comment additionner que les valeurs numériques et indiquer en anomalie
les valeurs non numériques.

Un grand merci de votre aide.

Bonne fin de journée.

Philippe
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
isabelle
Le #22399071
bonjour Philippe,

pour vérifier si la valeur est numérique,

If IsNumeric(Range("A1")) Then

isabelle

Le 2010-07-26 09:24, Calou a écrit :
Bonjour les amis,

Un petit problème à vous soumettre :
Sous VBA, j'ai une boucle qui me calcule des durées en fonction
d'heure de départ et de fin (saisie au format hh:mm). Par contre des
fois dans la saisie, je retrouve des choses du genre 12h34.

Comment additionner que les valeurs numériques et indiquer en anomalie
les valeurs non numériques.

Un grand merci de votre aide.

Bonne fin de journée.

Philippe
isabelle
Le #22399181
et pour modifier cette donnée texte en donnée heure minute,

x = Split(Range("A1"), "h")
h = TimeSerial(x(0), x(1), 0)

isabelle

Le 2010-07-26 10:58, isabelle a écrit :
bonjour Philippe,

pour vérifier si la valeur est numérique,

If IsNumeric(Range("A1")) Then

isabelle

Le 2010-07-26 09:24, Calou a écrit :
Bonjour les amis,

Un petit problème à vous soumettre :
Sous VBA, j'ai une boucle qui me calcule des durées en fonction
d'heure de départ et de fin (saisie au format hh:mm). Par contre des
fois dans la saisie, je retrouve des choses du genre 12h34.

Comment additionner que les valeurs numériques et indiquer en anomalie
les valeurs non numériques.

Un grand merci de votre aide.

Bonne fin de journée.

Philippe
Calou
Le #22400151
On 26 juil, 17:09, isabelle
et pour modifier cette donnée texte en donnée heure minute,

x = Split(Range("A1"), "h")
h = TimeSerial(x(0), x(1), 0)

isabelle

Le 2010-07-26 10:58, isabelle a écrit :

> bonjour Philippe,

> pour vérifier si la valeur est numérique,

> If IsNumeric(Range("A1")) Then

> isabelle

> Le 2010-07-26 09:24, Calou a écrit :
>> Bonjour les amis,

>> Un petit problème à vous soumettre :
>> Sous VBA, j'ai une boucle qui me calcule des durées en fonction
>> d'heure de départ et de fin (saisie au format hh:mm). Par contre des
>> fois dans la saisie, je retrouve des choses du genre 12h34.

>> Comment additionner que les valeurs numériques et indiquer en anomal ie
>> les valeurs non numériques.

>> Un grand merci de votre aide.

>> Bonne fin de journée.

>> Philippe



Bonjour !

Un grand merci pour cette information !
Il y a t il un moyen de controler que la saisie est bien sous la forme
xx:xx ?
Un grand merci par avance !
Philippe
isabelle
Le #22400531
bonjour Philippe,

copie cette macro sur la page code de la feuille,
je l'ai adapté pour une saisie des heures en colonne A il faudra modifier au besoin.

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Set ici = Application.Intersect(Target, Range("A:A")) ' à adapter
If Not ici Is Nothing Then
If Not IsNumeric(Target) Then
MsgBox "vous devez saisir l'heure sous la forme hh:mm"
Target.Clear
Application.EnableEvents = True
Exit Sub
End If
End If
End Sub


isabelle

Le 2010-07-26 14:31, Calou a écrit :
On 26 juil, 17:09, isabelle
et pour modifier cette donnée texte en donnée heure minute,

x = Split(Range("A1"), "h")
h = TimeSerial(x(0), x(1), 0)

isabelle

Le 2010-07-26 10:58, isabelle a écrit :

bonjour Philippe,



pour vérifier si la valeur est numérique,



If IsNumeric(Range("A1")) Then



isabelle



Le 2010-07-26 09:24, Calou a écrit :
Bonjour les amis,





Un petit problème à vous soumettre :
Sous VBA, j'ai une boucle qui me calcule des durées en fonction
d'heure de départ et de fin (saisie au format hh:mm). Par contre des
fois dans la saisie, je retrouve des choses du genre 12h34.





Comment additionner que les valeurs numériques et indiquer en anomalie
les valeurs non numériques.





Un grand merci de votre aide.





Bonne fin de journée.





Philippe







Bonjour !

Un grand merci pour cette information !
Il y a t il un moyen de controler que la saisie est bien sous la forme
xx:xx ?
Un grand merci par avance !
Philippe
Calou
Le #22402591
On 26 juil, 21:34, isabelle
bonjour Philippe,

copie cette macro sur la page code de la feuille,
je l'ai adapté pour une saisie des heures en colonne A il faudra modifi er au besoin.

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Set ici = Application.Intersect(Target, Range("A:A")) ' à adapter
If Not ici Is Nothing Then
  If Not IsNumeric(Target) Then
     MsgBox "vous devez saisir l'heure sous la forme hh:mm"
     Target.Clear
     Application.EnableEvents = True
     Exit Sub
  End If
End If
End Sub

isabelle

Le 2010-07-26 14:31, Calou a écrit :



> On 26 juil, 17:09, isabelle >> et pour modifier cette donnée texte en donnée heure minute,

>> x = Split(Range("A1"), "h")
>> h = TimeSerial(x(0), x(1), 0)

>> isabelle

>> Le 2010-07-26 10:58, isabelle a écrit :

>>> bonjour Philippe,

>>> pour vérifier si la valeur est numérique,

>>> If IsNumeric(Range("A1")) Then

>>> isabelle

>>> Le 2010-07-26 09:24, Calou a écrit :
>>>> Bonjour les amis,

>>>> Un petit problème à vous soumettre :
>>>> Sous VBA, j'ai une boucle qui me calcule des durées en fonction
>>>> d'heure de départ et de fin (saisie au format hh:mm). Par contre d es
>>>> fois dans la saisie, je retrouve des choses du genre 12h34.

>>>> Comment additionner que les valeurs numériques et indiquer en anom alie
>>>> les valeurs non numériques.

>>>> Un grand merci de votre aide.

>>>> Bonne fin de journée.

>>>> Philippe

> Bonjour !

> Un grand merci pour cette information !
> Il y a t il un moyen de controler que la saisie est bien sous la forme
> xx:xx ?
> Un grand merci par avance !
> Philippe- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -



Bonjour Isabelle !
Un grand merci à toi pour cette solution.
Je teste tout ca !
Bonne journée
Philippe
Calou
Le #22518181
On 27 juil, 09:37, Calou
On 26 juil, 21:34, isabelle


> bonjour Philippe,

> copie cette macro sur la page code de la feuille,
> je l'ai adapté pour une saisie des heures en colonne A il faudra modi fier au besoin.

> Private Sub Worksheet_Change(ByVal Target As Range)
> Application.EnableEvents = False
> Set ici = Application.Intersect(Target, Range("A:A")) ' à adapter
> If Not ici Is Nothing Then
>   If Not IsNumeric(Target) Then
>      MsgBox "vous devez saisir l'heure sous la forme hh:mm"
>      Target.Clear
>      Application.EnableEvents = True
>      Exit Sub
>   End If
> End If
> End Sub

> isabelle

> Le 2010-07-26 14:31,Caloua écrit :

> > On 26 juil, 17:09, isabelle > >> et pour modifier cette donnée texte en donnée heure minute,

> >> x = Split(Range("A1"), "h")
> >> h = TimeSerial(x(0), x(1), 0)

> >> isabelle

> >> Le 2010-07-26 10:58, isabelle a écrit :

> >>> bonjour Philippe,

> >>> pour vérifier si la valeur est numérique,

> >>> If IsNumeric(Range("A1")) Then

> >>> isabelle

> >>> Le 2010-07-26 09:24,Caloua écrit :
> >>>> Bonjour les amis,

> >>>> Un petit problème à vous soumettre :
> >>>> Sous VBA, j'ai une boucle qui me calcule des durées en fonction
> >>>> d'heure de départ et de fin (saisie au format hh:mm). Par contre des
> >>>> fois dans la saisie, je retrouve des choses du genre 12h34.

> >>>> Comment additionner que les valeurs numériques et indiquer en an omalie
> >>>> les valeurs non numériques.

> >>>> Un grand merci de votre aide.

> >>>> Bonne fin de journée.

> >>>> Philippe

> > Bonjour !

> > Un grand merci pour cette information !
> > Il y a t il un moyen de controler que la saisie est bien sous la form e
> > xx:xx ?
> > Un grand merci par avance !
> > Philippe- Masquer le texte des messages précédents -

> - Afficher le texte des messages précédents -

Bonjour Isabelle !
Un grand merci à toi pour cette solution.
Je teste tout ca !
Bonne journée
Philippe



Bonjour !
je me tourne vers vous parce que je n'arrive pas a tester la
numericité de l'heure de début et de fin
vioci mon code :


Ligne = 11
Phrase = ""
CompteurHeures = 0
While Cells(Ligne, 1)
HeureDébut = Cells(Ligne, 3)
HeureFin = Cells(Ligne, 4)
If HeureFin = 0 Then HeureFin = 1
If IsNumeric(HeureDébut) Then
Phrase = Phrase & Cells(Ligne, 1) & " : L'Heure de Début n'est pas
numérique ! " & Chr(13)
End If
If IsNumeric(HeureFin) Then
Phrase = Phrase & Cells(Ligne, 1) & " : L'Heure de Fin n'est pas
numérique ! " & Chr(13)
End If
If HeureDébut < HeureFin Then CompteurHeures = CompteurHeures +
HeureFin - HeureDébut
JourSemaine = Cells(Ligne, 12)
If HeureDébut < DixSeptHeuresTrente And HeureDébut > SeptHeures And
JourSemaine <> 1 Then
HeureDeb = Format(HeureDébut, "hh:mm")
...

Un grand merci par avance de votre aide.
Cordialement
michdenis
Le #22518261
Bonjour,

En supposant que tu as 05:45 comme heure dans une cellule.
pour récupérer cette heure en vba, tu peux utiliser ceci :

Dim X As Date
X = TimeValue(Range("B1").Text)

X va indiquer : 05:45:00

--
MichD
--------------------------------------------


"Calou"
On 27 juil, 09:37, Calou
On 26 juil, 21:34, isabelle


> bonjour Philippe,

> copie cette macro sur la page code de la feuille,
> je l'ai adapté pour une saisie des heures en colonne A il faudra modifier au besoin.

> Private Sub Worksheet_Change(ByVal Target As Range)
> Application.EnableEvents = False
> Set ici = Application.Intersect(Target, Range("A:A")) ' à adapter
> If Not ici Is Nothing Then
> If Not IsNumeric(Target) Then
> MsgBox "vous devez saisir l'heure sous la forme hh:mm"
> Target.Clear
> Application.EnableEvents = True
> Exit Sub
> End If
> End If
> End Sub

> isabelle

> Le 2010-07-26 14:31,Caloua écrit :

> > On 26 juil, 17:09, isabelle > >> et pour modifier cette donnée texte en donnée heure minute,

> >> x = Split(Range("A1"), "h")
> >> h = TimeSerial(x(0), x(1), 0)

> >> isabelle

> >> Le 2010-07-26 10:58, isabelle a écrit :

> >>> bonjour Philippe,

> >>> pour vérifier si la valeur est numérique,

> >>> If IsNumeric(Range("A1")) Then

> >>> isabelle

> >>> Le 2010-07-26 09:24,Caloua écrit :
> >>>> Bonjour les amis,

> >>>> Un petit problème à vous soumettre :
> >>>> Sous VBA, j'ai une boucle qui me calcule des durées en fonction
> >>>> d'heure de départ et de fin (saisie au format hh:mm). Par contre des
> >>>> fois dans la saisie, je retrouve des choses du genre 12h34.

> >>>> Comment additionner que les valeurs numériques et indiquer en anomalie
> >>>> les valeurs non numériques.

> >>>> Un grand merci de votre aide.

> >>>> Bonne fin de journée.

> >>>> Philippe

> > Bonjour !

> > Un grand merci pour cette information !
> > Il y a t il un moyen de controler que la saisie est bien sous la forme
> > xx:xx ?
> > Un grand merci par avance !
> > Philippe- Masquer le texte des messages précédents -

> - Afficher le texte des messages précédents -

Bonjour Isabelle !
Un grand merci à toi pour cette solution.
Je teste tout ca !
Bonne journée
Philippe



Bonjour !
je me tourne vers vous parce que je n'arrive pas a tester la
numericité de l'heure de début et de fin
vioci mon code :


Ligne = 11
Phrase = ""
CompteurHeures = 0
While Cells(Ligne, 1)
HeureDébut = Cells(Ligne, 3)
HeureFin = Cells(Ligne, 4)
If HeureFin = 0 Then HeureFin = 1
If IsNumeric(HeureDébut) Then
Phrase = Phrase & Cells(Ligne, 1) & " : L'Heure de Début n'est pas
numérique ! " & Chr(13)
End If
If IsNumeric(HeureFin) Then
Phrase = Phrase & Cells(Ligne, 1) & " : L'Heure de Fin n'est pas
numérique ! " & Chr(13)
End If
If HeureDébut < HeureFin Then CompteurHeures = CompteurHeures +
HeureFin - HeureDébut
JourSemaine = Cells(Ligne, 12)
If HeureDébut < DixSeptHeuresTrente And HeureDébut > SeptHeures And
JourSemaine <> 1 Then
HeureDeb = Format(HeureDébut, "hh:mm")
...

Un grand merci par avance de votre aide.
Cordialement
Calou
Le #22518671
On 29 août, 23:08, "michdenis"
Bonjour,

En supposant que tu as 05:45 comme heure dans une cellule.
pour récupérer cette heure en vba, tu peux utiliser ceci :

Dim X As Date
X = TimeValue(Range("B1").Text)

X va indiquer : 05:45:00

--
MichD
--------------------------------------------

"Calou"
On 27 juil, 09:37, Calou




> On 26 juil, 21:34, isabelle
> > bonjour Philippe,

> > copie cette macro sur la page code de la feuille,
> > je l'ai adapté pour une saisie des heures en colonne A il faudra mo difier au besoin.

> > Private Sub Worksheet_Change(ByVal Target As Range)
> > Application.EnableEvents = False
> > Set ici = Application.Intersect(Target, Range("A:A")) ' à adapter
> > If Not ici Is Nothing Then
> >   If Not IsNumeric(Target) Then
> >      MsgBox "vous devez saisir l'heure sous la forme hh:mm"
> >      Target.Clear
> >      Application.EnableEvents = True
> >      Exit Sub
> >   End If
> > End If
> > End Sub

> > isabelle

> > Le 2010-07-26 14:31,Caloua écrit :

> > > On 26 juil, 17:09, isabelle > > >> et pour modifier cette donnée texte en donnée heure minute,

> > >> x = Split(Range("A1"), "h")
> > >> h = TimeSerial(x(0), x(1), 0)

> > >> isabelle

> > >> Le 2010-07-26 10:58, isabelle a écrit :

> > >>> bonjour Philippe,

> > >>> pour vérifier si la valeur est numérique,

> > >>> If IsNumeric(Range("A1")) Then

> > >>> isabelle

> > >>> Le 2010-07-26 09:24,Caloua écrit :
> > >>>> Bonjour les amis,

> > >>>> Un petit problème à vous soumettre :
> > >>>> Sous VBA, j'ai une boucle qui me calcule des durées en fonctio n
> > >>>> d'heure de départ et de fin (saisie au format hh:mm). Par cont re des
> > >>>> fois dans la saisie, je retrouve des choses du genre 12h34.

> > >>>> Comment additionner que les valeurs numériques et indiquer en anomalie
> > >>>> les valeurs non numériques.

> > >>>> Un grand merci de votre aide.

> > >>>> Bonne fin de journée.

> > >>>> Philippe

> > > Bonjour !

> > > Un grand merci pour cette information !
> > > Il y a t il un moyen de controler que la saisie est bien sous la fo rme
> > > xx:xx ?
> > > Un grand merci par avance !
> > > Philippe- Masquer le texte des messages précédents -

> > - Afficher le texte des messages précédents -

> Bonjour Isabelle !
> Un grand merci à toi pour cette solution.
> Je teste tout ca !
> Bonne journée
> Philippe

Bonjour !
je me tourne vers vous parce que je n'arrive pas a tester la
numericité de l'heure de début et de fin
vioci mon code :

Ligne = 11
Phrase = ""
CompteurHeures = 0
While Cells(Ligne, 1)
HeureDébut = Cells(Ligne, 3)
HeureFin = Cells(Ligne, 4)
If HeureFin = 0 Then HeureFin = 1
If IsNumeric(HeureDébut) Then
    Phrase = Phrase & Cells(Ligne, 1) & " : L'Heure de Début n'es t pas
numérique ! " & Chr(13)
End If
If IsNumeric(HeureFin) Then
    Phrase = Phrase & Cells(Ligne, 1) & " : L'Heure de Fin n'est pa s
numérique ! " & Chr(13)
End If
If HeureDébut < HeureFin Then CompteurHeures = CompteurHeures +
HeureFin - HeureDébut
JourSemaine = Cells(Ligne, 12)
If HeureDébut < DixSeptHeuresTrente And HeureDébut > SeptHeures And
JourSemaine <> 1 Then
    HeureDeb = Format(HeureDébut, "hh:mm")
...

Un grand merci par avance de votre aide.
Cordialement- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -



Bonjour Michdenis,

Merci de ton aide !
Je me suis certainement mal exprimé mais mon projet gère les heures
sous VBA (Avec l'aide du forum bien sur !).
Pour le moment, quand les heures saisies ne sont pas numériques, ma
macro plante.
c'est pour cela que je voulais identifier les heures saisies non
numériques
N'hesites pas a me dire si je ne suis toujours pas clair.
Bonne journée !
Cordialement.
Philippe
michdenis
Le #22523311
Si tu t'expliquais sur ce que tu veux dire par :

"quand les heures saisies ne sont pas numériques"

Qu'est-ce qu'il y a dans la cellule? Son format ?

--
MichD
--------------------------------------------


"Calou"
On 29 août, 23:08, "michdenis"
Bonjour,

En supposant que tu as 05:45 comme heure dans une cellule.
pour récupérer cette heure en vba, tu peux utiliser ceci :

Dim X As Date
X = TimeValue(Range("B1").Text)

X va indiquer : 05:45:00

--
MichD
--------------------------------------------

"Calou"
On 27 juil, 09:37, Calou




> On 26 juil, 21:34, isabelle
> > bonjour Philippe,

> > copie cette macro sur la page code de la feuille,
> > je l'ai adapté pour une saisie des heures en colonne A il faudra modifier au besoin.

> > Private Sub Worksheet_Change(ByVal Target As Range)
> > Application.EnableEvents = False
> > Set ici = Application.Intersect(Target, Range("A:A")) ' à adapter
> > If Not ici Is Nothing Then
> > If Not IsNumeric(Target) Then
> > MsgBox "vous devez saisir l'heure sous la forme hh:mm"
> > Target.Clear
> > Application.EnableEvents = True
> > Exit Sub
> > End If
> > End If
> > End Sub

> > isabelle

> > Le 2010-07-26 14:31,Caloua écrit :

> > > On 26 juil, 17:09, isabelle > > >> et pour modifier cette donnée texte en donnée heure minute,

> > >> x = Split(Range("A1"), "h")
> > >> h = TimeSerial(x(0), x(1), 0)

> > >> isabelle

> > >> Le 2010-07-26 10:58, isabelle a écrit :

> > >>> bonjour Philippe,

> > >>> pour vérifier si la valeur est numérique,

> > >>> If IsNumeric(Range("A1")) Then

> > >>> isabelle

> > >>> Le 2010-07-26 09:24,Caloua écrit :
> > >>>> Bonjour les amis,

> > >>>> Un petit problème à vous soumettre :
> > >>>> Sous VBA, j'ai une boucle qui me calcule des durées en fonction
> > >>>> d'heure de départ et de fin (saisie au format hh:mm). Par contre des
> > >>>> fois dans la saisie, je retrouve des choses du genre 12h34.

> > >>>> Comment additionner que les valeurs numériques et indiquer en anomalie
> > >>>> les valeurs non numériques.

> > >>>> Un grand merci de votre aide.

> > >>>> Bonne fin de journée.

> > >>>> Philippe

> > > Bonjour !

> > > Un grand merci pour cette information !
> > > Il y a t il un moyen de controler que la saisie est bien sous la forme
> > > xx:xx ?
> > > Un grand merci par avance !
> > > Philippe- Masquer le texte des messages précédents -

> > - Afficher le texte des messages précédents -

> Bonjour Isabelle !
> Un grand merci à toi pour cette solution.
> Je teste tout ca !
> Bonne journée
> Philippe

Bonjour !
je me tourne vers vous parce que je n'arrive pas a tester la
numericité de l'heure de début et de fin
vioci mon code :

Ligne = 11
Phrase = ""
CompteurHeures = 0
While Cells(Ligne, 1)
HeureDébut = Cells(Ligne, 3)
HeureFin = Cells(Ligne, 4)
If HeureFin = 0 Then HeureFin = 1
If IsNumeric(HeureDébut) Then
Phrase = Phrase & Cells(Ligne, 1) & " : L'Heure de Début n'est pas
numérique ! " & Chr(13)
End If
If IsNumeric(HeureFin) Then
Phrase = Phrase & Cells(Ligne, 1) & " : L'Heure de Fin n'est pas
numérique ! " & Chr(13)
End If
If HeureDébut < HeureFin Then CompteurHeures = CompteurHeures +
HeureFin - HeureDébut
JourSemaine = Cells(Ligne, 12)
If HeureDébut < DixSeptHeuresTrente And HeureDébut > SeptHeures And
JourSemaine <> 1 Then
HeureDeb = Format(HeureDébut, "hh:mm")
...

Un grand merci par avance de votre aide.
Cordialement- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -



Bonjour Michdenis,

Merci de ton aide !
Je me suis certainement mal exprimé mais mon projet gère les heures
sous VBA (Avec l'aide du forum bien sur !).
Pour le moment, quand les heures saisies ne sont pas numériques, ma
macro plante.
c'est pour cela que je voulais identifier les heures saisies non
numériques
N'hesites pas a me dire si je ne suis toujours pas clair.
Bonne journée !
Cordialement.
Philippe
Calou
Le #22523511
On 30 août, 14:10, "michdenis"
Si tu t'expliquais sur ce que tu veux dire par :

"quand les heures saisies ne sont pas numériques"

Qu'est-ce qu'il y a dans la cellule? Son format ?

--
MichD
--------------------------------------------

"Calou"
On 29 août, 23:08, "michdenis"




> Bonjour,

> En supposant que tu as 05:45 comme heure dans une cellule.
> pour récupérer cette heure en vba, tu peux utiliser ceci :

> Dim X As Date
> X = TimeValue(Range("B1").Text)

> X va indiquer : 05:45:00

> --
> MichD
> --------------------------------------------

> "Calou" >
> On 27 juil, 09:37, Calou
> > On 26 juil, 21:34, isabelle
> > > bonjour Philippe,

> > > copie cette macro sur la page code de la feuille,
> > > je l'ai adapté pour une saisie des heures en colonne A il faudra modifier au besoin.

> > > Private Sub Worksheet_Change(ByVal Target As Range)
> > > Application.EnableEvents = False
> > > Set ici = Application.Intersect(Target, Range("A:A")) ' à adapt er
> > > If Not ici Is Nothing Then
> > >   If Not IsNumeric(Target) Then
> > >      MsgBox "vous devez saisir l'heure sous la forme hh:mm"
> > >      Target.Clear
> > >      Application.EnableEvents = True
> > >      Exit Sub
> > >   End If
> > > End If
> > > End Sub

> > > isabelle

> > > Le 2010-07-26 14:31,Caloua écrit :

> > > > On 26 juil, 17:09, isabelle > > > >> et pour modifier cette donnée texte en donnée heure minute,

> > > >> x = Split(Range("A1"), "h")
> > > >> h = TimeSerial(x(0), x(1), 0)

> > > >> isabelle

> > > >> Le 2010-07-26 10:58, isabelle a écrit :

> > > >>> bonjour Philippe,

> > > >>> pour vérifier si la valeur est numérique,

> > > >>> If IsNumeric(Range("A1")) Then

> > > >>> isabelle

> > > >>> Le 2010-07-26 09:24,Caloua écrit :
> > > >>>> Bonjour les amis,

> > > >>>> Un petit problème à vous soumettre :
> > > >>>> Sous VBA, j'ai une boucle qui me calcule des durées en fonct ion
> > > >>>> d'heure de départ et de fin (saisie au format hh:mm). Par co ntre des
> > > >>>> fois dans la saisie, je retrouve des choses du genre 12h34.

> > > >>>> Comment additionner que les valeurs numériques et indiquer e n anomalie
> > > >>>> les valeurs non numériques.

> > > >>>> Un grand merci de votre aide.

> > > >>>> Bonne fin de journée.

> > > >>>> Philippe

> > > > Bonjour !

> > > > Un grand merci pour cette information !
> > > > Il y a t il un moyen de controler que la saisie est bien sous la forme
> > > > xx:xx ?
> > > > Un grand merci par avance !
> > > > Philippe- Masquer le texte des messages précédents -

> > > - Afficher le texte des messages précédents -

> > Bonjour Isabelle !
> > Un grand merci à toi pour cette solution.
> > Je teste tout ca !
> > Bonne journée
> > Philippe

> Bonjour !
> je me tourne vers vous parce que je n'arrive pas a tester la
> numericité de l'heure de début et de fin
> vioci mon code :

> Ligne = 11
> Phrase = ""
> CompteurHeures = 0
> While Cells(Ligne, 1)
> HeureDébut = Cells(Ligne, 3)
> HeureFin = Cells(Ligne, 4)
> If HeureFin = 0 Then HeureFin = 1
> If IsNumeric(HeureDébut) Then
>     Phrase = Phrase & Cells(Ligne, 1) & " : L'Heure de Début n' est pas
> numérique ! " & Chr(13)
> End If
> If IsNumeric(HeureFin) Then
>     Phrase = Phrase & Cells(Ligne, 1) & " : L'Heure de Fin n'est pas
> numérique ! " & Chr(13)
> End If
> If HeureDébut < HeureFin Then CompteurHeures = CompteurHeures +
> HeureFin - HeureDébut
> JourSemaine = Cells(Ligne, 12)
> If HeureDébut < DixSeptHeuresTrente And HeureDébut > SeptHeures And
> JourSemaine <> 1 Then
>     HeureDeb = Format(HeureDébut, "hh:mm")
> ...

> Un grand merci par avance de votre aide.
> Cordialement- Masquer le texte des messages précédents -

> - Afficher le texte des messages précédents -

Bonjour Michdenis,

Merci de ton aide !
Je me suis certainement mal exprimé mais mon projet gère les heures
sous VBA (Avec l'aide du forum bien sur !).
Pour le moment, quand les heures saisies ne sont pas numériques, ma
macro plante.
c'est pour cela que je voulais identifier les heures saisies non
numériques
N'hesites pas a me dire si je ne suis toujours pas clair.
Bonne journée !
Cordialement.
Philippe- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -



Bonjour Michdenis,
Merci de ta patience ! Decidemment, j'ai des soucis de comprehension :
J'ai un tableau où l'on saisie des heures. Ensuite une macro prend en
charge cette saisie et effectue certains traitements. Avant ce
traitement j'ai une moulinette qui gere les anomalies. Du genre tester
si les heures saisies etaient bien numériques ! si tel n'est pas le
cas ! je voudrais l'indiquer dans une msgbox !

d'ou ce code avec les lignes precedees une étoile :
Ligne = 11
Phrase = ""
CompteurHeures = 0
While Cells(Ligne, 1)
HeureDébut = Cells(Ligne, 3)
HeureFin = Cells(Ligne, 4)
If HeureFin = 0 Then HeureFin = 1
*If IsNumeric(HeureDébut) Then
* Phrase = Phrase & Cells(Ligne, 1) & " : L'Heure de Début n'est
pas numérique ! " & Chr(13)
*End If
*If IsNumeric(HeureFin) Then
* Phrase = Phrase & Cells(Ligne, 1) & " : L'Heure de Fin n'est pas
numérique ! " & Chr(13)
*End If
If HeureDébut < HeureFin Then CompteurHeures = CompteurHeures +
HeureFin - HeureDébut
JourSemaine = Cells(Ligne, 12)
If HeureDébut < DixSeptHeuresTrente And HeureDébut > SeptHeures And
JourSemaine <> 1 Then
HeureDeb = Format(HeureDébut, "hh:mm")
HeureFi = Format(HeureFin, "hh:mm")
Phrase = Phrase & Cells(Ligne, 1) & " de " & HeureDeb & " à " &
HeureFi & " : Heure de Début antérieure à 17h30 " & Chr(13)
End If
If HeureFin < HeureDébut Then
HeureDeb = Format(HeureDébut, "hh:mm")
HeureFi = Format(HeureFin, "hh:mm")
Phrase = Phrase & Cells(Ligne, 1) & " de " & HeureDeb & " à " &
HeureFi & " : Heure de Fin antérieure à l'Heure de Début " & Chr(13)
End If
Ligne = Ligne + 1
Wend
If CompteurHeures > 25 / 24 Then
DiffHeures = Format(CompteurHeures - (25 / 24), "hh:mm")
Phrase = Phrase & Chr(13) & "Dépassement du plafond de 25 heures
pour " & DiffHeures & " Heures ! "
End If
If Phrase <> "" Then MsgBox Phrase, vbInformation, "Information"
End Sub

En esperant avoir été plus clair dans mes explicatiions.

Je te souhaite une bonne journée !

Philippe
Publicité
Poster une réponse
Anonyme