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

Problème de date (Suite)

7 réponses
Avatar
Philippe B
Bonjour à tous !
Désolé de vous importuner une nouvelle fois avec mes problème de dates.
J'ai un tableau avec des durées codifiées de la façon suivante :
1a6m23 pour dire un an six mois et 23 jours.
Cette formule marche a un détail près :
=GAUCHE(A2;CHERCHE("a";A2;1)-1)*360+(STXT(A2;CHERCHE("a";A2;1)+1;CHERCHE("m";A2)-(CHERCHE("a";A2)+1))*30)+SI(NBCAR(A2)-CHERCHE("m";A2)=0;0;DROITE(A2;NBCAR(A2)-CHERCHE("m";A2)))
Si j'ai pas l'année, j'ai un message d'erreur (ex: 8m23 pour 8 mois et 23
jours)

Serait-il pas plus simple de passer par une fonction ??

Et si c'est pas abuser, une fonction qui permet de passer d'un nombre de
jours et sa formulation xaxmx (ex : 1a6m23).

Un grand merci par avance pour toute votre patience et votre copréhension.

Amicalement

Philippe

7 réponses

Avatar
MichDenis
Liste en dur, tous les formats qu'il y a dans ta plage de cellules
Tu inscris ici un exemple pour chacun des formats trouvés.



"Philippe B" a écrit dans le message de news:

Bonjour à tous !
Désolé de vous importuner une nouvelle fois avec mes problème de dates.
J'ai un tableau avec des durées codifiées de la façon suivante :
1a6m23 pour dire un an six mois et 23 jours.
Cette formule marche a un détail près :
=GAUCHE(A2;CHERCHE("a";A2;1)-1)*360+(STXT(A2;CHERCHE("a";A2;1)+1;CHERCHE("m";A2)-(CHERCHE("a";A2)+1))*30)+SI(NBCAR(A2)-CHERCHE("m";A2)=0;0;DROITE(A2;NBCAR(A2)-CHERCHE("m";A2)))
Si j'ai pas l'année, j'ai un message d'erreur (ex: 8m23 pour 8 mois et 23
jours)

Serait-il pas plus simple de passer par une fonction ??

Et si c'est pas abuser, une fonction qui permet de passer d'un nombre de
jours et sa formulation xaxmx (ex : 1a6m23).

Un grand merci par avance pour toute votre patience et votre copréhension.

Amicalement

Philippe
Avatar
Philippe B
Rebonjour,
J'ai, je crois, tous les cas de figure :
1a6m23
1a6m
1a0m23
1a
6m23
6m
0m23

Est-il possible de passer par une fonction ??
Donnez-moi les instructions pour :
Chercher la position en fonction d'une lettre dans un texte
Trouver la longueur d'un texte
Extraire une chaine de caractère à partir d'une position

Je voudrais aussi à partir d'un nombre de jour pouvoir retranscrire ce
nombre de jour sous la forme ex : 1a6m23

Mille merci pour votre aide.

Bonne journée

Philippe


"MichDenis" a écrit dans le message de news:
%
Liste en dur, tous les formats qu'il y a dans ta plage de cellules
Tu inscris ici un exemple pour chacun des formats trouvés.



"Philippe B" a écrit dans le message de news:

Bonjour à tous !
Désolé de vous importuner une nouvelle fois avec mes problème de dates.
J'ai un tableau avec des durées codifiées de la façon suivante :
1a6m23 pour dire un an six mois et 23 jours.
Cette formule marche a un détail près :
=GAUCHE(A2;CHERCHE("a";A2;1)-1)*360+(STXT(A2;CHERCHE("a";A2;1)+1;CHERCHE("m";A2)-(CHERCHE("a";A2)+1))*30)+SI(NBCAR(A2)-CHERCHE("m";A2)=0;0;DROITE(A2;NBCAR(A2)-CHERCHE("m";A2)))
Si j'ai pas l'année, j'ai un message d'erreur (ex: 8m23 pour 8 mois et 23
jours)

Serait-il pas plus simple de passer par une fonction ??

Et si c'est pas abuser, une fonction qui permet de passer d'un nombre de
jours et sa formulation xaxmx (ex : 1a6m23).

Un grand merci par avance pour toute votre patience et votre copréhension.

Amicalement

Philippe






