Problème de date (Suite)

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichDenis
Le #4963761
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"
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
Philippe B
Le #4963611
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" %
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"
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






MichDenis
Le #4963341
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" 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" %
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"
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






Philippe B
Le #4963011
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" 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" 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" %
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"
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












MichDenis
Le #4962811
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"
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" 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" 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" %
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"
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












Philippe B
Le #4961941
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" %
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"
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" 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" 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" %
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"
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


















MichDenis
Le #4961911
| 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" 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" %
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"
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" 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" 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" %
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"
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


















Publicité
Poster une réponse
Anonyme