Relation entre 2 workbook via un enregistrement sous csv

Blindavi Messages postés 23 Date d'inscription mercredi 14 octobre 2009 Statut Membre Dernière intervention 24 juillet 2012 - 26 juin 2012 à 12:52
Blindavi Messages postés 23 Date d'inscription mercredi 14 octobre 2009 Statut Membre Dernière intervention 24 juillet 2012 - 27 juin 2012 à 09:49
Bonjour le forum,

Voila je possède deux documents xl, l'un contenant mes valeurs sous la forme d'un tableau croisé dynamique et un autre contenant un tableau de valeurs en fonction du temps afin d'obtenir un graphique.

Je souhaiterais ainsi copier mes valeurs provenant du pivot vers une colonne dediée de mon tableur de valeur.
Je pensais passer par l'intermediaire d'un fichier .csv afin d'extraire les valeurs du pivot et ensuite importer les valeurs dans mon autre workbook dans la colonne souhaitée.
Puis je importer une certaine colonne d'un fichier .csv dans une feuille .xl?

Eventuellement je pensais effectuer l'enregistrement "Save as" en fichier .csv et l'import de données sur ma feuille xl via un bouton de commande et un programme en vba associé.

Dans cette optique, j'ai redigé le programme ci dessous mais je rencontre un conflit entre le fichier csv et le fichier d'origine puisqu'il ne prend pas en compte la ligne Activeworkbook.save apres l'enregistrement sous csv. En effet méme avec le "save' il me demande si je veux sauvegarder, ce qui mets en péril l'éxécution du reste du programme
De plus mon fichier avec le pivot se nomme désormais de la méme facon que mon fichier csv..:/

Cela fait un moment que je planche sur cela, j'ai besoin d'un regard neuf et surement plus experimenté en VB.

Merci d'avance


Ci dessous le code :

Private Sub CommandButton1_Click()

Dim wb As Workbook
Dim ws As Worksheet

ChDir "D:\Documents and Settings\39518\Desktop\draft"
'enregistrement sous en csv
ActiveWorkbook.SaveAs Filename:= _
"D:\Documents and Settings\39518\Desktop\draft\TestQueing.csv", FileFormat _
:=xlCSV, CreateBackup:=False

'sauvegarde du fichier avec le pivot
ActiveWorkbook.Save
'fermeture du fichier
ActiveWorkbook.Close

'ouverture du fichier csv
Workbooks.Open Filename:= _
"D:\Documents ans Settings\39518\Desktop\draft\TestQueing.csv"
'selection de la premiere serie de donnee
Range("C8:C31").Select
'copie
Selection.Copy
'ouverture du fichier recuperant les valeurs
Workbooks.Open Filename:= _
"D:\Documents and Settings\39518\Desktop\draft\Masterfiletest.xls"
'selection et coller
Range("C2").Select
ActiveSheet.Paste
Application.CutCopyMode = False

'retour au fichier csv et meme approche pour la prochaine serie de donnees
Windows("TestQueing.csv").Activate
Range("C33:C56").Select
Selection.Copy
Windows("Masterfiletest.xls").Activate
Range("C27").Select
ActiveSheet.Paste
Application.CutCopyMode = False

End Sub

2 réponses

Utilisateur anonyme
27 juin 2012 à 02:13
Bonjour,

Pourquoi un fichier CSV quand tu peux copier directement d'un classeur Excel à un autre ?

Ceci dit. Au lieu de faire des machins comme cela:

'selection de la premiere serie de donnee 
Range("C8:C31").Select 
'copie 
Selection.Copy 


Tu sauverais du temps et des lignes avec ceci:

Range("C8:C31").copy
0
Blindavi Messages postés 23 Date d'inscription mercredi 14 octobre 2009 Statut Membre Dernière intervention 24 juillet 2012
27 juin 2012 à 09:49
bonjour cmarcotte, le forum,

passer via un fichier csv me permet de supprimer les filtres du pivot et de recupérer le résultat du pivot.
Cela me permet en outre de ne pas utiliser la fonction GetPivotData, j'ai essayé mais pas moyen de l'utiliser comme il faut donc j'ai choisi cette solution alternative.
Si par hasard tu as le bout de code pour extraire une série de valeurs d'un pivot et les copier dans une feuille d'un autre workbbok, je suis plus qu'intéressé!!

Merci pour la remarque, je vais corriger cela.
0
Rejoignez-nous