IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Un petit coup de pouce pour actualiser des champs en fonction d'une listbox


Sujet :

Excel

  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2009
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 20
    Points : 8
    Points
    8
    Par défaut Un petit coup de pouce pour actualiser des champs en fonction d'une listbox
    D'abord Bonjour (c'est mon premier sujet sur le forum!),
    Voilà j'ai parcouru le forum, mais je n'ai pas trouvé ce que je cherchais.

    Alors concernant mon problème:
    Je veux faire un clsseur de calcul pour un projet de de mon stage. Comme c'est la boîte A***OM (je sais pas si je peux citer, et d'ailleurs on s'en fiche), qui travaille à l'internationnal, j'ai merais proposer l'option du choix de langue à l'utilisateur.
    Pour ça sur la feuille 1 j'ai mis une listbox qui contiendra les différentes langues. Je veux que le choix de la listbox influe sur les valeurs des intitulés des cellules de la feuille excel. Là je bloque sur la fonction qui me permet d'actualiser. Donc j'aurais besoin de petits conseils...
    Voilà la partie de mon code qui me pose problème:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    Option Explicit
    Option Base 1
     
    Public Const NBLANG As Integer = 3
    Sub Langue()
        Dim Montableau(20, NBLANG) As String
        Montableau(1, 1) = "Langue"
        Montableau(1, 2) = "Language"
        Montableau(1, 3) = "Sprache"
        Montableau(2, 1) = "Projet"
        Montableau(2, 2) = "Project"
        Montableau(2, 3) = "Projekt"
        Montableau(3, 1) = "Nom"
        Montableau(3, 2) = "Name"
        Montableau(3, 3) = "Name"
        Montableau(4, 1) = "Date"
        Montableau(4, 2) = "Date"
        Montableau(4, 3) = "Datum"
        Montableau(5, 1) = "Auteur"
        Montableau(5, 2) = "Author"
        Montableau(5, 3) = "Autor"
        Montableau(6, 1) = "Commentaire"
        Montableau(6, 2) = "Comment"
        Montableau(6, 3) = "Kommentar"
        Montableau(7, 1) = "Locomotive"
        Montableau(7, 2) = "Locomotive"
        Montableau(7, 3) = "Lokomotive"
        Montableau(8, 1) = "Nom"
        Montableau(8, 2) = "Name"
        Montableau(8, 3) = "Name"
        Montableau(9, 1) = "Poids"
        Montableau(9, 2) = "Weight"
        Montableau(9, 3) = "Masse"
        Montableau(10, 1) = "Formule"
        Montableau(10, 2) = "Formula"
        Montableau(10, 3) = "Formel"
        Montableau(11, 1) = "Nombre d'essieux moteurs"
        Montableau(11, 2) = "Number of motorised axles"
        Montableau(11, 3) = "Anzahl von angetriebene Radsätze"
        Montableau(12, 1) = "Nombre total d'essieux"
        Montableau(12, 2) = "Total number of axles"
        Montableau(12, 3) = "Anzahl von Radsätze"
        Montableau(13, 1) = "Batterie"
        Montableau(13, 2) = "Battery"
        Montableau(13, 3) = "Batterie"
        Montableau(14, 1) = "Nom"
        Montableau(14, 2) = "Name"
        Montableau(14, 3) = "Name"
        Montableau(15, 1) = "Nombre de cellules"
        Montableau(15, 2) = "Number of cells"
        Montableau(15, 3) = "Anzahl der Zellen"
        Montableau(16, 1) = "Tension par cellule"
        Montableau(16, 2) = "Cell's tension"
        Montableau(16, 3) = "Spannung der Zelle"
        Montableau(17, 1) = "Energie par cellule"
        Montableau(17, 2) = "Cell's energy"
        Montableau(17, 3) = "Energie der Zelle"
        Montableau(18, 1) = "Generateur"
        Montableau(18, 2) = "Generator set"
        Montableau(18, 3) = "Generator set"
        Montableau(19, 1) = "Nom"
        Montableau(19, 2) = "Name"
        Montableau(19, 3) = "Name"
        Montableau(20, 1) = "Puissance nominale"
        Montableau(20, 2) = "Nominal Power"
        Montableau(20, 3) = "Nominale Leistung"
     
        If Feuil1.Langage.Value = "Français" Then
            Feuil1.Cells(3, 1) = Montableau(1, 1)
            Feuil1.Cells(5, 1) = Montableau(2, 1)
            Feuil1.Cells(6, 1) = Montableau(3, 1)
            Feuil1.Cells(7, 1) = Montableau(4, 1)
            Feuil1.Cells(8, 1) = Montableau(5, 1)
            Feuil1.Cells(9, 1) = Montableau(6, 1)
            Feuil1.Cells(11, 1) = Montableau(7, 1)
            Feuil1.Cells(12, 1) = Montableau(8, 1)
            Feuil1.Cells(13, 1) = Montableau(9, 1)
            Feuil1.Cells(14, 1) = Montableau(10, 1)
            Feuil1.Cells(15, 1) = Montableau(11, 1)
            Feuil1.Cells(16, 1) = Montableau(12, 1)
            Feuil1.Cells(18, 1) = Montableau(13, 1)
            Feuil1.Cells(19, 1) = Montableau(14, 1)
            Feuil1.Cells(20, 1) = Montableau(15, 1)
            Feuil1.Cells(21, 1) = Montableau(16, 1)
            Feuil1.Cells(22, 1) = Montableau(17, 1)
            Feuil1.Cells(24, 1) = Montableau(18, 1)
            Feuil1.Cells(25, 1) = Montableau(19, 1)
            Feuil1.Cells(26, 1) = Montableau(20, 1)
        ElseIf Feuil1.Langage.Value = "English" Then
            Feuil1.Cells(3, 1) = Montableau(1, 2)
            Feuil1.Cells(5, 1) = Montableau(2, 2)
            Feuil1.Cells(6, 1) = Montableau(3, 2)
            Feuil1.Cells(7, 1) = Montableau(4, 2)
        ElseIf Feuil1.Langage.Value = "Deutsch" Then
            Feuil1.Cells(3, 1) = Montableau(1, 3)
            Feuil1.Cells(5, 1) = Montableau(2, 3)
            Feuil1.Cells(6, 1) = Montableau(3, 3)
            Feuil1.Cells(7, 1) = Montableau(4, 3)
        End If
    End Sub
    Je me demandais si il ne fallait pas que je crée une autre fonction qui actualise la valeur si on change, mais je sèche sur le code (un exemple me suffirait).
    Si vouv voyez pas trop où je veux en venir, je peux reformuler mes explications (c'est pas toujours clair de faire comprendre ce qu'on veut à quelqu'un d'autre)

    Merci d'avance

  2. #2
    Futur Membre du Club
    Inscrit en
    Mai 2009
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 20
    Points : 8
    Points
    8
    Par défaut Modif
    J'ai rajouté sur la feuille Excel un bouton de commande OK, avec le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub CmdBt_Click()
    Call Langue
    End Sub
    Mais je trouve pas ça très élégant, je voudrais que la langue s'actualise sans qu'on ai besoin d'un bouton OK, je uste en sélectionnant la langue dans la Listbox

  3. #3
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 353
    Points
    34 353
    Par défaut
    Bonjour,
    bienvenue sur DVP
    bien qu'ici l'élégance ne soit pas l'objectif premier, tu peux dans un premier temps utiliser l'événement AfterUpdate de ta listbox.
    D'auter part, concernant la fonction Langue, tu peux regarder la ligne
    J'en profite pour t'indiquer quelques liens intéressants :
    - une liste de tutoriaux :
    http://excel.developpez.com/cours
    - une liste de livres
    http://excel.developpez.com/livres
    - une
    http://excel.developpez.com/faq

    N'hésite pas à nous poser d'autres questions si tu rencontres un point bloquant

  4. #4
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonjour elombre, jpcheck, le forum,

    Perso, je pensai simplement à l'évènement click
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub langage_Click()
    langue
    End Sub
    comme je ne sais pas si la listbox est intégrée à un USF, à adapter

  5. #5
    Membre émérite

    Homme Profil pro
    Technicien Métrologie R&D
    Inscrit en
    Janvier 2007
    Messages
    1 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Métrologie R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 610
    Points : 2 523
    Points
    2 523
    Billets dans le blog
    1
    Par défaut
    sans passer par VBA
    c'est possible avec un tableau langue (sur un feuille même masquées) il suffit de nommé le tableau (langue par exemple )
    après le choix du liste box te renvoies un numéro de colonne dans laquelle est la langue sélectionnée. un simple recherchev dans les cellules te donnes le texte

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    num  français   anglais   allemand   russe 
            2            3         4         5
    1      oui         yes      ya        da
    2      non         no       nein     niet
    3    bonjour     hello    bbppfff   rebpfff
    les numero horizontaux sont les numéros de colonnes
    pour l'exemple linguistique désolé mais ma polyglotie s'arrête au français


    un petit tableau choix
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    français 2
    anglais 3
    allemend 4
    etc...
    le choix de la langue
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    recherchev (liste deroulante;choix;2;faux)
    les entêtes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    recherchev(x;langue;reponse;faux)

  6. #6
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 133
    Points : 160
    Points
    160
    Par défaut Possibilite sous forme index
    Bonjour


    J avais fait ce type d'internationalisation dans un classeur

    Le fichier ci-joint ilustre la fonction d'index

    Si cela convient il suffira d'adpater dans votre projet .


    Fichiers attachés Fichiers attachés

  7. #7
    Futur Membre du Club
    Inscrit en
    Mai 2009
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 20
    Points : 8
    Points
    8
    Par défaut ça marche!
    Salut à tous,
    Je vous remercie pour ces réponses rapides et variées. Comme je suis pas un expert de VBA et d'excel ça me permet d'avoir un aperçu des différentes solutions.
    Bon je pense que j'ai ce que je veux pour les langues, maintenant je vais m'attaquer au coeur de mon projet, les calculs énergétiques... Mais bon ce sera l'occasion de prochains posts.


    @ jpcheck: je te remercie pour les liens, j'avais déjà jetter un coup d'oeuil et les cours me servent pas mal (je me suis aussi acheter le livre Excel et VBA de Mikaël Bidault). J'avais pas pensé à select case, je vais regarder ça.

    @casefayere: en fait c'est la commande que je cherchais je te remercie, ça marche comme je voulais que ça marche.

    @Daranc et Lynx92260: je pensais en fait pas utiliser trop les tableau excel (en fait je veux avoir un maximum de code, pour pouvoir bloquer les actions du futur utilisateur, et aussi regrouper tout au même endroit pour pouvoir faire des modifs ultérieure). Par contre je connaissais pas toutes ces fonctions, elles me serviront surement plus tard. D'ailleurs INDEX est une fonction de Excel,non? Parceque je trouve pas de code VBA dans le fichier de Daranc.

  8. #8
    Membre émérite

    Homme Profil pro
    Technicien Métrologie R&D
    Inscrit en
    Janvier 2007
    Messages
    1 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Métrologie R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 610
    Points : 2 523
    Points
    2 523
    Billets dans le blog
    1
    Par défaut
    index est une fonction d'excel en effet mais rendons à cesar ce qui appartient à lynx92260 (ou le contraire)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Besoin d'un petit coup de pouce pour mon mémoire
    Par Nicolas_Mktg dans le forum Présentations
    Réponses: 0
    Dernier message: 28/06/2012, 17h56
  2. [Drupal] Drupal 6 - Petit coup de pouce pour le début
    Par exode785 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 08/04/2011, 00h46
  3. [AC-2007] Actualisation des champs en fonction d'une liste déroulante
    Par cool17 dans le forum IHM
    Réponses: 2
    Dernier message: 05/04/2010, 20h31
  4. j'ai besoin du petit coup de pouce pour démarrer
    Par metou2703 dans le forum C++
    Réponses: 12
    Dernier message: 21/11/2008, 14h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo