Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Pb de date sous VBA

18 réponses
Avatar
Philou36
Bonjour les amis,

Je n'arive pas à travailler avec des dates sous VBA. Je m'explique : j'ai
une combo avec des périodes sous la forme mois en clair et année (ex:
janvier 2010) et avec votre aide j'ai deux textbox avec dans le premier le
premier jour du mois (ex: pour janvier => 1) et dans l'autre le dernier jour
du mois (ex : 31 pour le mois de janvier 2010).
Comment faire pour indiquer dans un label le nombre de jours en trentieme
entre premier et le dernier jour de la période. Comme c'est des textbox,
possibilité de modifier ces deux valeurs.

Un grand merci par avance pour votre aide.

Philippe

10 réponses

1 2
Avatar
isabelle
bonjour Philippe,

mm = Array("janvier", "février", "mars", "avril", "mai", "juin",
"juillet", "août", "septembre", "octobre", "novembre", "décembre")
fin = Me.TextBox2
année = CDbl(Right(Me.ComboBox1, 4))
x = Day(DateSerial(année, Application.Match(fin, mm, 0) + 1, 1) - 1)

isabelle

Philou36 a écrit :
Bonjour les amis,

Je n'arive pas à travailler avec des dates sous VBA. Je m'explique : j'ai
une combo avec des périodes sous la forme mois en clair et année (ex:
janvier 2010) et avec votre aide j'ai deux textbox avec dans le premier le
premier jour du mois (ex: pour janvier => 1) et dans l'autre le dernier jour
du mois (ex : 31 pour le mois de janvier 2010).
Comment faire pour indiquer dans un label le nombre de jours en trentieme
entre premier et le dernier jour de la période. Comme c'est des textbox,
possibilité de modifier ces deux valeurs.

Un grand merci par avance pour votre aide.

Philippe





Avatar
Philou36
Bonjour Isabelle,
Merci pour ta réponse mais j'ai juste oublié de te dire que je suis nul en
VBA et quand j'ai collé ton code dans une subroutine la premiere ligne
(mm=array...) s'est mise en rouge.
Que doisje faire.
Merci pour ta patience
Philippe
"isabelle" a écrit dans le message de news:

bonjour Philippe,

mm = Array("janvier", "février", "mars", "avril", "mai", "juin",
"juillet", "août", "septembre", "octobre", "novembre", "décembre")
fin = Me.TextBox2
année = CDbl(Right(Me.ComboBox1, 4))
x = Day(DateSerial(année, Application.Match(fin, mm, 0) + 1, 1) - 1)

isabelle

Philou36 a écrit :
Bonjour les amis,

Je n'arive pas à travailler avec des dates sous VBA. Je m'explique : j'ai
une combo avec des périodes sous la forme mois en clair et année (ex:
janvier 2010) et avec votre aide j'ai deux textbox avec dans le premier
le premier jour du mois (ex: pour janvier => 1) et dans l'autre le
dernier jour du mois (ex : 31 pour le mois de janvier 2010).
Comment faire pour indiquer dans un label le nombre de jours en trentieme
entre premier et le dernier jour de la période. Comme c'est des textbox,
possibilité de modifier ces deux valeurs.

Un grand merci par avance pour votre aide.

Philippe







Avatar
isabelle
bonjour Philippe,

ce doit être sur une seule ligne de mm=....jusqu'à..."décembre"),
cela arrive souvent lors de copier coller que les lignes se séparare en 2
et prennent la couleur rouge,

isabelle



Philou36 a écrit :
Bonjour Isabelle,
Merci pour ta réponse mais j'ai juste oublié de te dire que je suis nul en
VBA et quand j'ai collé ton code dans une subroutine la premiere ligne
(mm=array...) s'est mise en rouge.
Que doisje faire.
Merci pour ta patience
Philippe
"isabelle" a écrit dans le message de news:


bonjour Philippe,

mm = Array("janvier", "février", "mars", "avril", "mai", "juin",
"juillet", "août", "septembre", "octobre", "novembre", "décembre")
fin = Me.TextBox2
année = CDbl(Right(Me.ComboBox1, 4))
x = Day(DateSerial(année, Application.Match(fin, mm, 0) + 1, 1) - 1)

isabelle

Philou36 a écrit :

Bonjour les amis,

