Je suis en train de programmer une macro qui va être utilisé sur des Excel en espagnol et sur des excel en français. Voici le problème que je rencontre avec cette partie de macro :
selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=ET(gauche($C3;10)=""TEST"")"
selection.FormatConditions(selection.FormatConditions.Count).SetFirstPriority
With selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 49407
.TintAndShade = 0
End With
Sur ma machine en français, cela fonctionne très bien et la mise en forme conditionnelle de mes cellules s'effectue. Cependant sur un excel en espagnol, ne reconnaissant pas les formules Et et gauche, la mise en forme conditionnelle ne fonctionne pas.
et en fonction de la réponse, utiliser soit la syntaxe française soit la syntaxe espagnole.
Un exemple de code pour récupérer la langue système adapté d'un exemple trouvé ici :
Code:
Sub Malang()
Select Case _
Application.LanguageSettings.LanguageID _
(msoLanguageIDInstall)
Case 1036
MsgBox "Français"
Case 1033
MsgBox "Englais"
Case 3082
MsgBox "Espagnol"
Case Else
MsgBox "Ni Anglais , ni Français, ni Espagnol"
End Select
End Sub
Merci david pour ta réponse, même si elle ne fonctionne pas sur mon classeur, j'ai pu trouver grâce à tes indications la solution suivante :
x = Application.International(xlCountryCode)
If x = 33 Then 'ou 33 est la version française
selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=ET(gauche($C3;10)=""ALTA VISTA"")"
selection.FormatConditions(selection.FormatConditions.Count).SetFirstPriority
With selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 49407
.TintAndShade = 0
End With
selection.FormatConditions(1).StopIfTrue = False
Else ' donc pour toutes les autres langues, c'est une version espagnole...
selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=Y(izquierda($C3;10)=""ALTA VISTA"")"
Tu veux dire que le code ne fonctionne pas sur ton ordinateur ou que tu n'as pas réussi à l'adapter ?
Chez moi, le message "Français" s'affiche pourtant.
A+
Le message
""Ni Anglais , ni Français, ni Espagnol"
apparaît alors que je travaille sur une machine française.
De plus je ne comprends pas la différence entre :
Application.LanguageSettings.LanguageID _
(msoLanguageIDInstall)
et
Application.International(xlCountryCode)
Autre question que je me pose (je suis très novice en VBA), comment puis-je voir le résultat d'une instruction directement sur VBA ?
Re
teste cette macro et dis-nous ce qu'elle te ramène comme valeur :
Code:
Sub test()
MsgBox Application.LanguageSettings.LanguageID(msoLanguageIDInstall)
End Sub
Pour voir la différence entre les 2, souligne chaque propriété et appuie sur la touche F1 du clavier : tu auras les explications
Application.LanguageSettings : cette propriété renvoie l'objet LanguageSettings qui contient des informations sur les paramètres de langue de Microsoft Excel.
Application.International : cette propriété renvoie l'objet LanguageSettings qui contient des informations sur les paramètres de langue de Microsoft Excel.
pas sûr d'avoir compris ton attente...en utilisant une MsgBox comme dand mon code ou un debug.Print (voir l'aide Excel touche F1 ou faire une recherche sur le Net).
A+
teste cette macro et dis-nous ce qu'elle te ramène comme valeur :
Code :
Sub test()
MsgBox Application.LanguageSettings.LanguageID(msoLanguageIDInstall)
End Sub
Re
Tes paramètres de langue de Microsoft Excel correspondent à l'allemand.
Regarde ce lien (le code est pour Access mais le tableau te donne les différents n° de langue.
Et si tu comprends l'anglais, cf.ici également.
A+
Bonsoir à tous,
J'utilise une version française d'Excel et je rencontre le problème suivant dans une macro crée sous VBA :
Pour imprimer un document PDF, je lance une macro qui dans son contenu a besoin du nom de l’imprimante :
Nom_impr = "PDFCreator sur Ne0" & Port & ":"
Parfois, pour des personnes qui ont des versions Excel en anglais ou en allemand, le mot sur doit être remplacé respectivement par on ou auf
Existe t’il donc un moyen pour que ces mots changent automatiquement en fonction de la version d’Excel ?
Au mieux, Excel détecterai la langue du logiciel et choisirai le mot adéquat.
Au pire, on peut aller chercher le bon mot dans une cellule d'excel mais je ne sais pas comment l'intégrer dans Nom_impr
casper64
Il est d'usage de créer sa propre discussion pour poser sa question
(voir la charte du forum)
Quoique avec l'utilisation de Split, ce ne sera pas cette fois-ci peut-être pas nécessaire )
Code:
Sub a()
Nom_impr = "PDFCreator sur Ne0"
MsgBox Split(Nom_impr)(UBound(Split(Nom_impr)))
Nom_impr = "PDFCreator on Ne0"
MsgBox Split(Nom_impr)(UBound(Split(Nom_impr)))
End Sub