sergio_bzh
XLDnaute Nouveau
Bonjour,
je cherche à modifier quelques milliers de cellules assez rapidement et à partir de VB6. Je veux simplement ajouter une quote devant la valeur de la cellule pour la forcer à être en mode texte.
Pour le moment je fais une boucle toute bête :
J'ai 3 à 4000 lignes et l'opération peut prendre jusqu'à 2 minutes si toutes les lignes doivent être modifiées.
Quelqu'un aurait-il une solution plus rapide ?
En fait, je suis obligé de faire cela pour préparer un transferSpreadSheet vers Access qui se passe mal. Dans mes champs on peut aussi bien trouver des valeurs "ABC" comme "34567827".
Le plus incroyable est que, si je ne fais rien, à l'arrivée dans ma table Access, le champ est bien du type "Texte" mais on voit qu'il a importé "34567827" comme "3.45679 E+008" sous forme texte !!!!!
Avec les simples quotes devant, je n'ai plus de problème mais vu le temps je dois trouver autre chose.
D'un TransferSpreadSheet qui dure moins d'une seconde, me voilà arrivé avec des traitements de quelques minutes .....
Merci.
Sergio
je cherche à modifier quelques milliers de cellules assez rapidement et à partir de VB6. Je veux simplement ajouter une quote devant la valeur de la cellule pour la forcer à être en mode texte.
Pour le moment je fais une boucle toute bête :
Code:
Dim Wsh As Excel.Worksheet
....
j = 2
cel = "dummy"
While (cel <> "")
cel = Wsh.Cells(j, 3).Value
If IsNumeric(cel) Then
Wsh.Cells(j, 3).Value = "'" & cel
End If
j = j + 1
Wend
J'ai 3 à 4000 lignes et l'opération peut prendre jusqu'à 2 minutes si toutes les lignes doivent être modifiées.
Quelqu'un aurait-il une solution plus rapide ?
En fait, je suis obligé de faire cela pour préparer un transferSpreadSheet vers Access qui se passe mal. Dans mes champs on peut aussi bien trouver des valeurs "ABC" comme "34567827".
Le plus incroyable est que, si je ne fais rien, à l'arrivée dans ma table Access, le champ est bien du type "Texte" mais on voit qu'il a importé "34567827" comme "3.45679 E+008" sous forme texte !!!!!
Avec les simples quotes devant, je n'ai plus de problème mais vu le temps je dois trouver autre chose.
D'un TransferSpreadSheet qui dure moins d'une seconde, me voilà arrivé avec des traitements de quelques minutes .....
Merci.
Sergio