Je n'arive pas à travailler avec des dates sous VBA. Je m'explique : j'ai
une combo avec des périodes sous la forme mois en clair et année (ex:
janvier 2010) et avec votre aide j'ai deux textbox avec dans le premier
le premier jour du mois (ex: pour janvier => 1) et dans l'autre le
dernier jour du mois (ex : 31 pour le mois de janvier 2010).
Comment faire pour indiquer dans un label le nombre de jours en trentieme
entre premier et le dernier jour de la période. Comme c'est des textbox,
possibilité de modifier ces deux valeurs.

Un grand merci par avance pour votre aide.

Philippe












Avatar
Calou
On 3 nov, 05:34, isabelle wrote:
bonjour Philippe,

ce doit être sur une seule ligne de mm=....jusqu'à..."décembre"),
cela arrive souvent lors de copier coller que les lignes se séparare en 2
et prennent la couleur rouge,

isabelle

Philou36 a écrit :



> Bonjour Isabelle,
> Merci pour ta réponse mais j'ai juste oublié de te dire que je suis nul en
> VBA et quand j'ai collé ton code dans une subroutine la premiere lign e
> (mm=array...) s'est mise en rouge.
> Que doisje faire.
> Merci pour ta patience
> Philippe
> "isabelle" a écrit dans le message de news:
>

>> bonjour Philippe,

>> mm = Array("janvier", "février", "mars", "avril", "mai", "juin",
>> "juillet", "août", "septembre", "octobre", "novembre", "décembre")
>> fin = Me.TextBox2
>> année = CDbl(Right(Me.ComboBox1, 4))
>> x = Day(DateSerial(année, Application.Match(fin, mm, 0) + 1, 1) - 1)

>> isabelle

>> Philou36 a écrit :

>>> Bonjour les amis,

>>> Je n'arive pas à travailler avec des dates sous VBA. Je m'explique : j'ai
>>> une combo avec des périodes sous la forme mois en clair et année (ex:
>>> janvier 2010) et avec votre aide j'ai deux textbox avec dans le premi er
>>> le premier jour du mois (ex: pour janvier => 1) et dans l'autre le
>>> dernier jour du mois (ex : 31 pour le mois de janvier 2010).
>>> Comment faire pour indiquer dans un label le nombre de jours en trent ieme
>>> entre premier et le dernier jour de la période. Comme c'est des tex tbox,
>>> possibilité de modifier ces deux valeurs.

>>> Un grand merci par avance pour votre aide.

>>> Philippe- Masquer le texte des messages précédents -

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



Rebonjour Isabelle,

j'ai le message suivant :
Erreur d'execution 13
Incompatibilité de type sur la ligne indiquée par une flèche

Je te livre ma subroutine
Private Sub TxtFinPeriode_Change()
mm = Array("janvier", "février", "mars", "avril", "mai", "juin",
"juillet", "août", "septembre", "octobre", "novembre", "décembre")
fin = Me.TxtFinPeriode
année = CDbl(Right(Me.CboPeriode, 4))
x = Day(DateSerial(année, Application.Match(fin, mm, 0) + 1, 1) -
1) <=========
LblNbJrsTotal.Caption = x

En passant sur les variables de cette ligne, je peux te dire que année
est bien valorisé, fin également mais la variable mm ne m'indique
rien.
Aurai je encore oublié quelque chose ??

Un grand merci par avance

Philippe
Avatar
isabelle
bonjour Philippe,


En passant sur les variables, à quoi correspondent les variables année et mm ?

isabelle


Calou a écrit :
Rebonjour Isabelle,

j'ai le message suivant :
Erreur d'execution 13
Incompatibilité de type sur la ligne indiquée par une flèche

Je te livre ma subroutine
Private Sub TxtFinPeriode_Change()
mm = Array("janvier", "février", "mars", "avril", "mai", "juin",
"juillet", "août", "septembre", "octobre", "novembre", "décembre")
fin = Me.TxtFinPeriode
année = CDbl(Right(Me.CboPeriode, 4))
x = Day(DateSerial(année, Application.Match(fin, mm, 0) + 1, 1) -
1) <======== > LblNbJrsTotal.Caption = x

En passant sur les variables de cette ligne, je peux te dire que année
est bien valorisé, fin également mais la variable mm ne m'indique
rien.
Aurai je encore oublié quelque chose ??

Un grand merci par avance

Philippe



Avatar
Calou
On 3 nov, 13:48, isabelle wrote:
bonjour Philippe,