Avatar
MichDenis
Pour chacun des exemples que tu as donnés, tu as oublié
de mentionner quel était le résultat (format) attendu après traitement.


"Philippe B" a écrit dans le message de news:
e%
Rebonjour,
J'ai, je crois, tous les cas de figure :
1a6m23
1a6m
1a0m23
1a
6m23
6m
0m23

Est-il possible de passer par une fonction ??
Donnez-moi les instructions pour :
Chercher la position en fonction d'une lettre dans un texte
Trouver la longueur d'un texte
Extraire une chaine de caractère à partir d'une position

Je voudrais aussi à partir d'un nombre de jour pouvoir retranscrire ce
nombre de jour sous la forme ex : 1a6m23

Mille merci pour votre aide.

Bonne journée

Philippe


"MichDenis" a écrit dans le message de news:
%
Liste en dur, tous les formats qu'il y a dans ta plage de cellules
Tu inscris ici un exemple pour chacun des formats trouvés.



"Philippe B" a écrit dans le message de news:

Bonjour à tous !
Désolé de vous importuner une nouvelle fois avec mes problème de dates.
J'ai un tableau avec des durées codifiées de la façon suivante :
1a6m23 pour dire un an six mois et 23 jours.
Cette formule marche a un détail près :
=GAUCHE(A2;CHERCHE("a";A2;1)-1)*360+(STXT(A2;CHERCHE("a";A2;1)+1;CHERCHE("m";A2)-(CHERCHE("a";A2)+1))*30)+SI(NBCAR(A2)-CHERCHE("m";A2)=0;0;DROITE(A2;NBCAR(A2)-CHERCHE("m";A2)))
Si j'ai pas l'année, j'ai un message d'erreur (ex: 8m23 pour 8 mois et 23
jours)

Serait-il pas plus simple de passer par une fonction ??

Et si c'est pas abuser, une fonction qui permet de passer d'un nombre de
jours et sa formulation xaxmx (ex : 1a6m23).

Un grand merci par avance pour toute votre patience et votre copréhension.

Amicalement

Philippe






Avatar
Philippe B
Bonjour !
Pour une conversion en jours :
1a6m23 563
1a6m 540
1a0m23 383
1a 360
6m23 203
6m 180
0m23 23

Un grand merci pour votre gentillesse et votre patience !!
Amicalement
Philippe



"MichDenis" a écrit dans le message de news:
u47E$
Pour chacun des exemples que tu as donnés, tu as oublié
de mentionner quel était le résultat (format) attendu après traitement.


"Philippe B" a écrit dans le message de news:
e%
Rebonjour,
J'ai, je crois, tous les cas de figure :
1a6m23
1a6m
1a0m23
1a
6m23
6m
0m23

Est-il possible de passer par une fonction ??
Donnez-moi les instructions pour :
Chercher la position en fonction d'une lettre dans un texte
Trouver la longueur d'un texte
Extraire une chaine de caractère à partir d'une position

Je voudrais aussi à partir d'un nombre de jour pouvoir retranscrire ce
nombre de jour sous la forme ex : 1a6m23

Mille merci pour votre aide.

Bonne journée

Philippe


"MichDenis" a écrit dans le message de news:
%
Liste en dur, tous les formats qu'il y a dans ta plage de cellules
Tu inscris ici un exemple pour chacun des formats trouvés.



"Philippe B" a écrit dans le message de news:

Bonjour à tous !
Désolé de vous importuner une nouvelle fois avec mes problème de dates.
J'ai un tableau avec des durées codifiées de la façon suivante :
1a6m23 pour dire un an six mois et 23 jours.
Cette formule marche a un détail près :
=GAUCHE(A2;CHERCHE("a";A2;1)-1)*360+(STXT(A2;CHERCHE("a";A2;1)+1;CHERCHE("m";A2)-(CHERCHE("a";A2)+1))*30)+SI(NBCAR(A2)-CHERCHE("m";A2)=0;0;DROITE(A2;NBCAR(A2)-CHERCHE("m";A2)))
Si j'ai pas l'année, j'ai un message d'erreur (ex: 8m23 pour 8 mois et 23
jours)

Serait-il pas plus simple de passer par une fonction ??

Et si c'est pas abuser, une fonction qui permet de passer d'un nombre de
jours et sa formulation xaxmx (ex : 1a6m23).

Un grand merci par avance pour toute votre patience et votre
copréhension.

Amicalement

Philippe












Avatar
MichDenis
Pour les fins de calcul, j'ai choisi des années d'une longueur de 365.25 jours
Les mois sont calculés en fraction d'années
5 mois = (365.25 *5) / 12

Le résultat du calcul est arrondi en utilisant la fonction de la
feuille de calcul "Application.Round" en VBA pour Arrondi
dans la feuille de calcul

Tu copies cette fonction dans un module standard
'-----------------------------------
Function Nbjours(rg As Range)
Dim S As String, Pa As Integer, Pm As Integer
Dim R As Double
S = rg.Value
'Année
Pa = InStr(1, S, "a", vbTextCompare)
If Pa <> 0 Then R = Left(S, Pa - 1) * 365.25
'Mois
Pm = InStr(1, S, "m", vbTextCompare)
If Pm <> 0 Then R = R + (Mid(S, Pa + 1, Pm - Pa - 1) * 365.25) / 12
'Jour
If Pm > 0 Then
If Len(S) - Pm > 0 Then R = R + Right(S, Len(S) - Pm)
End If
Nbjours = Application.Round(R, 0)
End Function
'-----------------------------------

Et pour appeler cette fonction dans ta feuille de calcul

Si en A1, tu as : 1a6m23 Dans la cellule où tu veux obtenir
le résultat en jours, tu inscris : =Nbjours(A1)
Cette formule peut être recopié sur l'ensemble de ta plage !




"Philippe B" a écrit dans le message de news:

Bonjour !
Pour une conversion en jours :
1a6m23 563
1a6m 540
1a0m23 383
1a 360
6m23 203
6m 180
0m23 23

Un grand merci pour votre gentillesse et votre patience !!
Amicalement
Philippe



"MichDenis" a écrit dans le message de news:
u47E$
Pour chacun des exemples que tu as donnés, tu as oublié
de mentionner quel était le résultat (format) attendu après traitement.


"Philippe B" a écrit dans le message de news:
e%
Rebonjour,
J'ai, je crois, tous les cas de figure :
1a6m23
1a6m
1a0m23
1a
6m23
6m
0m23

Est-il possible de passer par une fonction ??
Donnez-moi les instructions pour :
Chercher la position en fonction d'une lettre dans un texte
Trouver la longueur d'un texte
Extraire une chaine de caractère à partir d'une position

Je voudrais aussi à partir d'un nombre de jour pouvoir retranscrire ce
nombre de jour sous la forme ex : 1a6m23

Mille merci pour votre aide.

Bonne journée

Philippe


"MichDenis" a écrit dans le message de news:
%
Liste en dur, tous les formats qu'il y a dans ta plage de cellules
Tu inscris ici un exemple pour chacun des formats trouvés.



"Philippe B" a écrit dans le message de news:

Bonjour à tous !
Désolé de vous importuner une nouvelle fois avec mes problème de dates.
J'ai un tableau avec des durées codifiées de la façon suivante :
1a6m23 pour dire un an six mois et 23 jours.
Cette formule marche a un détail près :
=GAUCHE(A2;CHERCHE("a";A2;1)-1)*360+(STXT(A2;CHERCHE("a";A2;1)+1;CHERCHE("m";A2)-(CHERCHE("a";A2)+1))*30)+SI(NBCAR(A2)-CHERCHE("m";A2)=0;0;DROITE(A2;NBCAR(A2)-CHERCHE("m";A2)))
Si j'ai pas l'année, j'ai un message d'erreur (ex: 8m23 pour 8 mois et 23
jours)

Serait-il pas plus simple de passer par une fonction ??

Et si c'est pas abuser, une fonction qui permet de passer d'un nombre de
jours et sa formulation xaxmx (ex : 1a6m23).

Un grand merci par avance pour toute votre patience et votre
copréhension.

Amicalement

Philippe












Avatar
Philippe B
Bonjour,
Avant toute chose, merci pour tout ce travail.
J'avais oublié de vous dire que pour définir le nombre de jours, je calcule
en trentième, soit 360 jours pour une année et 30 par mois. (Ca devrait être
plus facile je pense).
Par contre, je suis navrée mais j'ai installé la fonction dans un module
mais il me met '#VALEUR!"
Je vais essayé de me débrouiller tout seul ..
Bonne Soirée.
Amicalement

