Déterminer une Macro selon contenu d'une cellule

Bonjour à tous

Je bugue sur un petit soucis concernant le choix de langue dans un tableur.

Je peux en effet choisir 3 langues avec des Macros :

  • Langue_DE
  • Langue_FR
  • Langue_IT

A l'enregistrement de mon fichier partagé - fonction SAVE - j'oblige la sauvegarde sur la LANGUE_DE actuellement…

(call langue_DE)

Je souhaiterais pouvoir déterminé dans une feuille paramètres la langue du fichier (dans un menu déroulant)

Par exemple en cellule A1 (soit deutsch, français, italiano)

Selon le choix dans paramètres… la macro devrait s'adapter…

Si Sheets("Settings").Range("A1") = "deutsch" alors Call Langue_DE

Si Sheets("Settings").Range("A1") ="français" alors Call Langue_FR

Si Sheets("Settings").Range("A1") ="italiano" alors Call Langue_IT

Il me manque le "petit truc" pour que cela fonctionne….

D'avance merci pour vos précieuses contributions.

Cordialement

Willau

Bonjour,

Une proposition à adapter.

Elle suppose que la liste de validation soit dans la feuille Settings

Cdlt.

Option Explicit
'Module de la feuille Settings
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "^$A$1" And Not IsEmpty(Target) Then
        Select Case Target.Value
            Case "deutsch": Call Langue_DE
            Case "français": Call Langue_FR
            Case "italiano": Call Langue_IT
        End Select
    End If
End Sub

Bonjour Jean-Eric

Merci pour la prompte réponse.

Mon tableur dispose de 3 boutons d / f / et i (pour chaque langue 1 - comme sur un site web).

L'utilisateur peut donc se déplacer dans les différents onglets et choisir la langue d'utilisation.

Ce sont ces boutons qui actionnent la modification de langue lors de la "navigation"...

Par contre, comme il s'agit d'un fichier partagé, je souhaite qu'à chaque enregistrement (ou mise à jour), ce soit la langue inscrite dans les settings qui soit actualisée et sauvegardées… Dans ce cas, le "Worksheet_Change" n'est donc pas nécessaire. La langue de base sera modifiée 1 voire 2 fois par année uniquement… La langue de navigation quant à elle sera modifiée selon chaque utilisateur.

Merci néanmoins pour ces première lumières… je vais essayer de trouver une solution avec les éléments de réponse que tu m'as fournis. Une première idée peut être ci-dessous : ???

Private Sub LangueDeBase ()

If Target.Address = "Sheets("Settings").Range("A1"). And Not IsEmpty(Target) Then

Select Case Target.Value

Case "deutsch": Call Langue_DE

Case "français": Call Langue_FR

Case "italiano": Call Langue_IT

End Select

End If

End Sub

Et pour action de sauvegarde ou mise à jour :

Sub Save ()

Call LangueDeBase

ThisWorkbook.Save

End Sub

Encore merci !!

Cordialement

Willau

Rechercher des sujets similaires à "determiner macro contenu"