Carré noirs avec points d'interrogation - Caractère avec accents
Bonjour à tous,
J'ai développer plusieurs macros qui fonctionnent sans problème sur mon poste. Cependant lorsque j'essaye d'utiliser ces macros sur le poste d'un de mes collègues, les caractères avec des accents sont remplacés par des losanges noirs avec des points d'interrogation (ce qui plante les macros). Cf. image ci-dessous.
On a contrôlé les paramètres de langues de Windows et d'EXCEL qui sont identiques entre mon poste et le sien (tout est en français). Y aurait il une autre explication ? je n'ai rien trouvé sur google ou sur le forum (j'ai peut être mal cherché).
SI quelqu'un a une idée je suis preneur!
Très bonne journée
Camille
Bonjour Camille,
Les problèmes d'affichage de caractères spéciaux avec des accents peuvent être liés à plusieurs facteurs, notamment la configuration de l'ordinateur, la version d'Excel, les paramètres de codage des fichiers, ou même les polices installées sur l'ordinateur. Voici quelques étapes que tu peux suivre pour résoudre ce problème :
- Vérifie les polices : Assure-toi que les polices utilisées dans tes fichiers Excel sont disponibles sur l'ordinateur de ton collègue. Si tu utilises une police spécifique qui n'est pas installée sur son ordinateur, cela peut entraîner l'affichage de caractères incorrects. Utilise des polices standard autant que possible pour éviter ce problème.
- Paramètres de codage : Assure-toi que les fichiers Excel sont enregistrés avec le bon encodage des caractères. Utilise l'encodage UTF-8 si possible, car il prend en charge une large gamme de caractères spéciaux. Tu peux généralement définir l'encodage lors de l'enregistrement du fichier.
- Mises à jour d'Excel : Assure-toi que la version d'Excel sur l'ordinateur de ton collègue est à jour. Les mises à jour peuvent résoudre certains problèmes d'affichage de caractères.
- Langue du système d'exploitation : Vérifie si la langue du système d'exploitation de l'ordinateur de ton collègue est configurée pour prendre en charge la langue qui utilise des caractères spéciaux avec des accents. Parfois, cela peut influencer l'affichage des caractères.
- Utilise des codes de caractères Unicode : Lorsque tu écris du texte avec des caractères spéciaux, assure-toi d'utiliser des codes de caractères Unicode plutôt que de dépendre uniquement de la police. Par exemple, utilise
éau lieu de simplement taper le caractèreé. Cela peut aider à garantir que les caractères sont affichés correctement, même si les polices varient. - Macros VBA : Si tes macros VBA manipulent des chaînes de caractères, assure-toi que le code VBA ne modifie pas incorrectement les caractères spéciaux. Le VBA utilise généralement l'encodage UTF-16, alors assure-toi que tes opérations sur les chaînes de caractères sont compatibles avec cet encodage.
En suivant ces étapes, tu devrais être en mesure de résoudre le problème d'affichage de caractères spéciaux avec des accents sur l'ordinateur de ton collègue lorsque tu exécutes tes macros.
A tester en premier
Pour vérifier et configurer l'encodage des caractères lors de l'enregistrement d'un fichier Excel, tu peux suivre ces étapes :
- Ouvre ton fichier Excel : Assure-toi d'avoir le fichier Excel que tu souhaites enregistrer avec le bon encodage ouvert.
- Clique sur l'onglet "Fichier" : Dans la barre d'outils en haut de ton application Excel, clique sur l'onglet "Fichier" pour accéder au menu "Fichier".
- Sélectionne "Enregistrer sous" : Dans le menu "Fichier", choisis "Enregistrer sous". Cela t'amènera à l'écran d'enregistrement du fichier.
- Choisis l'emplacement et le nom du fichier : Sélectionne l'emplacement où tu veux enregistrer ton fichier et donne-lui un nom si ce n'est pas déjà fait.
- Clique sur la flèche à côté de "Outils" : En bas de l'écran d'enregistrement du fichier, tu verras un bouton ou une flèche à côté de "Outils". Clique dessus pour ouvrir un menu déroulant.
- Sélectionne "Options Web" (Excel 2010 et versions ultérieures) : Dans les versions récentes d'Excel, tu devrais voir une option appelée "Options Web" dans le menu déroulant. Clique dessus pour accéder aux options d'encodage.
- Sélectionne l'onglet "Encodage" : Dans la boîte de dialogue des options Web, sélectionne l'onglet "Encodage". C'est là que tu pourras spécifier l'encodage des caractères.
- Choisis l'encodage UTF-8 : Dans l'onglet "Encodage", tu verras une liste déroulante ou une option permettant de sélectionner l'encodage des caractères. Choisis "UTF-8" dans la liste.
- Clique sur "OK" ou "Enregistrer" : Une fois que tu as sélectionné l'encodage UTF-8, clique sur le bouton "OK" ou "Enregistrer" dans la boîte de dialogue des options Web pour enregistrer ton fichier avec l'encodage UTF-8.
- Enregistre le fichier : Enfin, clique sur le bouton "Enregistrer" dans la fenêtre d'enregistrement du fichier pour enregistrer le fichier avec l'encodage UTF-8.
Ton fichier Excel sera maintenant enregistré avec l'encodage UTF-8, ce qui devrait prendre en charge une large gamme de caractères spéciaux. Cela peut aider à résoudre les problèmes d'affichage de caractères spéciaux avec des accents lorsque tu partages le fichier avec d'autres personnes, y compris ton collègue.
PS:
Lorsque j'ai mentionné "utiliser é au lieu de simplement taper le caractère é", je faisais référence à l'utilisation de codes de caractères Unicode pour représenter des caractères spéciaux plutôt que de compter sur la frappe directe du clavier. Voici une explication plus détaillée de la différence :
- Frappe directe du clavier (é) : Lorsque tu tapes le caractère
édirectement à partir du clavier, tu utilises une touche dédiée pour ce caractère. C'est la méthode la plus courante et la plus simple pour entrer des caractères spéciaux. Cependant, cela dépend de la police et de l'encodage utilisés, ce qui peut entraîner des problèmes d'affichage si la police ou l'encodage n'est pas correctement configuré. - Utilisation de codes de caractères Unicode (é) : Les codes de caractères Unicode sont une manière de représenter des caractères spéciaux de manière unifiée et indépendante de la police ou de l'encodage. Le code de caractère Unicode pour le caractère
éest U+00E9. Au lieu de taper directement le caractèreé, tu peux saisir le code Unicode dans ton document en utilisant la syntaxe suivante :é(dans certaines applications) ouU+00E9(dans d'autres). Cela permet de garantir que le caractère est correctement affiché, indépendamment des paramètres de police ou d'encodage.
La principale différence réside dans la manière dont les caractères sont représentés et stockés dans le document. L'utilisation de codes de caractères Unicode offre une plus grande portabilité et fiabilité, car elle garantit que le caractère sera correctement interprété quel que soit le contexte d'affichage. Cependant, la frappe directe du clavier est plus courante et conviviale pour les utilisateurs, mais elle peut être sujette à des problèmes d'affichage si les paramètres de police ou d'encodage ne sont pas corrects.
Je viens de tester à priori ça ne vient pas de l'encodage. Mes macros fonctionnent alors que j'ai l'alphabet occidental (Windows), mon collègue était sur l'UTF-8 j'ai testé avec les 2 mais ça ne fonctionne toujours pas.
Je vais essayer les autres options, notamment de mettre à jour sa version d'EXCEL
Par contre quand tu dis que tes macros fonctionnent OK, mais quand tu ouvres le fichier sans activer de macro est ce que le é est présent ou y a t'il déjà le losange? Dans le cas contraire c'est ta macro qui pose problème ou une de tes macro.
Le é fonctionne sur son poste en dehors de la macro.
Donc effectivement ça doit venir de ma macro. Ce qui est étrange c'est que sur mon poste ça ne pose pas de problème.
On va faire la MAJ de Excel lundi on verra ce que ça donne. Sinon je modifierai ma macro.
Si c'est ta macro commence par ça
- Vérifie les opérations de chaînes de caractères : Passe en revue ton code VBA et recherche des opérations sur les chaînes de caractères (comme la concaténation, le découpage, la recherche, etc.). Assure-toi que ces opérations sont correctement gérées pour les caractères spéciaux. L'encodage UTF-16 signifie que chaque caractère peut occuper deux octets, alors assure-toi que ton code prend cela en compte.
- Utilise la variable de chaîne de caractères correcte : En VBA, utilisez la variable de chaîne de caractères
Stringplutôt queVariantlorsque vous manipulez des chaînes de caractères. Cela permet de mieux contrôler le traitement des caractères spéciaux. - Vérifie les fonctions de traitement de chaînes de caractères : Les fonctions VBA comme
Len,Left,Right,Mid,InStr, etc., peuvent se comporter différemment avec les caractères spéciaux. Assure-toi qu'elles fonctionnent comme prévu avec les caractères spéciaux.
Et si tu as du mal le forum est là au pire met ta macro