Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > IHM
IHM Ce forum est dédié aux questions relatives à la création de formulaires et d'états, avec ou sans code VBA, et macros.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/05/2011, 16h12   #1
Membre du Club
 
Femme
Développeur informatique
Inscription : septembre 2008
Messages : 51
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 44
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : septembre 2008
Messages : 51
Points : 49
Points : 49
Par défaut Ruban caractères accentués

Bonjour à tous

Dans un ruban personnalisé, les caractères accentués ne s'affichent pas correctement (attribut label). Problème d'encodage ? comment le résoudre ? ou le contourner ?

Merci d'avance pour vos tuyaux

LilyX
LilyX est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2011, 08h26   #2
Membre du Club
 
Femme
Développeur informatique
Inscription : septembre 2008
Messages : 51
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 44
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : septembre 2008
Messages : 51
Points : 49
Points : 49
Incompréhensible mais bonne nouvelle......

Après avoir fait divers essais infructueux (ligne d'en-tête avec mention de l'encodage dans le fichier XML, essai de fonctions de conversion de texte dans le code vba qui charge le ruban....), je suis revenue à ma version initiale et..... les accents apparaissent normalement. sans que j'aie compris pourquoi.

Je mets le post en délestage car mon pb est réglé mais si d'ici là quelqu'un a des infos sur ce genre de phénomène, je prends.

LilyX
LilyX est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2011, 09h03   #3
Membre du Club
 
Femme
Développeur informatique
Inscription : septembre 2008
Messages : 51
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 44
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : septembre 2008
Messages : 51
Points : 49
Points : 49
Maintenant je pense avoir compris....

En espérant que cette auto-réponse puisse servir à d'autres :

Notepad++ encode par défaut en UTF-8.
En utilisant ses fonctionnalités de conversion, cela ne change rien au passage des caractères accentués.
C'est en faisant un copier-coller du contenu vers le bloc-notes et en enregistrant dans celui-ci que le problème s'est résolu.
Après d'autres tests, il semblerait qu'il faille choisir un encodage ISO 8859-1 ou ANSI au départ dans Notepad++ avant de faire quoi que ce soit ou tout au moins avant d’enregistrer.

UTF-8 n'était-il pas censé régler tous les problèmes de caractères ???

LilyX
LilyX est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2011, 21h19   #4
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Maintenance données produits
Secteur : Distribution

Informations forums :
Inscription : décembre 2005
Messages : 3 939
Points : 6 278
Points : 6 278
Bonsoir,

Citation:
Envoyé par LilyX Voir le message
UTF-8 n'était-il pas censé régler tous les problèmes de caractères ???LilyX
Je dirai que c'était Unicode. Des caractères dont le code tient sur quatre octets.
UTF-8 n'est pas un jeu de caractères, mais de l'Unicode "compacté" sur un à quatre octets.

Ton souci pourrait sans doute être évité, en stockant le xml du ruban dans une table (lien).
Car j'imagine que tu charges ton ruban en lisant (par vba) le xml stocké dans un fichier texte.

A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2011, 11h33   #5
Membre du Club
 
Femme
Développeur informatique
Inscription : septembre 2008
Messages : 51
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 44
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : septembre 2008
Messages : 51
Points : 49
Points : 49
Merci pour les pistes.

Le stockage des rubans dans des fichiers XML extérieurs à l'appli sont une contrainte qui m'est imposée pour une mise à jour sans intervention dans la base.
LilyX est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2011, 22h12   #6
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Maintenance données produits
Secteur : Distribution

Informations forums :
Inscription : décembre 2005
Messages : 3 939
Points : 6 278
Points : 6 278
Bonsoir,

On ne peut pas choisir un jeu de caractères ou un type de codage, lorsqu'on lit un fichier texte avec les fonctions d'E/S VBA.
J'ai l'impression que c'est le jeu de caractères défini dans le système (page de code Windows-1252 en France). En tout cas pour XP.

Par contre avec un flux ADO, on peut paramétrer la façon d'interpréter le contenu d'un fichier texte.
Exemple :
Code :
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
Dim stm As ADODB.Stream
Dim strFile As String, strLigne As String
 
strFile = "c:\fichier utf-8.txt"
' Creation nouveau flux
Set stm = New ADODB.Stream
' Type de flux (Binaire ou Texte)
stm.Type = adTypeText
' Jeu de caractères
' ex: Windows-1252, UTF-8, UTF-16, Unicode (idem UTF-16 sur Windows XP)
stm.Charset = "UTF-8"
' Ouverture du flux
stm.Open
' Chargement à partir d'un fichier
stm.LoadFromFile strFile
' Lecture ligne à ligne
Do While stm.EOS = False
   strLigne = stm.ReadText(adReadLine)
   ' Juste pour tester dans Access, car les champs textes sont unicode
   ' MsgBox ou Debug.Print ne fonctionnent pas avec un mélange caractères
   ' latins et cyrilliques 
   DoCmd.RunSQL "UPDATE Table1 Set [Texte]='" & strLigne & "'"
Loop
' Fermeture du flux et libération de  l'objet
stm.Close
Set stm = Nothing
En principe les fichiers textes unicodes ont une signature (Byte Order Mark) indiquant le type de transformation UTF et le type d'alignement des mots de 16 ou 32 bits.
Voir ici : Using Byte Order Marks
Le bloc-notes de Windows, par exemple, met la signature appropriée quand on choisi d'enregistrer avec le codage unicode ou le codage utf-8.

A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h22.


 
 
 
 
Partenaires

Hébergement Web