En passant sur les variables, à quoi correspondent les variables anné e et mm ?

isabelle

Calou a écrit :



> Rebonjour Isabelle,

> j'ai le message suivant :
> Erreur d'execution 13
> Incompatibilité de type sur la ligne indiquée par une flèche

> Je te livre ma subroutine
> Private Sub TxtFinPeriode_Change()
> mm = Array("janvier", "février", "mars", "avril", "mai", "juin",
> "juillet", "août", "septembre", "octobre", "novembre", "décembre")
> fin = Me.TxtFinPeriode
> année = CDbl(Right(Me.CboPeriode, 4))
> x = Day(DateSerial(année, Application.Match(fin, mm, 0) + 1, 1) -
> 1)     <=========
> LblNbJrsTotal.Caption = x

> En passant sur les variables de cette ligne, je peux te dire que anné e
> est bien valorisé, fin également mais la variable mm ne m'indique
> rien.
> Aurai je encore oublié quelque chose ??

> Un grand merci par avance

> Philippe- Masquer le texte des messages précédents -

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



Rebonjour Isabelle,

Pour la variable année, j'ai 2009
fin0 (c'est bon puisque la période est septembre 2009 et que 30
correspond au dernier jour du mois)
et mm ne m'affiche rien du tout.
Je n'ai pas bien compris a quoi servait la ligne mm = Array("janvier",
"février", "mars", "avril", "mai", "juin", "juillet", "août",
"septembre", "octobre", "novembre", "décembre")

voilà.

Encore merci à toi

A +

Philippe
Avatar
isabelle
peut tu mettre ton fichier en ligne sur ci-joint ?

isabelle

Calou a écrit :
On 3 nov, 13:48, isabelle wrote:

bonjour Philippe,

En passant sur les variables, à quoi correspondent les variables année et mm ?

isabelle

Calou a écrit :




Rebonjour Isabelle,

j'ai le message suivant :
Erreur d'execution 13
Incompatibilité de type sur la ligne indiquée par une flèche

Je te livre ma subroutine
Private Sub TxtFinPeriode_Change()
mm = Array("janvier", "février", "mars", "avril", "mai", "juin",
"juillet", "août", "septembre", "octobre", "novembre", "décembre")
fin = Me.TxtFinPeriode
année = CDbl(Right(Me.CboPeriode, 4))
x = Day(DateSerial(année, Application.Match(fin, mm, 0) + 1, 1) -
1) <======== >>> LblNbJrsTotal.Caption = x

En passant sur les variables de cette ligne, je peux te dire que année
est bien valorisé, fin également mais la variable mm ne m'indique
rien.
Aurai je encore oublié quelque chose ??

Un grand merci par avance

Philippe- Masquer le texte des messages précédents -



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




Rebonjour Isabelle,

Pour la variable année, j'ai 2009
fin0 (c'est bon puisque la période est septembre 2009 et que 30
correspond au dernier jour du mois)
et mm ne m'affiche rien du tout.
Je n'ai pas bien compris a quoi servait la ligne mm = Array("janvier",
"février", "mars", "avril", "mai", "juin", "juillet", "août",
"septembre", "octobre", "novembre", "décembre")

voilà.

Encore merci à toi

A +

Philippe



Avatar
Calou
On 3 nov, 14:30, isabelle wrote:
peut tu mettre ton fichier en ligne sur ci-joint ?

isabelle

Calou a écrit :



> On 3 nov, 13:48, isabelle wrote:

>> bonjour Philippe,

>> En passant sur les variables, à quoi correspondent les variables ann ée et mm ?

>> isabelle

>> Calou a écrit :

>>> Rebonjour Isabelle,

>>> j'ai le message suivant :
>>> Erreur d'execution 13
>>> Incompatibilité de type sur la ligne indiquée par une flèche

>>> Je te livre ma subroutine
>>> Private Sub TxtFinPeriode_Change()
>>> mm = Array("janvier", "février", "mars", "avril", "mai", "juin",
>>> "juillet", "août", "septembre", "octobre", "novembre", "décembre" )
>>> fin = Me.TxtFinPeriode
>>> année = CDbl(Right(Me.CboPeriode, 4))
>>> x = Day(DateSerial(année, Application.Match(fin, mm, 0) + 1, 1) -
>>> 1)     <=========
>>> LblNbJrsTotal.Caption = x

