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

Pb de conversion en vba

2 réponses
Avatar
DesseJ
Bonjour,

Je reviens =E0 vous pour un chtit conseil.
J'ai, dans ma feuille Pieces, des donn=E9es de type 10/88, 25/99 e
cetera format=E9 en texte.

En vba, j'utilise une formule classique index/equiv avec un autofill
pour un traitement rapide pour r=E9cup=E9rer ses donn=E9es dans une autre
feuille. Cela se passe fort bien (v=E9rif en pas =E0 pas sur les deux
premi=E8res lignes du code).
Or d=E8s que je transforme mes formules en valeurs (derni=E8re ligne du
code suivant), Excel me transforme les r=E9f=E9rences comme 10/88 en
01/10/88.

[I2].FormulaLocal =3D "=3DINDEX(Pieces!$F$2:$F$" & DerLigP &
";EQUIV(A2;Pieces!$A$2:$A$" & DerLigP & ";0);1)"
Range("E2:I2").AutoFill Destination:=3D.Range("E2:I" & DerLig)
Range("E2:I" & DerLig).Value =3D .Range("E2:I" & DerLig).Value

Comment puis-je facilement contourner ce fait ?
Merci d'avance,
Stef

2 réponses

Avatar
JB
Bonjour,

[A1].NumberFormat = "@"
[A1] ="10/88"

JB

On 31 juil, 11:54, DesseJ wrote:
Bonjour,

Je reviens à vous pour un chtit conseil.
J'ai, dans ma feuille Pieces, des données de type 10/88, 25/99 e
cetera formaté en texte.

En vba, j'utilise une formule classique index/equiv avec un autofill
pour un traitement rapide pour récupérer ses données dans une autre
feuille. Cela se passe fort bien (vérif en pas à pas sur les deux
premières lignes du code).
Or dès que je transforme mes formules en valeurs (dernière ligne du
code suivant), Excel me transforme les références comme 10/88 en
01/10/88.

[I2].FormulaLocal = "=INDEX(Pieces!$F$2:$F$" & DerLigP &
";EQUIV(A2;Pieces!$A$2:$A$" & DerLigP & ";0);1)"
Range("E2:I2").AutoFill Destination:=.Range("E2:I" & DerLig)
Range("E2:I" & DerLig).Value = .Range("E2:I" & DerLig).Value

Comment puis-je facilement contourner ce fait ?
Merci d'avance,
Stef


Avatar
DesseJ
Bonjour JB,

Suis-je bête !!!
Un grand merci.

Bonne journée
Stef

La solution finale
[I2].FormulaLocal = "=INDEX(Pieces!$F$2:$F$" & DerLigP &
";EQUIV(A2;Pieces!$A$2:$A$" & DerLigP & ";0);1)"
Range("E2:I2").AutoFill Destination:=Range("E2:I" & DerLig)
Range("E2:I" & DerLig).NumberFormat = "@"
Range("E2:I" & DerLig).Value = Range("E2:I" & DerLig).Value