[Résolu]MS Excel 2010 en anglais incompatible avec une macro construite en français

Dut

XLDnaute Nouveau
Bonjour,

J'ai construit un fichier initialement destiné à des utilisateurs disposant d'une version FR. Finalement d'autres personnes voudraient utiliser ce fichier mais celles-ci dispose d'une version US et rencontrent certaines erreurs que je parviens pas à reproduire chez moi.

Par exemple, la ligne 2 de la procédure ci-dessous (set plage = ...) leur provoque une erreur alors que cela n'a jamais été le cas chez moi :
Code:
Public Sub set_criteria_plages()
    Dim i As Long
    [COLOR="#FF0000"]Set plage = Union(Sheets("Accueil").Range("multiple_graph_checkbox"), Sheets("Accueil").Range("group_charts_checkbox"), Sheets("Accueil").Range("Phases_list"), Sheets("Accueil").Range("Global_Phases_list"))[/COLOR]
    For i = 1 To ActiveWorkbook.Names.Count
        If Exist_list("Criteria" & i) = False Then Exit For
        Set plage = Union(plage, Sheets("Accueil").Range("Criteria" & i))
    Next i
End Sub

Je suis en attente du message exact d'erreur.
Peut-être avez-vous déjà une piste à me donner ?
 
Dernière édition:

Dut

XLDnaute Nouveau
Re : MS Excel 2010 en anglais incompatible avec une macro construite en français...

OK, je leur demande de tester et je reviens demain te dire si ça résoud le problème (les utilisateurs sont à Singapour et en Australie).
Merci.
 

Dut

XLDnaute Nouveau
Re : MS Excel 2010 en anglais incompatible avec une macro construite en français...

Malheureusement le problème n'a pas été résolu par la solution de pierrejean.

Message d'erreur :
Runtime error 1004
Method *'Sheets' of object '_Global' has failed

Pourtant ils ne nomment pas la feuille "Accueil". C'est moi qui leur fournit un fichier qu'ils se contentent d'ouvrir...
 

eriiic

XLDnaute Barbatruc
Re : MS Excel 2010 en anglais incompatible avec une macro construite en français...

Bonjour tout le monde,

Autre idée : s'assurer qu'il ne s'agisse pas d'une erreur de manip et que ce classeur soit bien celui actif lorsqu'ils lancent la macro.

eric
 

eriiic

XLDnaute Barbatruc
Re : MS Excel 2010 en anglais incompatible avec une macro construite en français...

Re,

S'ils ont 2 classeurs d'ouverts et que c'est le mauvais d'actif (en avant plan), la macro va vouloir utiliser la feuille et le nom dans celui-ci et ne les trouvera pas.
Pour t'en affranchir précise le nom du workbook à utiliser dans la macro.

eric
 

Dut

XLDnaute Nouveau
Re : MS Excel 2010 en anglais incompatible avec une macro construite en français...

Ok je vois.
J'essaie de faire la correction pour qu'ils testent à nouveau cette nuit et je vous tiens informés.

(Merci de votre aide)
 

Dut

XLDnaute Nouveau
Re : MS Excel 2010 en anglais incompatible avec une macro construite en français...

Bonjour,

Voici le code de la page qui me sert de test :
Code:
Option Explicit
Private plage As Range

Public Sub set_criteria_plages()
    Dim i As Long
    Set plage = Application.Union(ThisWorkbook.Sheets("Accueil").Range("macase1"), ThisWorkbook.Sheets("Accueil").Range("macase2"), ThisWorkbook.Sheets("Accueil").Range("macase3"), ThisWorkbook.Sheets("Accueil").Range("mescases4"))
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim isect As Range
    If plage Is Nothing Then set_criteria_plages
    Set isect = Application.Intersect(Selection, plage)
    If Selection.Count = 1 Then If Not isect Is Nothing Then If Selection.Value = "X" Then Selection.Value = "" Else Selection.Value = "X"
End Sub

Aux dernières nouvelles la procédure set_criteria_plages avait l'air de fonctionner.
Malheureusement le code s'arrêtait juste un peu plus loin sur la ligne "Set isect = ..." (Invalid procedure call or argument)

Je comptais remplacer "Selection" par "Target" mais mon utilisateur est parti en vacances pour 2 semaines...:cool:
Du coup je ne saurai pas tout de suite si ça fonctionne ! :p
 

Dut

XLDnaute Nouveau
Re : MS Excel 2010 en anglais incompatible avec une macro construite en français...

Avec beaucoup de retard, voici le résultat final qui fonctionne avec toutes les versions d'Excel rencontrées chez mon client.
=> il fallait bien mettre "Target"

Merci à tous pour votre aide !

Code:
Option Explicit
 Private plage As Range
 
Public Sub set_criteria_plages()
     Dim i As Long
     Set plage = Application.Union(ThisWorkbook.Sheets("Accueil").Range("macase1"), ThisWorkbook.Sheets("Accueil").Range("macase2"), ThisWorkbook.Sheets("Accueil").Range("macase3"), ThisWorkbook.Sheets("Accueil").Range("mescases4"))
 End Sub
 
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     Dim isect As Range
     If plage Is Nothing Then set_criteria_plages
     Set isect = Application.Intersect(Target, plage)
     If Target.Count = 1 Then If Not isect Is Nothing Then If Target.Value = "X" Then Target.Value = "" Else Target.Value = "X"
 End Sub
 

Statistiques des forums

Discussions
312 448
Messages
2 088 505
Membres
103 873
dernier inscrit
Sabin