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

Soustraction

7 réponses
Avatar
Eric
Bonsoir,

J'ai un souci sur lequel je commence à m'énerver.
J'ai différente colonne dont la A comprenant une valeur variant de 0 à 3
et la colonne B une valeur au format 00/00/0000 (c'est une date mais le
champs n'est pas formaté en date).
Je voudrais, quand il est indiqué la valeur 1 en A et 31/12/1870 en B
faire la soustraction et que le résultat de la colonne B devienne 30/12/1870

Un autre exemple valeur colonne A 3 et B 26/02/1994 et résultat attendu
23/02/1994

Comment m'y prendre

Amicalement
eric

7 réponses

Avatar
LSteph
Bonsoir,

Attention excel ne gère pas les dates av le 01/01/1900

Voir plus d'explications ici:
http://www.excelabo.net/excel/datecalcul.php

Si c'est juste pour ton usage il ya cette macro de JW:
http://j-walk.com/ss/excel/files/xdatedl.php.

Cordialement.

--
lSteph

Bonsoir,

J'ai un souci sur lequel je commence à m'énerver.
J'ai différente colonne dont la A comprenant une valeur variant de 0 à 3
et la colonne B une valeur au format 00/00/0000 (c'est une date mais le
champs n'est pas formaté en date).
Je voudrais, quand il est indiqué la valeur 1 en A et 31/12/1870 en B
faire la soustraction et que le résultat de la colonne B devienne
30/12/1870

Un autre exemple valeur colonne A 3 et B 26/02/1994 et résultat attendu
23/02/1994

Comment m'y prendre

Amicalement
eric


Avatar
LSteph
...essaie plutôt ici:

http://www.j-walk.com/ss/excel/files/xdate.htm


Bonsoir,

J'ai un souci sur lequel je commence à m'énerver.
J'ai différente colonne dont la A comprenant une valeur variant de 0 à 3
et la colonne B une valeur au format 00/00/0000 (c'est une date mais le
champs n'est pas formaté en date).
Je voudrais, quand il est indiqué la valeur 1 en A et 31/12/1870 en B
faire la soustraction et que le résultat de la colonne B devienne
30/12/1870

Un autre exemple valeur colonne A 3 et B 26/02/1994 et résultat attendu
23/02/1994

Comment m'y prendre

Amicalement
eric


Avatar
MichDenis
Tu aurais pu lui suggérer ceci, c'est suffisant.

'-----------------------------
Function ChgDate(rg As Range) As String

If IsDate(rg) Then
ChgDate = Format(CDate(rg) - 1, "dd/MM/YYYY")
End If

End Function
'-----------------------------

Tu peux et c'est préférable dans son cas, utiliser l'événement Change
de la feuille et obtenir le même effet. Je compte sur toi pour lui
procurer la procédure.






"LSteph" a écrit dans le message de news:
ewjVOb7$
...essaie plutôt ici:

http://www.j-walk.com/ss/excel/files/xdate.htm


Bonsoir,

J'ai un souci sur lequel je commence à m'énerver.
J'ai différente colonne dont la A comprenant une valeur variant de 0 à 3
et la colonne B une valeur au format 00/00/0000 (c'est une date mais le
champs n'est pas formaté en date).
Je voudrais, quand il est indiqué la valeur 1 en A et 31/12/1870 en B
faire la soustraction et que le résultat de la colonne B devienne
30/12/1870

Un autre exemple valeur colonne A 3 et B 26/02/1994 et résultat attendu
23/02/1994

Comment m'y prendre

Amicalement
eric


Avatar
MichDenis
Copie ce qui suit dans le module feuille où l'action se déroule :

'-------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rg As Range, C As Range
Set Rg = Intersect(Target, Columns(1))
If Not Rg Is Nothing Then
For Each C In Rg
With C
If .Value = 1 Then
If IsDate(.Offset(, 1)) Then
Application.EnableEvents = False
.Offset(, 1).Value = _
Format(CDate(.Offset(, 1)) - 1, "dd/MM/YYYY")
Application.EnableEvents = True
End If
End If
End With
Next
End If
End Sub
'-------------------------------



"Eric" a écrit dans le message de news: 46f970b2$0$25915$
Bonsoir,

J'ai un souci sur lequel je commence à m'énerver.
J'ai différente colonne dont la A comprenant une valeur variant de 0 à 3
et la colonne B une valeur au format 00/00/0000 (c'est une date mais le
champs n'est pas formaté en date).
Je voudrais, quand il est indiqué la valeur 1 en A et 31/12/1870 en B
faire la soustraction et que le résultat de la colonne B devienne 30/12/1870

Un autre exemple valeur colonne A 3 et B 26/02/1994 et résultat attendu
23/02/1994

Comment m'y prendre

Amicalement
eric
Avatar
LSteph
Bonjour MD,

A cette heure (de ce côté du bleu) je me réveille..., et toi tu dors
probablement chacun son tour, si j'avais eu besoin ponctuellement, me
serais probablement bidouillé une fonction.
J'ai pas cherché 12 à 14h, en regardant sur Excelabo je savais pouvoir
retrouver cette piste (le lien a changé), ayant déjà cherché pour un ami
qui collectionne les blasons et s'intéresse à l'histoire je me souvenais
d'un truc déjà tout fait.
Sauf qu'il m'avait par suite demandé de lui faire une table, si je
retrouve cela j'en dirai +. Le pb était qu'il y a
"des jours qui se sont voilatilisé" (20 ou 30 jours je crois)dans notre
lointain passé entre Julien et Gregorien.


Merci pour Eric

Nota: Il y a sûrement aussi, sur tout cela chez Frédéric Sigonneau.

@+

lSteph


Copie ce qui suit dans le module feuille où l'action se déroule :

'-------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rg As Range, C As Range
Set Rg = Intersect(Target, Columns(1))
If Not Rg Is Nothing Then
For Each C In Rg
With C
If .Value = 1 Then
If IsDate(.Offset(, 1)) Then
Application.EnableEvents = False
.Offset(, 1).Value = _
Format(CDate(.Offset(, 1)) - 1, "dd/MM/YYYY")
Application.EnableEvents = True
End If
End If
End With
Next
End If
End Sub
'-------------------------------



"Eric" a écrit dans le message de news: 46f970b2$0$25915$
Bonsoir,

J'ai un souci sur lequel je commence à m'énerver.
J'ai différente colonne dont la A comprenant une valeur variant de 0 à 3
et la colonne B une valeur au format 00/00/0000 (c'est une date mais le
champs n'est pas formaté en date).
Je voudrais, quand il est indiqué la valeur 1 en A et 31/12/1870 en B
faire la soustraction et que le résultat de la colonne B devienne 30/12/1870

Un autre exemple valeur colonne A 3 et B 26/02/1994 et résultat attendu
23/02/1994

Comment m'y prendre

Amicalement
eric




Avatar
MichDenis
S'il est vrai qu'avec l'interface de la feuille de calcul, le "temps"
débute au 01/01/1900, il en est tout autrement via l'interface
VBA. Avec ce dernier, il est possible de faire des opérations
entre la date 01/01/100 et 31/12/9999.

| Le pb était qu'il y a "des jours qui se sont voilatilisé"
| (20 ou 30 jours je crois)dans notre lointain passé
| entre Julien et Gregorien.

*** Pas si lointain si tu t'appelles JPS....mais la problématique
que tu soulèves là, c'est une autre histoire !

Une des multitudes adresses disponibles sur Google sur le sujet :
http://fr.wikipedia.org/wiki/Passage_au_calendrier_gr%C3%A9gorien




"LSteph" a écrit dans le message de news:

Bonjour MD,

A cette heure (de ce côté du bleu) je me réveille..., et toi tu dors
probablement chacun son tour, si j'avais eu besoin ponctuellement, me
serais probablement bidouillé une fonction.
J'ai pas cherché 12 à 14h, en regardant sur Excelabo je savais pouvoir
retrouver cette piste (le lien a changé), ayant déjà cherché pour un ami
qui collectionne les blasons et s'intéresse à l'histoire je me souvenais
d'un truc déjà tout fait.
Sauf qu'il m'avait par suite demandé de lui faire une table, si je
retrouve cela j'en dirai +. Le pb était qu'il y a
"des jours qui se sont voilatilisé" (20 ou 30 jours je crois)dans notre
lointain passé entre Julien et Gregorien.


Merci pour Eric

Nota: Il y a sûrement aussi, sur tout cela chez Frédéric Sigonneau.

@+

lSteph


Copie ce qui suit dans le module feuille où l'action se déroule :

'-------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rg As Range, C As Range
Set Rg = Intersect(Target, Columns(1))
If Not Rg Is Nothing Then
For Each C In Rg
With C
If .Value = 1 Then
If IsDate(.Offset(, 1)) Then
Application.EnableEvents = False
.Offset(, 1).Value = _
Format(CDate(.Offset(, 1)) - 1, "dd/MM/YYYY")
Application.EnableEvents = True
End If
End If
End With
Next
End If
End Sub
'-------------------------------



"Eric" a écrit dans le message de news: 46f970b2$0$25915$
Bonsoir,

J'ai un souci sur lequel je commence à m'énerver.
J'ai différente colonne dont la A comprenant une valeur variant de 0 à 3
et la colonne B une valeur au format 00/00/0000 (c'est une date mais le
champs n'est pas formaté en date).
Je voudrais, quand il est indiqué la valeur 1 en A et 31/12/1870 en B
faire la soustraction et que le résultat de la colonne B devienne 30/12/1870

Un autre exemple valeur colonne A 3 et B 26/02/1994 et résultat attendu
23/02/1994

Comment m'y prendre

Amicalement
eric




Avatar
lSteph
En VBA ça oui bien sûr!
je n'ai évoqué ce pb que pour excel.

;-) heu!
Et! pour google et wikipedia , merci, il me semble que tout le monde
connait
et a faculté à chercher ce que j'évoquais.. on va qd même pas faire
tout le boulot
| entre Julien et Gregorien.
Cela doit suffir!


*** Pas si lointain si tu t'appelles JPS.
Il va être content

T'as décidé de faire plusieurs heureux en un seul post...

Dis moi fait ti pas beau outre atlantique en ce jour du ...
(Présentement je sais pas combien ça fait en Julien) ?

:o)))

@+

On 26 sep, 14:25, "MichDenis" wrote:
S'il est vrai qu'avec l'interface de la feuille de calcul, le "temps"
débute au 01/01/1900, il en est tout autrement via l'interface
VBA. Avec ce dernier, il est possible de faire des opérations
entre la date 01/01/100 et 31/12/9999.

| Le pb était qu'il y a "des jours qui se sont voilatilisé"
| (20 ou 30 jours je crois)dans notre lointain passé
| entre Julien et Gregorien.

*** Pas si lointain si tu t'appelles JPS....mais la problématique
que tu soulèves là, c'est une autre histoire !

Une des multitudes adresses disponibles sur Google sur le sujet :http://f r.wikipedia.org/wiki/Passage_au_calendrier_gr%C3%A9gorien

"LSteph" a écrit dans le message de news:

Bonjour MD,

A cette heure (de ce côté du bleu) je me réveille..., et toi tu dors
probablement chacun son tour, si j'avais eu besoin ponctuellement, me
serais probablement bidouillé une fonction.
J'ai pas cherché 12 à 14h, en regardant sur Excelabo je savais pouvoir
retrouver cette piste (le lien a changé), ayant déjà cherché pour un ami
qui collectionne les blasons et s'intéresse à l'histoire je me souven ais
d'un truc déjà tout fait.
Sauf qu'il m'avait par suite demandé de lui faire une table, si je
retrouve cela j'en dirai +. Le pb était qu'il y a
"des jours qui se sont voilatilisé" (20 ou 30 jours je crois)dans not re
lointain passé entre Julien et Gregorien.

Merci pour Eric

Nota: Il y a sûrement aussi, sur tout cela chez Frédéric Sigonneau.

@+

lSteph


Copie ce qui suit dans le module feuille où l'action se déroule :

'-------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rg As Range, C As Range
Set Rg = Intersect(Target, Columns(1))
If Not Rg Is Nothing Then
For Each C In Rg
With C
If .Value = 1 Then
If IsDate(.Offset(, 1)) Then
Application.EnableEvents = False
.Offset(, 1).Value = _
Format(CDate(.Offset(, 1)) - 1, "dd/MM/YYYY")
Application.EnableEvents = True
End If
End If
End With
Next
End If
End Sub
'-------------------------------

"Eric" a écrit dans le message de news: 46f970b2$0$25915 $
Bonsoir,

J'ai un souci sur lequel je commence à m'énerver.
J'ai différente colonne dont la A comprenant une valeur variant de 0 à 3
et la colonne B une valeur au format 00/00/0000 (c'est une date mais le
champs n'est pas formaté en date).
Je voudrais, quand il est indiqué la valeur 1 en A et 31/12/1870 en B
faire la soustraction et que le résultat de la colonne B devienne 30/ 12/1870

Un autre exemple valeur colonne A 3 et B 26/02/1994 et résultat atten du
23/02/1994

Comment m'y prendre

Amicalement
eric