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

VBA, EXCEL & « COPY/PASTE »

16 réponses
Avatar
Philippe Dhondt
Bonjour,

Je copie, via VBA, des data d'une feuille vers une autre



Feuille 1 :

Range("A1:F1).Select

Selection.copy



Feuille 2 :

Range("A1:F1).Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks
:=False, Transpose:=False



Les colonnes des deux feuilles sont formatées en numérique



Quelque soient les options utilisées dans le « Paste », les data copiées le
sont en Texte !!!!!!!!!!!! (Number stored as text)

Reformater, après le paste, les cellules en numeriques via VBA ne change
rien....

L'aide Excel propose de multiplier les cellules par 1, mais la même chose en
VBA ne change rien ....



Dans la feuille, le menu contextuel permet de les convertir en nombre, mais
quid en VBA ?



Evidemment, la suite de mon code doit obligatoirement utiliser ces données
copiées, et ce en nombre .



Quelqu'un aurait-il une idée ???



Merci





Philippe Dhondt

6 réponses

1 2
Avatar
Jacky
Re...
(Les data arrivent toujours dans la feuille destination sous format texte)



Si les datas arrivent au format texte après la copie , c'est quelles sont au
format texte dans le fichier de départ, il n'y a pas de modification en
cours de route.
N'y aurait-il pas une histoire de reconnaissance du Symbole décimale ??
Sinon mets un échantillons des données sur:
http://cjoint.com/index.php


JJ

"Philippe Dhondt" a écrit dans le message de
news:Ag0gf.1579$
Re,

La solution :
Worksheets("feuil2").Range("A1:F1").Value > Worksheets("feuil1").Range("A1:F1").Value

bien que plus elegante (moins de lignes) ne fonctionnent pas non plus.
(Les

data arrivent toujours dans la feuille destination sous format texte)


Petite precision, les feuilles se trouvent dans des classeurs
differents...


En fait, il s'agit d'une appli boursière:
j'ouvre un classeur "Indice", puis j'ouvre un par un les classeurs
"Titres"

des titres composants cette indice.
Je ramene les derniers cours de chaque titre dans le classeur Indice pour
effectuer ensuite une batterie de calculs.

J'espère que cette precision sera utile.

Merci


@+







Avatar
Philippe Dhondt
Bingo



« N'y aurait-il pas une histoire de reconnaissance du Symbole décimale ? »



Je pense qu'effectivement tout le problème vient de là :



Dans les données passées, l'une d'entre-elle est au format date : pas de
problème.

Une autre est numerique, mais ses valeurs sont toujours arrondies à l'unité
: pas de problème.

Seules les data possédant le symbole décimale posent problème.

Après avoir exécuter le code VBA, je selectionne les data transférées et je
remplace (Ctrl-H) la virgule par une virgule (ok, c'est étrange mais bon) et
, Oh Magie, les données redevienneent numérique.



J'inclu donc ceci dans le VBA juste après le transfert des données :

Columns("B:E").Select

Selection.Replace What:=",", Replacement:=",", LookAt:=xlPart, _

SearchOrder:=xlByRows, MatchCase:úlse, SearchFormat:úlse, _

ReplaceFormat:úlse

Et, Oh rage, Oh désespoir, rien ne change .... ???

Mais data refusent obstinement de passer de texte à numérique via le VBA .



Une idée ?




Merci





Philippe Dhondt







Merci





Philippe Dhondt








Avatar
Philippe Dhondt
Re,



Voici encore un indice :



Dans le code VBA j'ai ceci : ActiveCell.FormulaR1C1 = "=(E2-DDBY!E2)/E2"

Les cellules E2 sont toutes 2 formatées en %



Le resultat obtenu dans cette cellule après execution du code est :
=('E2'-DDBY!'E2')/'E2' !!!!!!!





Dur dur de rester Zen.



Philippe Dhondt
Avatar
JpPradier
Bonjour Philippe

Essaie en remplaçant
ActiveCell.FormulaR1C1 = "=(E2-DDBY!E2)/E2"

par
ActiveCell.FormulaLocal = "=(E2-DDBY!E2)/E2"

j-p
Avatar
Philippe Dhondt
Cela fonctionne, merci.

Je vais maintenant essayer de comprendre la différence entre les deux.

@+



"JpPradier" wrote in message
news:%
Bonjour Philippe

Essaie en remplaçant
ActiveCell.FormulaR1C1 = "=(E2-DDBY!E2)/E2"

par
ActiveCell.FormulaLocal = "=(E2-DDBY!E2)/E2"

j-p



Avatar
Philippe Dhondt
Re,

vous trouverez xci-après un exemple du problème:

http://cjoint.com/?lvoNiE6dMj

un classeur "Indice" & un calsseur "Titre"
le classeur indice comprend un module avec les exemples de code
le résultat obtenu est toujours du texte.

Merci à toutes et à tous



Philippe Dhondt
1 2