Microsoft 365 sheets(" ").select

Amymone

XLDnaute Nouveau
Bonsoir le forum

Je reviens vers vous pour une demande spéciale concernant le
" Sheets("janvier").Select "
Sur un système d'exploitation Français c'est OK mais dès que je passe sous un système d'exploitation Anglais ça ne vas pas car c'est january, quel est la bonne solution?
Merci
 

job75

XLDnaute Barbatruc
Bonjour Amymone, Patrice33740,
Certes, mais si l'onglet est janvier et que je passe sur un système d'exploitation Anglais de facto j'aurai January est le sheets Select ne fonctionnera pas comme déjà constaté
Allons allons, la feuille "Janvier" restera toujours "Janvier".

Mais méditez sur cette macro qui fonctionne quelle que soit la langue de l'ordi :
VB:
Sub Activer_Feuille_Mois()
Dim mois, m$
mois = Array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre")
m = mois(Month(Date) - 1)
On Error Resume Next
Sheets(m).Activate
If Err Then MsgBox "La feuille '" & m & "' n'existe pas..."
End Sub
A+
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Il n'y a pas de raison à ce que les noms des feuilles changent dans un classeur quand on le fait relire par une version Excel d'une langue différente. Tout au plus y aurait-il un problème si, au lieu de le spécifier sous la forme constante que vous dites, le nom de la feuille désignée était obtenu d'après une date.
Dans ce cas le plus simple serait de la désigner plutôt d'après son numéro d'ordre positionnel.
 

Amymone

XLDnaute Nouveau
Bonsoir à tous

J'ai pas très bien saisi ou peut-être que je m'explique mal là je conçois; car je suis novice en vba


1614446653233.png
 

Amymone

XLDnaute Nouveau
Non job75 c'est ce que tente de vous dire, c'est le même fichier mais dès que je bosse dessus au taf les onglets sont en Anglais car la formule est:
Private Sub Worksheet_Activate()
Me.Name = Me.Range("B4").Text
End Sub
donc le sheet("janvier").select ne fonctionne pas car la feuille est "January"
 

job75

XLDnaute Barbatruc
Ça laisse toujours la possibilité de désigner la feuille par sa position.
Oui, ou par son nom trouvé dans des listes comme ici :
VB:
Sub Activer_Feuille_Mois()
Dim mois1, mois2, m1$, m2$
mois1 = Array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre")
mois2 = Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")
m1 = mois1(Month(Date) - 1)
m2 = mois2(Month(Date) - 1)
On Error Resume Next
Sheets(m1).Activate
If Err Then Err = 0: Sheets(m2).Activate
If Err Then MsgBox "La feuille '" & Application.Proper(Format(Date, "mmmm")) & "' n'existe pas..."
End Sub
 

Discussions similaires

Réponses
12
Affichages
529

Statistiques des forums

Discussions
312 229
Messages
2 086 423
Membres
103 206
dernier inscrit
diambote