VBA passage en dur de dates renvoyées par une formule matricielle
6 réponses
Domi
Bonjour à tous,
AV m'a proposé ce code pour faire un calcul sur plage avec une matricielle
de facon rapide.
Sub Date1()
derL = [A65536].End(3).Row
'pour accélérer !
Application.Calculation = xlCalculationManual
[J16].FormulaArray =
"=IF(ISERROR(SMALL(IF(RC1=ApprosArt,ApprosDate,""""),R14C[2])),"""",SMALL(IF
(RC1=ApprosArt,ApprosDate,""""),R14C[2]))"
[J16].AutoFill Destination:=Range("J16:J" & derL)
Application.Calculation = xlCalculationAutomatic
Range("J16:J" & derL) = Range("J16:J" & derL).Value
'Range("J16:J" & derL).NumberFormat = "dd/mm/yy" 'tentative pour essayer de
remedier au pb masi sans succes :o(
Dans ce cas précis la formule renvoie des dates
Hélas lorsue en fin de macro elles sont figées, elles deviennent
"américaines" !
17/09/03 devient 9/17/2003
29/09/03 devient 9/29/2003
09/10/03 devient 10/09/2003
etc
Y-a-il une explication logique à cela ?
Y-a-t'il un moyen simple de contourner cela ?
j'y arrive en faisant une copie/Collage des valeurs à la place de
Range("J16:J" & derL) = Range("J16:J" & derL).Value mais il y a peut-être
plus simple
Dans le cas de dates, la propriété Value2 contient leur numéro de série (elle est donc insensible à l'américanisation automatique des dates en VBA).
FS -- Frédéric Sigonneau [MVP Excel - né un sans-culottide] Gestions de temps, VBA pour Excel : http://perso.wanadoo.fr/frederic.sigonneau Si votre question sur Excel est urgente, évitez ma bal !
Bonjour à tous, AV m'a proposé ce code pour faire un calcul sur plage avec une matricielle de facon rapide.
Sub Date1() derL = [A65536].End(3).Row 'pour accélérer ! Application.Calculation = xlCalculationManual [J16].FormulaArray > "=IF(ISERROR(SMALL(IF(RC1=ApprosArt,ApprosDate,""""),R14C[2])),"""",SMALL(IF (RC1=ApprosArt,ApprosDate,""""),R14C[2]))" [J16].AutoFill Destination:=Range("J16:J" & derL) Application.Calculation = xlCalculationAutomatic Range("J16:J" & derL) = Range("J16:J" & derL).Value 'Range("J16:J" & derL).NumberFormat = "dd/mm/yy" 'tentative pour essayer de remedier au pb masi sans succes :o(
Dans ce cas précis la formule renvoie des dates Hélas lorsue en fin de macro elles sont figées, elles deviennent "américaines" ! 17/09/03 devient 9/17/2003 29/09/03 devient 9/29/2003 09/10/03 devient 10/09/2003 etc
Y-a-il une explication logique à cela ? Y-a-t'il un moyen simple de contourner cela ? j'y arrive en faisant une copie/Collage des valeurs à la place de Range("J16:J" & derL) = Range("J16:J" & derL).Value mais il y a peut-être plus simple
Merci Domi
Bonjour,
Essaye d'utiliser la propriété (méconnue, trouv'je, mais très utile avec les
dates) Value2 :
Dans le cas de dates, la propriété Value2 contient leur numéro de série (elle
est donc insensible à l'américanisation automatique des dates en VBA).
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
Bonjour à tous,
AV m'a proposé ce code pour faire un calcul sur plage avec une matricielle
de facon rapide.
Sub Date1()
derL = [A65536].End(3).Row
'pour accélérer !
Application.Calculation = xlCalculationManual
[J16].FormulaArray > "=IF(ISERROR(SMALL(IF(RC1=ApprosArt,ApprosDate,""""),R14C[2])),"""",SMALL(IF
(RC1=ApprosArt,ApprosDate,""""),R14C[2]))"
[J16].AutoFill Destination:=Range("J16:J" & derL)
Application.Calculation = xlCalculationAutomatic
Range("J16:J" & derL) = Range("J16:J" & derL).Value
'Range("J16:J" & derL).NumberFormat = "dd/mm/yy" 'tentative pour essayer de
remedier au pb masi sans succes :o(
Dans ce cas précis la formule renvoie des dates
Hélas lorsue en fin de macro elles sont figées, elles deviennent
"américaines" !
17/09/03 devient 9/17/2003
29/09/03 devient 9/29/2003
09/10/03 devient 10/09/2003
etc
Y-a-il une explication logique à cela ?
Y-a-t'il un moyen simple de contourner cela ?
j'y arrive en faisant une copie/Collage des valeurs à la place de
Range("J16:J" & derL) = Range("J16:J" & derL).Value mais il y a peut-être
plus simple
Dans le cas de dates, la propriété Value2 contient leur numéro de série (elle est donc insensible à l'américanisation automatique des dates en VBA).
FS -- Frédéric Sigonneau [MVP Excel - né un sans-culottide] Gestions de temps, VBA pour Excel : http://perso.wanadoo.fr/frederic.sigonneau Si votre question sur Excel est urgente, évitez ma bal !
Bonjour à tous, AV m'a proposé ce code pour faire un calcul sur plage avec une matricielle de facon rapide.
Sub Date1() derL = [A65536].End(3).Row 'pour accélérer ! Application.Calculation = xlCalculationManual [J16].FormulaArray > "=IF(ISERROR(SMALL(IF(RC1=ApprosArt,ApprosDate,""""),R14C[2])),"""",SMALL(IF (RC1=ApprosArt,ApprosDate,""""),R14C[2]))" [J16].AutoFill Destination:=Range("J16:J" & derL) Application.Calculation = xlCalculationAutomatic Range("J16:J" & derL) = Range("J16:J" & derL).Value 'Range("J16:J" & derL).NumberFormat = "dd/mm/yy" 'tentative pour essayer de remedier au pb masi sans succes :o(
Dans ce cas précis la formule renvoie des dates Hélas lorsue en fin de macro elles sont figées, elles deviennent "américaines" ! 17/09/03 devient 9/17/2003 29/09/03 devient 9/29/2003 09/10/03 devient 10/09/2003 etc
Y-a-il une explication logique à cela ? Y-a-t'il un moyen simple de contourner cela ? j'y arrive en faisant une copie/Collage des valeurs à la place de Range("J16:J" & derL) = Range("J16:J" & derL).Value mais il y a peut-être plus simple
Merci Domi
Domi
Y a du mieux, pas de plantage et mes dates restent bien de chez nous ! mais y a du moins bien ! toute la plage prend la valeur de la première cellule de la plage !!!
Ps : apprécie beaucoup ton site ;o). Domi
"Frédéric Sigonneau" a écrit dans le message de news:
Bonjour,
Essaye d'utiliser la propriété (méconnue, trouv'je, mais très utile avec les
Dans le cas de dates, la propriété Value2 contient leur numéro de série (elle
est donc insensible à l'américanisation automatique des dates en VBA).
FS -- Frédéric Sigonneau [MVP Excel - né un sans-culottide] Gestions de temps, VBA pour Excel : http://perso.wanadoo.fr/frederic.sigonneau Si votre question sur Excel est urgente, évitez ma bal !
Bonjour à tous, AV m'a proposé ce code pour faire un calcul sur plage avec une matricielle
Dans ce cas précis la formule renvoie des dates Hélas lorsue en fin de macro elles sont figées, elles deviennent "américaines" ! 17/09/03 devient 9/17/2003 29/09/03 devient 9/29/2003 09/10/03 devient 10/09/2003 etc
Y-a-il une explication logique à cela ? Y-a-t'il un moyen simple de contourner cela ? j'y arrive en faisant une copie/Collage des valeurs à la place de Range("J16:J" & derL) = Range("J16:J" & derL).Value mais il y a peut-être
plus simple
Merci Domi
Y a du mieux, pas de plantage et mes dates restent bien de chez nous ! mais
y a du moins bien ! toute la plage prend la valeur de la première cellule de
la plage !!!
Ps : apprécie beaucoup ton site ;o).
Domi
"Frédéric Sigonneau" <frederic.sigonneau@wanadoo.fr> a écrit dans le message
de news: 3F76DB7E.B47189DE@wanadoo.fr...
Bonjour,
Essaye d'utiliser la propriété (méconnue, trouv'je, mais très utile avec
les
Dans le cas de dates, la propriété Value2 contient leur numéro de série
(elle
est donc insensible à l'américanisation automatique des dates en VBA).
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
Bonjour à tous,
AV m'a proposé ce code pour faire un calcul sur plage avec une
matricielle
Dans ce cas précis la formule renvoie des dates
Hélas lorsue en fin de macro elles sont figées, elles deviennent
"américaines" !
17/09/03 devient 9/17/2003
29/09/03 devient 9/29/2003
09/10/03 devient 10/09/2003
etc
Y-a-il une explication logique à cela ?
Y-a-t'il un moyen simple de contourner cela ?
j'y arrive en faisant une copie/Collage des valeurs à la place de
Range("J16:J" & derL) = Range("J16:J" & derL).Value mais il y a
peut-être
Y a du mieux, pas de plantage et mes dates restent bien de chez nous ! mais y a du moins bien ! toute la plage prend la valeur de la première cellule de la plage !!!
Ps : apprécie beaucoup ton site ;o). Domi
"Frédéric Sigonneau" a écrit dans le message de news:
Bonjour,
Essaye d'utiliser la propriété (méconnue, trouv'je, mais très utile avec les
Dans le cas de dates, la propriété Value2 contient leur numéro de série (elle
est donc insensible à l'américanisation automatique des dates en VBA).
FS -- Frédéric Sigonneau [MVP Excel - né un sans-culottide] Gestions de temps, VBA pour Excel : http://perso.wanadoo.fr/frederic.sigonneau Si votre question sur Excel est urgente, évitez ma bal !
Bonjour à tous, AV m'a proposé ce code pour faire un calcul sur plage avec une matricielle
Dans ce cas précis la formule renvoie des dates Hélas lorsue en fin de macro elles sont figées, elles deviennent "américaines" ! 17/09/03 devient 9/17/2003 29/09/03 devient 9/29/2003 09/10/03 devient 10/09/2003 etc
Y-a-il une explication logique à cela ? Y-a-t'il un moyen simple de contourner cela ? j'y arrive en faisant une copie/Collage des valeurs à la place de Range("J16:J" & derL) = Range("J16:J" & derL).Value mais il y a peut-être
plus simple
Merci Domi
Domi
J'ai trouvé ! enfin un peu...il faut virer le 1er 2... Range("J16:J" & derL).Value = Range("J16:J" & derL).Value2
Merci Domi
"Frédéric Sigonneau" a écrit dans le message de news:
Bonjour,
Essaye d'utiliser la propriété (méconnue, trouv'je, mais très utile avec les
Dans le cas de dates, la propriété Value2 contient leur numéro de série (elle
est donc insensible à l'américanisation automatique des dates en VBA).
FS -- Frédéric Sigonneau [MVP Excel - né un sans-culottide] Gestions de temps, VBA pour Excel : http://perso.wanadoo.fr/frederic.sigonneau Si votre question sur Excel est urgente, évitez ma bal !
Bonjour à tous, AV m'a proposé ce code pour faire un calcul sur plage avec une matricielle
Dans ce cas précis la formule renvoie des dates Hélas lorsue en fin de macro elles sont figées, elles deviennent "américaines" ! 17/09/03 devient 9/17/2003 29/09/03 devient 9/29/2003 09/10/03 devient 10/09/2003 etc
Y-a-il une explication logique à cela ? Y-a-t'il un moyen simple de contourner cela ? j'y arrive en faisant une copie/Collage des valeurs à la place de Range("J16:J" & derL) = Range("J16:J" & derL).Value mais il y a peut-être
plus simple
Merci Domi
J'ai trouvé ! enfin un peu...il faut virer le 1er 2...
Range("J16:J" & derL).Value = Range("J16:J" & derL).Value2
Merci
Domi
"Frédéric Sigonneau" <frederic.sigonneau@wanadoo.fr> a écrit dans le message
de news: 3F76DB7E.B47189DE@wanadoo.fr...
Bonjour,
Essaye d'utiliser la propriété (méconnue, trouv'je, mais très utile avec
les
Dans le cas de dates, la propriété Value2 contient leur numéro de série
(elle
est donc insensible à l'américanisation automatique des dates en VBA).
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
Bonjour à tous,
AV m'a proposé ce code pour faire un calcul sur plage avec une
matricielle
Dans ce cas précis la formule renvoie des dates
Hélas lorsue en fin de macro elles sont figées, elles deviennent
"américaines" !
17/09/03 devient 9/17/2003
29/09/03 devient 9/29/2003
09/10/03 devient 10/09/2003
etc
Y-a-il une explication logique à cela ?
Y-a-t'il un moyen simple de contourner cela ?
j'y arrive en faisant une copie/Collage des valeurs à la place de
Range("J16:J" & derL) = Range("J16:J" & derL).Value mais il y a
peut-être
Dans le cas de dates, la propriété Value2 contient leur numéro de série (elle
est donc insensible à l'américanisation automatique des dates en VBA).
FS -- Frédéric Sigonneau [MVP Excel - né un sans-culottide] Gestions de temps, VBA pour Excel : http://perso.wanadoo.fr/frederic.sigonneau Si votre question sur Excel est urgente, évitez ma bal !
Bonjour à tous, AV m'a proposé ce code pour faire un calcul sur plage avec une matricielle
Dans ce cas précis la formule renvoie des dates Hélas lorsue en fin de macro elles sont figées, elles deviennent "américaines" ! 17/09/03 devient 9/17/2003 29/09/03 devient 9/29/2003 09/10/03 devient 10/09/2003 etc
Y-a-il une explication logique à cela ? Y-a-t'il un moyen simple de contourner cela ? j'y arrive en faisant une copie/Collage des valeurs à la place de Range("J16:J" & derL) = Range("J16:J" & derL).Value mais il y a peut-être
plus simple
Merci Domi
Domi
;o((( j'ai parlé trop vite, ça a marché une fois et le phénomène se reproduit toutes les dates prennent la m^me valeur. Désolé. Domi
"Frédéric Sigonneau" a écrit dans le message de news:
Bonjour,
Essaye d'utiliser la propriété (méconnue, trouv'je, mais très utile avec les
Dans le cas de dates, la propriété Value2 contient leur numéro de série (elle
est donc insensible à l'américanisation automatique des dates en VBA).
FS -- Frédéric Sigonneau [MVP Excel - né un sans-culottide] Gestions de temps, VBA pour Excel : http://perso.wanadoo.fr/frederic.sigonneau Si votre question sur Excel est urgente, évitez ma bal !
Bonjour à tous, AV m'a proposé ce code pour faire un calcul sur plage avec une matricielle
Dans ce cas précis la formule renvoie des dates Hélas lorsue en fin de macro elles sont figées, elles deviennent "américaines" ! 17/09/03 devient 9/17/2003 29/09/03 devient 9/29/2003 09/10/03 devient 10/09/2003 etc
Y-a-il une explication logique à cela ? Y-a-t'il un moyen simple de contourner cela ? j'y arrive en faisant une copie/Collage des valeurs à la place de Range("J16:J" & derL) = Range("J16:J" & derL).Value mais il y a peut-être
plus simple
Merci Domi
;o((( j'ai parlé trop vite, ça a marché une fois et le phénomène se
reproduit toutes les dates prennent la m^me valeur.
Désolé.
Domi
"Frédéric Sigonneau" <frederic.sigonneau@wanadoo.fr> a écrit dans le message
de news: 3F76DB7E.B47189DE@wanadoo.fr...
Bonjour,
Essaye d'utiliser la propriété (méconnue, trouv'je, mais très utile avec
les
Dans le cas de dates, la propriété Value2 contient leur numéro de série
(elle
est donc insensible à l'américanisation automatique des dates en VBA).
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
Bonjour à tous,
AV m'a proposé ce code pour faire un calcul sur plage avec une
matricielle
Dans ce cas précis la formule renvoie des dates
Hélas lorsue en fin de macro elles sont figées, elles deviennent
"américaines" !
17/09/03 devient 9/17/2003
29/09/03 devient 9/29/2003
09/10/03 devient 10/09/2003
etc
Y-a-il une explication logique à cela ?
Y-a-t'il un moyen simple de contourner cela ?
j'y arrive en faisant une copie/Collage des valeurs à la place de
Range("J16:J" & derL) = Range("J16:J" & derL).Value mais il y a
peut-être
Dans le cas de dates, la propriété Value2 contient leur numéro de série (elle
est donc insensible à l'américanisation automatique des dates en VBA).
FS -- Frédéric Sigonneau [MVP Excel - né un sans-culottide] Gestions de temps, VBA pour Excel : http://perso.wanadoo.fr/frederic.sigonneau Si votre question sur Excel est urgente, évitez ma bal !
Bonjour à tous, AV m'a proposé ce code pour faire un calcul sur plage avec une matricielle
Dans ce cas précis la formule renvoie des dates Hélas lorsue en fin de macro elles sont figées, elles deviennent "américaines" ! 17/09/03 devient 9/17/2003 29/09/03 devient 9/29/2003 09/10/03 devient 10/09/2003 etc
Y-a-il une explication logique à cela ? Y-a-t'il un moyen simple de contourner cela ? j'y arrive en faisant une copie/Collage des valeurs à la place de Range("J16:J" & derL) = Range("J16:J" & derL).Value mais il y a peut-être
plus simple
Merci Domi
AV
;o((( j'ai parlé trop vite, ça a marché une fois et le phénomène se reproduit toutes les dates prennent la m^me valeur.
Tu peux m'envoyer un extrait de ton truc ?
AV
;o((( j'ai parlé trop vite, ça a marché une fois et le phénomène se
reproduit toutes les dates prennent la m^me valeur.