Glossaire bilingue : petits problèmes de VBA

Bonjour le forum,

Je travaille actuellement sur un glossaire anglais-français que j'ai pu mettre en place grâce au code créé par Claude Dubois en 2010 sur ce forum. Je joins mon fichier et le fichier original à ce message. J'ai simplement adapté les couleurs mais je rencontre quelques difficultés :

  • - J'aimerais mettre les différents Interior.Colorindex (dans le module 1 et la Feuil1) en RGB mais ça m'affiche un message d'erreur... Cela me permettrait notamment de rendre la barre de recherche de droite, qui est inutilisable, invisible (comme dans le fichier original).
    - Lorsqu'on change de langue, un "a" s'affiche automatiquement. J'aimerais que la cellule reste vide ou bien avoir la possibilité de mettre du texte genre "Write here".
    - Enfin, lorsque l'on change de langue, la formule en cellule B3 change automatiquement ce qui fait que le mot "Définition" n’apparaît plus... J'aimerais que la =SI(C3="";"";"Définition") reste la même.

MERCI BEAUCOUP

39mon-glossaire.xlsm (79.11 Ko)

Bonjour

1/ pour le 'a ' dans la cellule C2 remplacer par 'Write here'

Range("C2") = "Write here"

du Module1

ci-dessous :

Sub ChangeLangue()
Dim Lg%
Lg = Range("C35214").End(xlUp).Row
Flag = True
    Application.ScreenUpdating = False
    Application.CutCopyMode = False
    Columns("C:C").Cut Destination:=Columns("V:V")
    Columns("D:D").Cut Destination:=Columns("C:C")
    Columns("V:V").Cut Destination:=Columns("D:D")
    Range("C5:E" & Lg).Name = "Base"
    Range("C5:C" & Lg).Name = "Col_C"
    Range("C5:D" & Lg).Name = "Mots"
    '---- tri ----
    Range("Base").Sort Key1:=Range("C5"), Order1:=xlAscending, Header:=xlNo, _
    OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

    Range("B1") = "=""C""&MATCH(CONCATENATE(C2,""*""),Col_C,0)+4"
    Range("C2").Interior.ColorIndex = 20
    Range("D2").Interior.ColorIndex = 20
Flag = False
    Range("C2") = "Write here"                        ' "a"    Demande vide   ou Write here
    Range("C3:D3").ClearContents
End Sub

crdlt,

André

Merci André !

J'avais pas vu cette ligne dans le code

re,

J'ai re-testé cela ne fonctionne pas

j'ai du oublié quelque chose de plus

Edit : faut re-ouvrir le classeur et cela fonctionne

crdlt,

André

Chez moi ça fonctionne c'est juste que du coup le message d'erreur "Cannot be found" s'affiche puisque "Write here" n'est pas dans le glossaire.

Mais je vais juste laisser la cellule vide Range("C2") = "", c'est plus simple

Re,

A tester aussi :se serai bien de mettre par double clic gauche on efface la cellule C2

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Sheets("Glossaire EN-FR").Range("C2").Value = ""
End Sub

Super merci !

Pour les couleurs en RGB, tu as une idée de ce qui cloche ?

EDIT : Même quand je prends une couleur parmi les 729 disponibles (https://www.excel-pratique.com/fr/vba/liste-couleurs-rgb.php), ça ne marche pas

Re,

ce que je vois dans le WorksheetsChange

        Range("Mots").Interior.ColorIndex = xlNone

et dans Sub AllerEn()

    Range("Base").Interior.ColorIndex = xlNone

xlNone aucune couleur

est-cela que tu parles ?

Non, je parle de

    Range("c2").Interior.ColorIndex = 20
    Range("d2").Interior.ColorIndex = 20

dans ChangeLangue et de

 Target.Interior.ColorIndex = 20

dans Worksheet_SelectionChange

C'est la couleur bleu très clair.

re,

essaye comme cela

Target.Interior.Color = RGB(0, 128, 192)

ztest333

Il me met ça

erreur

Arf désolé je te dis des bêtises c'est pour les userforms

c'est dans le Worksheetselectionchange exemple :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Flag Then Exit Sub
    If Not Application.Intersect(Target, Range("Mots")) Is Nothing Then
        If Target.Count > 1 Then Exit Sub
    Flag = True
        Range("Mots").Interior.ColorIndex = xlNone
        Cells(2, 3) = Cells(Target.Row, 3)
        Cells(2, 3).Activate
        Cells(3, 3) = Cells(Target.Row, 5)
        Target.Interior.ColorIndex = 6 ' jaune
   Range("C2").Interior.ColorIndex = 10 'Colorer la cellule C2 en bleu
    End If
    Flag = False
End Sub

Ah ok donc impossible d'utiliser RGB ? Parce que les 56 couleurs je connais mais je voulais une couleur bien particulière.

Merci en tout cas !


Bon du coup j'ai fait avec même si c'est pas le bleu que je voulais

Voilà le résultat.

Le seul truc qui me chiffonne encore c'est que le "Définition" de la cellule B3 disparaît quand on passe en anglais. Une solution ?

Merci

vba couleurs
8mon-glossaire.xlsm (209.99 Ko)

bonjour

pour definir une couleur avec RGB, ne pas utiliser .colorindex mais .color

.interior.color=RGB(120,1,245)

Merci çà fonctionne avec ta méthode cool

Génial ça marche Ci-joint le résultat final

Pour le "Définition" je vais juste enlever la formule donc... problème résolu !

Merci à vous deux !

Rechercher des sujets similaires à "glossaire bilingue petits problemes vba"