[VB] [EXCEL] Copier cellules -> RESOLU

Copier cellules -> RESOLU [VB] [EXCEL] - VB/VBA/VBS - Programmation

Marsh Posté le 09-04-2008 à 16:15:14    

Bonjour,
 
Je travaille sous excel 2003 et je programme en Visual Basic.
 
J'ai un problème en copiant les données d'une feuille excel.  
En fait, je copie une zone de cellules (avec range) d'une feuille excel ouverte sous une application et je la met dans une autre feuille ouverte sous une autre application.
 
Le problème est que je lorsque je copie les données, les valeurs ne sont plus les mêmes dans le sens ou j'ai initialement -55.168 et je me retrouve avec -55168.  
 
Je ne pense pas que ce soit un problème de format de cellule (où j'ai déja réalisé beaucoup de test) mais c'est surtout car si je copie seulement le contenu d'une cellule et que je suis en mode debug (avancement du programme en pas à pas), je regarde le contenu de la cellule et il y a déja le probleme -> c'est a dire que j'ai -55168 au lieu de -55.168
 
Quelqu'un a t il une idée sur le problème ?
 
Cordialement,
 
PS : Je met le code que j'ai tapé met je ne pense pas que cela puisse vous aider car il est tout bete
 

Code :
  1. t1 = wbFichier.Sheets(1).Cells(40, "B" ).value
  2. wbResult.Worksheets("feuil1" ).Range("C4" ).Value = t1


Message édité par sixroses le 28-10-2010 à 10:38:58
Reply

Marsh Posté le 09-04-2008 à 16:15:14   

Reply

Marsh Posté le 09-04-2008 à 17:58:59    

Pourquoi ton séparateur d'unité est un point et pas une virgule comme c'est la norme en France ? Système anglais ?


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
Reply

Marsh Posté le 10-04-2008 à 08:59:38    

Autant pour moi, c'est bien une virgule.
 
Donc j'obtient 55168 au lieu de 55,168

Reply

Marsh Posté le 10-04-2008 à 09:16:09    

Il faudrait que tu nous montres ton fichier excel, parce que ce n'est pas un fonctionnement logique ...


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
Reply

Marsh Posté le 10-04-2008 à 09:42:45    

Voila le code.  
 
J'ai utilisé le même code pour le reste de la page à traiter et cela fonctionne. La copie ne fonctionne pas sur certaines colonnes seulement, je ne comprends pas pourquoi.
 

Code :
  1. Set xlAux = New Excel.Application
  2.     Set wbFichier = xlAux.Workbooks.Open(nomFichier)
  3.     Set monXl = New Excel.Application
  4.     Set wbResult = monXl.Workbooks.Add       
  5. ' Ici j'initialise la forme de la feuille et le format, j'ai meme essayé d'autres
  6. ' format de cellules ou de ne pas en mettre mais cela ne change rien
  7.     With wbResult.Sheets("feuil1" ).Range("C14:IV24" )
  8.         .Interior.ColorIndex = 0
  9.         .Interior.Pattern = xlGray75
  10.         .Interior.PatternColorIndex = 36
  11.         .NumberFormat = "0.00E+00"
  12.     End With
  13.     With wbResult.Sheets("feuil1" ).Range("C25:IV65536" )
  14.         .Interior.ColorIndex = 0
  15.         .Interior.Pattern = xlGray50
  16.         .Interior.PatternColorIndex = 36
  17.         .NumberFormat = "0.00E+00"
  18.     End With
  19. nbAcq = 20
  20. 'copie des donnees
  21. zone = "B39:" & Chr(Asc("B" ) + 1) & (39 + nbAcq - 1)
  22. donnees = wbFichier.Sheets(1).Range(zone).Value
  23. 'collage des donnees
  24. zone = "C25:" & Chr(Asc("C" ) + 1) & (25 + nbAcq - 1)
  25. wbResult.Worksheets("feuil1" ).Range(zone).Value = donnees


 
Voila j'ai essayé de mettre les infos utiles...
 
Merci de ton aide..

Reply

Marsh Posté le 10-04-2008 à 10:05:46    

sixroses a écrit :

Voila le code.  
J'ai utilisé le même code pour le reste de la page à traiter et cela fonctionne. La copie ne fonctionne pas sur certaines colonnes seulement, je ne comprends pas pourquoi.


Lesquels ? Que faut-il faire pour que ca ne marche pas ?
 


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
Reply

Marsh Posté le 10-04-2008 à 10:12:26    

Justement, je ne comprends pas pourquoi cela ne marche pas.
 
Comme tu as pu le voir, je défini une zone pour le "range(zone)" qui défini la plage des cellules dont je veux copier leurs valeurs.
 
Mais dans cette zone plusieurs colonnes ont leur valeurs qui change quand je les copie ensuite sur l'autre feuille. Elles sont comme étaient multipliées par 1000 puisque je n'ai plus la virgule. Alors que je ne touche pas au contenu, je ne fais que copier les données d'une feuille à l'autre.
 
Par exemple, il y a 3 colonnes de cette zone qui ont gardé leur bonnes valeurs et le reste ont été "multipliées par 1000" (je n'ai plus la virgule)

Reply

Marsh Posté le 10-04-2008 à 10:18:08    

Je pense qu'il va falloir que tu le mettes en ligne pour que l'on puisse réellement voir le fichier...


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
Reply

Marsh Posté le 10-04-2008 à 11:05:04    

Quelqu'un a t il une idée ?  
 
Moi, de mon coté je n'ai toujours pas réussi à régler le problème
 


Message édité par sixroses le 14-04-2008 à 16:41:32
Reply

Marsh Posté le 19-05-2008 à 16:51:59    

RESOLU
 
Le problème était que le fichier que je copiais était en format ascii.
Meme si l'affichage de ce fichier était correct sous excel, lorsque je copiais les données, elles étaient alors erronées...surement un problème de transcription.
 
Il n'est donc pas possible de copier les données. Il faut d'abord les copier manuellement dans un nouveau fichier et les traiter avec celui-ci.


Message édité par sixroses le 19-05-2008 à 16:52:40
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed