Soustraction

Le
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
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
LSteph
Le #4859211
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


LSteph
Le #4859201
...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


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


MichDenis
Le #4859181
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" 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
LSteph
Le #4859141
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" 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




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




lSteph
Le #4858821
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"
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"
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" 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




Publicité
Poster une réponse
Anonyme