>>> En passant sur les variables de cette ligne, je peux te dire que ann ée
>>> est bien valorisé, fin également mais la variable mm ne m'indique
>>> rien.
>>> Aurai je encore oublié quelque chose ??

>>> Un grand merci par avance

>>> Philippe- Masquer le texte des messages précédents -

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

> Rebonjour Isabelle,

> Pour la variable année, j'ai 2009
> fin0 (c'est bon puisque la période est septembre 2009 et que 30
> correspond au dernier jour du mois)
> et mm ne m'affiche rien du tout.
> Je n'ai pas bien compris a quoi servait la ligne mm = Array("janvier" ,
> "février", "mars", "avril", "mai", "juin", "juillet", "août",
> "septembre", "octobre", "novembre", "décembre")

> voilà.

> Encore merci à toi

> A +

> Philippe- Masquer le texte des messages précédents -

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



Isabelle,
Le voilou !
A +
Philippe
Avatar
Calou
On 3 nov, 14:48, Calou wrote:
On 3 nov, 14:30, isabelle wrote:





> peut tu mettre ton fichier en ligne sur ci-joint ?

> isabelle

> Calou a écrit :

> > On 3 nov, 13:48, isabelle wrote:

> >> bonjour Philippe,

> >> En passant sur les variables, à quoi correspondent les variables a nnée et mm ?

> >> isabelle

> >> Calou a écrit :

> >>> Rebonjour Isabelle,

> >>> j'ai le message suivant :
> >>> Erreur d'execution 13
> >>> Incompatibilité de type sur la ligne indiquée par une flèche

> >>> Je te livre ma subroutine
> >>> Private Sub TxtFinPeriode_Change()
> >>> mm = Array("janvier", "février", "mars", "avril", "mai", "juin" ,
> >>> "juillet", "août", "septembre", "octobre", "novembre", "décembr e")
> >>> fin = Me.TxtFinPeriode
> >>> année = CDbl(Right(Me.CboPeriode, 4))
> >>> x = Day(DateSerial(année, Application.Match(fin, mm, 0) + 1, 1) -
> >>> 1)     <=========
> >>> LblNbJrsTotal.Caption = x

> >>> En passant sur les variables de cette ligne, je peux te dire que an née
> >>> est bien valorisé, fin également mais la variable mm ne m'indiq ue
> >>> rien.
> >>> Aurai je encore oublié quelque chose ??

> >>> Un grand merci par avance

> >>> Philippe- Masquer le texte des messages précédents -

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

> > Rebonjour Isabelle,

> > Pour la variable année, j'ai 2009
> > fin0 (c'est bon puisque la période est septembre 2009 et que 30
> > correspond au dernier jour du mois)
> > et mm ne m'affiche rien du tout.
> > Je n'ai pas bien compris a quoi servait la ligne mm = Array("janvie r",
> > "février", "mars", "avril", "mai", "juin", "juillet", "août",
> > "septembre", "octobre", "novembre", "décembre")

> > voilà.

> > Encore merci à toi

> > A +

> > Philippe- Masquer le texte des messages précédents -

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

Isabelle,
Le voilou !
A +
Philippe- Masquer le texte des messages précédents -

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



Isabelle,
le voilou !
http://cjoint.com/?ldoVp4T080
Bon courage
Philippe
PS : Merci de ton indulgence vis a vis du code et n'hesite pas a me
dire ce que tu en penses !
Avatar
isabelle
bonjour Philippe,

j'ai modifié comme ceci :

fin = Left(Me.CboPeriode, Len(Me.CboPeriode) - 5)

par ailleurs il y a un erreur sur cette macro
pour l'utilisation de RowSource, cette valeur doit être un adresse
.RowSource = "a1:e4"
est ce que Technique et Administrative sont des plages nommées ?

Private Sub CboFiliere1_Change()
'Changement de Filiere (Situation 1)
Select Case CboFiliere1.Value
Case Is = "Administrative"
CboGrade1.RowSource = "Administrative"
Case Is = "Technique"
CboGrade1.RowSource = "Technique"
End Select
End Sub

isabelle

Calou a écrit :
Isabelle,
le voilou !
http://cjoint.com/?ldoVp4T080
Bon courage
Philippe
PS : Merci de ton indulgence vis a vis du code et n'hesite pas a me
dire ce que tu en penses !



1 2