VBA - Ouverture d'un classeur et tableau croisé

Francky J

XLDnaute Nouveau
Bonjour à tous !



Je rencontre quelques difficultés à traiter des données extraites de SAP.

Je réalise des extractions de SAP vers Excel pour pouvoir traiter par exemple, des commandes (ref produit & quantité)

Mais le soucis est que les quantités sous SAP sont sous cette forme : 25,000 ( correspond à 25 et non 25 000)

Lorsque je transfère tout ça dans un fichier Excel, les valeurs passent de la forme ci-dessus à "25" . Donc plus de virgule.

Cependant, lors de l'ouverture de ce fichier excel via ma macro, toutes ces nombres sont multipliés par 1000 ! Et ce uniquement quand je l'ouvre via ma macro :confused: . Manuellement, rien n'est modifié.

Savez-vous de quoi ça peut venir ?

Voilà mon code pour l'ouverture du fichier extrait de SAP :

Dim wb As Workbook
Dim ws As Worksheet
Set wb = Workbooks.Open("Z:\My documents\SAP\Expé.xls")
Set ws = wb.Worksheets("Expé")



Pour traiter les données brutes présentes dans ce fichier, j'aimerais faire un tableau croisé dynamique. Et là aussi ça coince (aléatoirement). Ca marchait bien jusqu'à ce que je modifie une ligne du code n'ayant aucun rapport avec le tableau croisé, et là j'obtient l'erreur suivante :

"Erreur d'exécution 1004:

Le nom du champ de tableau croisé dynamique n'est pas valide.. blablabla"

Mon code pour le tableau croisé (fait avec l'enregistreur de macro)

Range("A1:U1000").Select
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"Expé!R1C1:R1000C20").CreatePivotTable TableDestination:="", TableName:= _
"Tableau croisé dynamique1", DefaultVersion:=xlPivotTableVersion10
ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
ActiveSheet.Cells(3, 1).Select
ActiveSheet.PivotTables("Tableau croisé dynamique1").AddFields RowFields:= _
"Material"
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
" Dlv.qty")
.Orientation = xlDataField
.Caption = "Somme de Dlv.qty"
.Function = xlSum
End With



Si jamais je me suis mal expliqué ou si vous avez besoin des codes en entier ou des fichiers Excel, dites-le moi ;)


Quelqu'un a une idée ?



Franck
 

Francky J

XLDnaute Nouveau
Re : VBA - Ouverture d'un classeur et tableau croisé

J'ai trouvé d'où venait l'erreur pour le tableau croisé :

elle était causé par une cellule vide, j'ai donc remplacé :

Code:
"Expé![COLOR="#FF0000"]R1C1[/COLOR]:R1000C20").CreatePivotTable TableDestination:="", TableName:= _

par :

Code:
"Expé![COLOR="#FF0000"]R2C3[/COLOR]:R1000C20").CreatePivotTable TableDestination:="", TableName:= _
et ça fonctionne !


Par contre toujours bloqué sur les valeurs multipliées par 1000. D'après moi c'est une histoire de séparateur de nombre, mais je trouve pas :(


EDIT : Ca marche plus -_-'

Personne pour m'aider ?
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
314 633
Messages
2 111 404
Membres
111 124
dernier inscrit
presa54