Bonjour à toutes et à tous,

le titre est pas super explicite, j'ai pas trouvé de façon d'expliquer brièvement ce que je voulais... Pour les courageux qui sont là je détaille donc !

J'ai actuellement un code qui transpose des valeurs d'une feuille à une autre.
Sauf qu'Excel me fait n'importe quoi... Enfin pas tout à fait mais...
Il me copie les valeurs en tant que Chaînes de caractères et ce quelque soit le format d'origine ou de destination.
Par exemple 41,7 sera retranscris 41,7 dans ma colonne destination de type Number(2) mais ce n'est pas un chiffre ! Si j'édite la valeur sans rien modifier et que je valide avec entrée j'obtiens alors 41,70 qui lui est bien un chiffre...
Et c'est ce fonctionnement manuel que je n'ai pas réussi jusqu'à maintenant à reproduire convenablement. J'ai bien tenté l'enregistrement d'une macro du procédé mais elle ne fait absolument rien.

J'ai alors joué du format à la mano :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
Dim cell As Range
For Each cell In Range("Q" + CStr(conf.lastRowOfData) + ":W" + CStr(conf.lastRowOfData + (endCell - 7) - 1))
        cell.FormulaR1C1 = CDec(cell.Value)
Next cell
Sauf que cellule par cellule c'est... Une horreur ! Sur 400 lignes j'ai le temps d'aller prendre au moins deux cafés, bref ce n'est pas viable. (Et encore je ne travaille que sur les lignes ajoutées et non pas tout le classeur, j'ai donc limité la casse...)

Pour information voilà ce que j'utilise pour la copie si un début de piste peut être pris par là :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
Worksheets(conf.tmpSheet).Range("A7", "Z" + CStr(endCell - 1)).copy
Worksheets(conf.finalBenchSheet).Activate
    Range(lib.toLetter(firstCellOfData.column) _
    + CStr(conf.lastRowOfData), lib.toLetter(firstCellOfData.column + 25) _
    + CStr(conf.lastRowOfData + (endCell - 7) - 1)).PasteSpecial xlValues
Quelqu'un aurait-il une piste à me proposer pour améliorer cela ?