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

Macros et VBA Excel Discussion :

Deux boutons - 1 seule place à afficher


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 145
    Par défaut Deux boutons - 1 seule place à afficher
    Bonjour

    J'ai deux bouton sur ma feuille Excel. Si je clique sur celui en anglais, il doit affiché une phrase en anglais. Si je clique sur celui en français, il doit affiché une phrase en français. Peu importe le bouton, la phrase doit s'affiché à la même place. Je reprend du code d'un ancien utilisateur (sans information) donc un peu difficle au début. Il avait écrit une phrase en francais et en cliquant sur le bouton "Note de crédit" cela apparaissait sur la facture, (si j'ai bien compris le code la phrase est écrite sur la feuille excel et en cliquant sur le bouton, ca masque et démasque. On me demande d'écrire la même phrase en anglais si le client est anglais. Que faire

  2. #2
    Membre confirmé Avatar de mentat
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Août 2009
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Electrotechnicien
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2009
    Messages : 139
    Par défaut
    Salut

    Mon conseil serais :

    La solution la plus facile serait de crée deux bouton, un éffaçant la case et la remplissant avec la traduction en Français de ton text et l'autre éffaçant la case et la remplissant avec la traduction en anglais de ton text.

    Ensuite pour optimisé tu fais la même opération avec un bouton...

    Poste ton code déja...

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Bonjour

    Sans voir comment est conçu le classeur, il est malaisé de répondre d'une façon pertinente...

    Lorsque je suis confronté à ce genre de cas, je place une liste déroulante avec le choix des langue. En choisissant une langue dans la liste, je place une certaine valeur dans la cellule liée à cette liste, et je travaille avec des formules conditionnelles et/ou la fonction INDEX pour renvoyer le texte adéquat dans les cellules...

    Mieux encore, au choix du client, on va rechercher sa langue dans le signalétique, et c'est cela qui détermine le choix du message dans les cellules...

    A ce niveau-là, je ne me sers pas de VBA, le mécanisme est mis en place uniquement dans Excel. Mais il est bien entendu possible de renvoyer la valeur dans la cellule "langue" par VBA.

    Comme souvent, donc, un problème de conception du classeur bien avant d'être un problème VBA...

    Ok?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  4. #4
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 145
    Par défaut
    L'explication de Pierre Fauconnier est bonne, mais c'est juste une petite application maison pour la secrétaire, et elle fait ca seulement en fin de mois (de toute facon les client anglais comprennent très bien la phrase en fracais, mais loi gouvernementale pour un organisme para-gouvernemental oblige...).
    Voici le code utilisé
    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
    Sub noteDeCrédit()
     
        'Pour faire afficher la phrase Note de crédit
     
        Application.ScreenUpdating = False
        ActiveSheet.Unprotect Password:="FACTFIN"
        If Range("N60") < 0 Then
        Range("D7:L8").Select
        Selection.Font.ColorIndex = 0
        Else: Range("D7:L8").Select
        Selection.Font.ColorIndex = 2
        End If
        ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
            , AllowFormattingCells:=True, Password:="FACTFIN"
        Range("A1").Select
     
     
    End Sub

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Je persiste et signe, car je préfère de loin une bonne mise en place dans Excel qui facilitera d'autant plus la création d'un code VBA pérenne.

    J'ai créé le fichier joint en 5 minutes, donc, cette solution est parfaitement adaptée à une utilisation mensuelle d'une petite application maison... De plus, dans cet exemple, je n'ai aucune ligne de code VBA...

    A toi de choisir entre la simplicité d'Excel et une certaine rigidité de VBA.

    http://fauconnier.developpez.com/for...ultilingue.xls
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  6. #6
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 145
    Par défaut
    Oui, c'est bien, mais ce n'est pas comme ca que ca fonctionne ici. Si on reprendrait au début, ce serait une bonne solution. Mais les série de copie de facture sont ailleurs (dansun autre dossier). Mon patron veut juste que je cré un bouton pour écrire "Credit Note". Le bouton pour écrire "Note de crédit" existe déjà.

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Je ne vois pas trop en quoi le code que tu as donné permet cela, ou plutôt, sans le classeur, il va falloir jouer aux devinettes.

    Le code que tu donnes modifie l'encre d'une cellule, c'est-à-dire la couleur tu texte dans la cellule. Je suppose que D7:L8 correspond à une plage qui contient le mot à afficher ou cacher. Je suppose aussi qu'il y a donc une autre plage à afficher ou cacher...

    Quoi qu'il en soit, ton code est pour le moins très bizarre, et nonobstant ce que j'ai dit plus haut, il faudrait l'adapter et le faire correspondre à ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If Range("N60") < 0 Then
        Range("D7:L8").Font.ColorIndex = 0
        Else
        Range("D7:L8").Font.ColorIndex = 2
    End If
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  8. #8
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 145
    Par défaut
    Oui, c'est ce que je viens de découvrir. Il va falloir que j'insère du code.
    Si je clique sur le bouton français, "Note de crédit" va être affiché. Si je clique sur le bouton anglais, "Credit note" va être affiché. Je vais enlevé le code qui joue avec la couleur des cellules, pour le remplacer par du code qui va écrire directement la phrase. Comme mes talents de programmeurs sont limité, je vais utiliser la méthode d'enregistrement de macro pour enregistrer ce que je fais et ensuite aller voir le code pour le mettre dans le bouton.

  9. #9
    Membre confirmé Avatar de mentat
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Août 2009
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Electrotechnicien
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2009
    Messages : 139
    Par défaut
    Je ne sais pas si c'est ce que tu recherche mais voila un petit quelque chose...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub ToggleButton1_Click()
     
    If ToggleButton1.Value Then       'si le bouton est actif
    Worksheets("Feuil1").Range("B5").Value = "Texte en Français"  'la valeur de la cellule B5 de la feuil 1 est en Français
    Else
    Worksheets("Feuil1").Range("B5").Value = "Texte In English"     'Sinon de la valeur de la cellule B5 de la feuil 1 est en Anglais
    End If
     
    End Sub
    Attention il te faut crée un petit bouton sur ta feuille.

  10. #10
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 145
    Par défaut
    C'est ca que c'est supposé donner
    Images attachées Images attachées  

  11. #11
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 145
    Par défaut
    Oui mentat, il faut créer deux bouton. Regarde mon exemple et le code que j'ai mis dans un autre message

  12. #12
    Membre confirmé Avatar de mentat
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Août 2009
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Electrotechnicien
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2009
    Messages : 139
    Par défaut
    Je t'es fais ça avec un seul bouton... c'est encore mieux.. non?

  13. #13
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 145
    Par défaut
    Il y a le bouton "Note de crédit" et le bouton "Credit Note"

    Mentat, je fais un essai avec ton code et te redonne des nouvelles.

  14. #14
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Honnêtement, créer du code VBA pour cela, ça n'a pas beaucoup de sens.

    Une liste de validation sur D7:L8 avec juste les deux choix possibles, et hop, le tour est joué...

    A l'impression, du moment que la cellule fusionnée ne soit pas sélectionnée, on ne verra pas la flèche...

    Je ne comprends pas pourquoi chercher midi à quatorze heures



    Ou alors, c'est imposé pour un exercice donné par un prof qui choisit très mal ses exemples, ou pour un élève qui comprend très mal l'exercice...
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  15. #15
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 145
    Par défaut
    Avec l'exemple que vous donner M. Fauconnier, je comprends mieux votre expl;ication. Et je ne suis ni un prof, ni un étudiant. Je travaille avec Crystal Report, mais parfois on me demande de faire des choses avec laquelle je suis plus ou moins à l'aise (le codage de Crystal et celui d'excel n'est pas vraiment pareil). J'apprend excel sur le tas lorsque je dois faire une macro ou autre chose requise par les autres personnes. J'y vais avec les connaissances que j'ai. C'est pourquoi j'utilise ce forum, pour me dépanner. Je suis bien content de l'avoir trouvé. Jusqu'à maintenant à chaque fois que j'y suis venu, j'ai réussit à faire ce que je voulait.
    Bon je vais essayer votre exmple et je vous tiens au courant.
    Je vous dit tout de suite qu'il y a du code ailleurs dans la feuille excel. Ets-ce que cela peut nuire à son bon fontionnement si j'enlève mon code pour faire comme votre exemple?

  16. #16
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Non, enlever le code VBA (précédemment créer pour l'objectif poursuivi ici) ne nuit pas à la mise en place de la solution que je propose...

    Une règle d'or: Ce que Excel peut faire, laisse-le faire par Excel. J'aime beaucoup le VBA, mais si je peux mettre en place la solution dans Excel pour soulager le VBA, je n'hésite pas un seul instant, car pour optimiser du VBA et pour qu'il fonctionne sans plantage (la fenêtre de débogage qui s'ouvre devant l'utilisateur qui n'y connait rien, c'est tout sauf "stressless" ).

    Et dans ton cas et pour ce que tu as expliqué, VBA n'apportera que lourdeurs et risques d'erreurs...

    N'hésite surtout pas à revenir, pour ce problème ou pour d'autres... C'est par la pratique et les erreurs que cela rentre

    http://fauconnier.developpez.com/for...creditnote.xls
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  17. #17
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 145
    Par défaut
    La liste déroulante ne fonctionne pas.

  18. #18
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Je ne comprends pas ce que tu veux dire par "ne fonctionne pas"

    Tu sélectionnes la cellule fusionnée, tu cliques sur la flèche qui apparaît à droite, et tu choisis parmi les deux propositions... (Je viens de tester en téléchargeant le fichier)
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  19. #19
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 145
    Par défaut
    Vous choississez Zone de liste Déroulante dans les outils? Et vous faites comment pour entrer les deux choix? Je suis les instructions de l'aide et ca ne marche pas

  20. #20
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Non, c'est une liste de validation directement dans la cellule

    <XL2007 => Données/Validation
    XL2007: Onglet Données, groupe Outils de données, Validation de données

    Là, choisir Liste, puis saisir les deux valeurs séparées par un point-virgule.

    Tu peux voir ce que j'ai fait en sélectionnant d'abord la cellule dans le fichier que j'ai posté, puis en procédant comme expliqué plus haut.

    Validation de données en 2007



    Et en 2003
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Comment afficher un Alert ayant les deux boutons "oui" et "non" ?
    Par andrianiaina dans le forum Développement Mobile en Java
    Réponses: 0
    Dernier message: 28/04/2011, 16h27
  2. [WD14] Deux boutons validation dans une seule fenêtre
    Par ilalaina dans le forum WinDev
    Réponses: 4
    Dernier message: 29/09/2009, 17h05
  3. Deux boutons de type submit pour un seul formulaire
    Par wise_mind dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 25/06/2009, 10h59
  4. [LabVIEW 8.6]Deux boutons pour une seule commande.
    Par bobico dans le forum LabVIEW
    Réponses: 4
    Dernier message: 08/06/2009, 17h03
  5. deux bouton submit pour un seul formulaire
    Par griese dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 16/06/2006, 12h56

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