Philippe

"MichDenis" a écrit dans le message de news:
%
Pour les fins de calcul, j'ai choisi des années d'une longueur de 365.25
jours
Les mois sont calculés en fraction d'années
5 mois = (365.25 *5) / 12

Le résultat du calcul est arrondi en utilisant la fonction de la
feuille de calcul "Application.Round" en VBA pour Arrondi
dans la feuille de calcul

Tu copies cette fonction dans un module standard
'-----------------------------------
Function Nbjours(rg As Range)
Dim S As String, Pa As Integer, Pm As Integer
Dim R As Double
S = rg.Value
'Année
Pa = InStr(1, S, "a", vbTextCompare)
If Pa <> 0 Then R = Left(S, Pa - 1) * 365.25
'Mois
Pm = InStr(1, S, "m", vbTextCompare)
If Pm <> 0 Then R = R + (Mid(S, Pa + 1, Pm - Pa - 1) * 365.25) / 12
'Jour
If Pm > 0 Then
If Len(S) - Pm > 0 Then R = R + Right(S, Len(S) - Pm)
End If
Nbjours = Application.Round(R, 0)
End Function
'-----------------------------------

Et pour appeler cette fonction dans ta feuille de calcul

Si en A1, tu as : 1a6m23 Dans la cellule où tu veux obtenir
le résultat en jours, tu inscris : =Nbjours(A1)
Cette formule peut être recopié sur l'ensemble de ta plage !




"Philippe B" a écrit dans le message de news:

Bonjour !
Pour une conversion en jours :
1a6m23 563
1a6m 540
1a0m23 383
1a 360
6m23 203
6m 180
0m23 23

Un grand merci pour votre gentillesse et votre patience !!
Amicalement
Philippe



"MichDenis" a écrit dans le message de news:
u47E$
Pour chacun des exemples que tu as donnés, tu as oublié
de mentionner quel était le résultat (format) attendu après traitement.


"Philippe B" a écrit dans le message de news:
e%
Rebonjour,
J'ai, je crois, tous les cas de figure :
1a6m23
1a6m
1a0m23
1a
6m23
6m
0m23

Est-il possible de passer par une fonction ??
Donnez-moi les instructions pour :
Chercher la position en fonction d'une lettre dans un texte
Trouver la longueur d'un texte
Extraire une chaine de caractère à partir d'une position

Je voudrais aussi à partir d'un nombre de jour pouvoir retranscrire ce
nombre de jour sous la forme ex : 1a6m23

Mille merci pour votre aide.

Bonne journée

Philippe


"MichDenis" a écrit dans le message de news:
%
Liste en dur, tous les formats qu'il y a dans ta plage de cellules
Tu inscris ici un exemple pour chacun des formats trouvés.



"Philippe B" a écrit dans le message de news:

Bonjour à tous !
Désolé de vous importuner une nouvelle fois avec mes problème de dates.
J'ai un tableau avec des durées codifiées de la façon suivante :
1a6m23 pour dire un an six mois et 23 jours.
Cette formule marche a un détail près :
=GAUCHE(A2;CHERCHE("a";A2;1)-1)*360+(STXT(A2;CHERCHE("a";A2;1)+1;CHERCHE("m";A2)-(CHERCHE("a";A2)+1))*30)+SI(NBCAR(A2)-CHERCHE("m";A2)=0;0;DROITE(A2;NBCAR(A2)-CHERCHE("m";A2)))
Si j'ai pas l'année, j'ai un message d'erreur (ex: 8m23 pour 8 mois et
23
jours)

Serait-il pas plus simple de passer par une fonction ??

Et si c'est pas abuser, une fonction qui permet de passer d'un nombre de
jours et sa formulation xaxmx (ex : 1a6m23).

Un grand merci par avance pour toute votre patience et votre
copréhension.

Amicalement

Philippe


















Avatar
MichDenis
| je calcule
| en trentième, soit 360 jours pour une année et 30 par mois

*** Tu changes en 2 endroits dans la fonction : 365.25 par 360

| j'ai installé la fonction dans un module
| mais il me met '#VALEUR!"

*** Quelle est la date qui essaie de résoudre ?
*** La fonction a été testés sur tous les cas de figures que tu as énumérés.




"Philippe B" a écrit dans le message de news:
uin0$
Bonjour,
Avant toute chose, merci pour tout ce travail.
J'avais oublié de vous dire que pour définir le nombre de jours, je calcule
en trentième, soit 360 jours pour une année et 30 par mois. (Ca devrait être
plus facile je pense).
Par contre, je suis navrée mais j'ai installé la fonction dans un module
mais il me met '#VALEUR!"
Je vais essayé de me débrouiller tout seul ..
Bonne Soirée.
Amicalement

Philippe

"MichDenis" a écrit dans le message de news:
%
Pour les fins de calcul, j'ai choisi des années d'une longueur de 365.25
jours
Les mois sont calculés en fraction d'années
5 mois = (365.25 *5) / 12

Le résultat du calcul est arrondi en utilisant la fonction de la
feuille de calcul "Application.Round" en VBA pour Arrondi
dans la feuille de calcul

Tu copies cette fonction dans un module standard
'-----------------------------------
Function Nbjours(rg As Range)
Dim S As String, Pa As Integer, Pm As Integer
Dim R As Double
S = rg.Value
'Année
Pa = InStr(1, S, "a", vbTextCompare)
If Pa <> 0 Then R = Left(S, Pa - 1) * 365.25
'Mois
Pm = InStr(1, S, "m", vbTextCompare)
If Pm <> 0 Then R = R + (Mid(S, Pa + 1, Pm - Pa - 1) * 365.25) / 12
'Jour
If Pm > 0 Then
If Len(S) - Pm > 0 Then R = R + Right(S, Len(S) - Pm)
End If
Nbjours = Application.Round(R, 0)
End Function
'-----------------------------------

Et pour appeler cette fonction dans ta feuille de calcul

Si en A1, tu as : 1a6m23 Dans la cellule où tu veux obtenir
le résultat en jours, tu inscris : =Nbjours(A1)
Cette formule peut être recopié sur l'ensemble de ta plage !




"Philippe B" a écrit dans le message de news:

Bonjour !
Pour une conversion en jours :
1a6m23 563
1a6m 540
1a0m23 383
1a 360
6m23 203
6m 180
0m23 23

Un grand merci pour votre gentillesse et votre patience !!
Amicalement
Philippe



"MichDenis" a écrit dans le message de news:
u47E$
Pour chacun des exemples que tu as donnés, tu as oublié
de mentionner quel était le résultat (format) attendu après traitement.


"Philippe B" a écrit dans le message de news:
e%
Rebonjour,
J'ai, je crois, tous les cas de figure :
1a6m23
1a6m
1a0m23
1a
6m23
6m
0m23

Est-il possible de passer par une fonction ??
Donnez-moi les instructions pour :
Chercher la position en fonction d'une lettre dans un texte
Trouver la longueur d'un texte
Extraire une chaine de caractère à partir d'une position

Je voudrais aussi à partir d'un nombre de jour pouvoir retranscrire ce
nombre de jour sous la forme ex : 1a6m23

Mille merci pour votre aide.

Bonne journée

Philippe


"MichDenis" a écrit dans le message de news:
%
Liste en dur, tous les formats qu'il y a dans ta plage de cellules
Tu inscris ici un exemple pour chacun des formats trouvés.



"Philippe B" a écrit dans le message de news:

Bonjour à tous !
Désolé de vous importuner une nouvelle fois avec mes problème de dates.
J'ai un tableau avec des durées codifiées de la façon suivante :
1a6m23 pour dire un an six mois et 23 jours.
Cette formule marche a un détail près :
=GAUCHE(A2;CHERCHE("a";A2;1)-1)*360+(STXT(A2;CHERCHE("a";A2;1)+1;CHERCHE("m";A2)-(CHERCHE("a";A2)+1))*30)+SI(NBCAR(A2)-CHERCHE("m";A2)=0;0;DROITE(A2;NBCAR(A2)-CHERCHE("m";A2)))
Si j'ai pas l'année, j'ai un message d'erreur (ex: 8m23 pour 8 mois et
23
jours)

Serait-il pas plus simple de passer par une fonction ??

Et si c'est pas abuser, une fonction qui permet de passer d'un nombre de
jours et sa formulation xaxmx (ex : 1a6m23).

Un grand merci par avance pour toute votre patience et votre
copréhension.

Amicalement

Philippe