Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
 

Patrice33740

XLDnaute Impliqué
Bonjour,

"Janvier", c'est le nom de la feuille.
Que tu utilises une version française ou une version anglaise d'Excel, un système d'exploitation français ou anglais, le nom de la feuille reste le même : celui qui à été défini.
 

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.
 

Dranreb

XLDnaute Barbatruc
Vous montrez des bouts de projets VBA différents, appartenant donc à des classeurs différents.
Mais dans les deux Worksheets(1) désignerait la 1ère feuille quelle que soit son nom.
Worksheets(Month(Date)) aussi, si on est en janvier.
Bonjour @job75
 

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
573
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…