Macro qui ne fonctionne pas dans d'autres pays

Cacou78

XLDnaute Nouveau
Bonjour,

J'ai crée un programme vba qui fonctionne très bien sur les différents ordinateurs utilisés en france.
Mais cette macro doit aussi être utilisé dans tous les autres pays où est implanté l'entreprise où j'effectue mon stage.Cependant je viens d'avoir un retour des état unis où la macro a bugguer. J'ai demandé a cette personne de m'envoyer le fichier, aprés l'avoir testé sur mon ordinateur. Il n'y avait aucun problème, tout fonctionné.
Je n'arrive pas à savoir d'ou vient le problème. Est il possible que cela soit un problème de langue?
Je vous remercie pour votre aide
Rébecca

P.S: je vous joints l'endroit du code où cela bug
 

Pièces jointes

  • probleme.jpg
    probleme.jpg
    51.4 KB · Affichages: 64
  • probleme.jpg
    probleme.jpg
    51.4 KB · Affichages: 66
  • probleme.jpg
    probleme.jpg
    51.4 KB · Affichages: 69

Cacou78

XLDnaute Nouveau
Re : Macro qui ne fonctionne pas dans d'autres pays

Comme j'ai l'impression que l'on ne voit pas bien dans l'image ou est le bug, je vous l'écrit ici

Construction du tableau croisé dynamique correspondant à la charge globale de l'équipe
With ActiveSheet.PivotTables("Tableau croisé dynamique2")
'les types de projets en colonne
With .PivotFields("Project Type")
.Orientation = xlColumnField
.Position = 1
End With
' les noms des projets en donnée de page
With .PivotFields("Project Name")
.Orientation = xlPageField
.Position = 1
End With
'on rajoute les differents mois en données
If t_charge = 2 Then
For I = 8 To DerCol
mois = Format(Worksheets("Synt_charge").Cells(1, I).Value, "mmmm-yy") 'regarde le format
.AddDataField .PivotFields(mois), "Sum " & mois, xlSum
Next I
Else
For I = 8 To DerCol
mois = Format(Worksheets("Synt_charge2").Cells(1, I).Value, "mmmm-yy") 'regarde le format
.AddDataField .PivotFields(mois), "Sum " & mois, xlSum

Next I
End If
 

chris

XLDnaute Barbatruc
Re : Macro qui ne fonctionne pas dans d'autres pays

Bonjour

Peut-être le nom du tableau : par défaut ce sera du type Pivot table 1 : renommer le TCD à la création pour éviter les noms par défaut.
 
Dernière édition:
G

Guest

Guest
Re : Macro qui ne fonctionne pas dans d'autres pays

Bonjour,

Personnellement je miserai sur le tiret dans le nom du mois "mmmm-yy" que je remplacerait par un "_" ou " ". Les conventions d'écriture des noms sont peut-être différentes d'un pays à l'autres. Certains caractères n'ayant pas partout la même signification.

Si tu tapes un nom de plage avec un tiret, excel le refuse.

A+
 
G

Guest

Guest
Re : Macro qui ne fonctionne pas dans d'autres pays

Re,

Ben, non:eek: Et ce, paraît-il depuis une mythologique histoire de tour de babel!

Mais dans ton code, rien de bien flagrant. Si ce n'est le '-'.
Peut-être aussi, l'évaluation de la date contenue en Cells(1, I) mais j'ai un doute.
Je ferais:

'Traduire explicitement en Date reconnue partout
Code:
dim dte as date
dte=Worksheets("Synt_charge").Cells(1, I)
et ensuite
mois = Format(dte, "mmmm_yy")

Le mieux serait de tester ta macro sur une machine configurée pour un pays anglo-saxon

A+
 
Dernière modification par un modérateur:

Cacou78

XLDnaute Nouveau
Re : Macro qui ne fonctionne pas dans d'autres pays

Je vous remercie, e vais essayer avec cela.

Par contre j'ai une autre question à vous poser, la j'ai forcé mon excel à se mettre en anglais et j'ai testé mon programme et il marche.

Alors pourquoi au états unis, ca ne fonctionne pas?

Je suis désolé de vous poser des questions aussi arriéré, mais j'ai appri le vba sur la tas , il ya même pas 3 mois.

MERCI
 
G

Guest

Guest
Re : Macro qui ne fonctionne pas dans d'autres pays

Re,

Ta question n'est pas du tout arriérée, bien au contraire et reflète un problème bien souvent rencontré par les développeurs. Mais avec ce que tu nous donnes là, c'est très difficile d'évaluer le pourquoi du comment.

Le fait que tu aies eu un retour négatif des états unis, ne présume pas du fait qu'elle est mauvaise au états unis. Peut-être s'agit-il d'une erreur de l'utilisateur, que sais-je encore?. Modification manuelle de Worksheets("Synt_charge2").Cells(1, I)?

Si tu fais un tableau croisé dynamique à partir de données source particulières, il faut protéger la feuille des données source de toutes modification inopinées. Au moins des cellules qui te serviront de base de nommage.

A+
 

Membres actuellement en ligne

Statistiques des forums

Discussions
312 611
Messages
2 090 226
Membres
104 453
dernier inscrit
benjiii88