Existe-t-il une option dans MS Excel 2010 qui affichera les caractères non imprimables dans une cellule (par exemple les espaces ou le caractère de saut de ligne introduit en appuyant sur Alt-Entrée)?
Existe-t-il une option dans MS Excel 2010 qui affichera les caractères non imprimables dans une cellule (par exemple les espaces ou le caractère de saut de ligne introduit en appuyant sur Alt-Entrée)?
Réponses:
Bien que vous ne puissiez pas afficher les caractères spéciaux directement dans la cellule, vous pouvez utiliser une formule dans la colonne adjacente (insérée) pour remplacer les entrées et les espaces par des caractères de votre choix!
Par exemple
= SUBSTITUT (A1; " ";" ¶ ")remplacerait tout saut de ligne par le symbole de mot pour le saut de ligne. Et la formule imbriquée
= SUBSTITUT (SUBSTITUT (A1; " ";" ¶ ");" ";" _ ")remplacera les deux, espace et entrez. (Remarque: pour saisir un "Entrée" dans la formule, vous devez appuyer sur
Alt+Enter
pendant la modification de la formule.
La façon la plus simple de le faire est de simplement changer la police en une police qui a un glyphe visible intégré pour l'espace (ou tout autre caractère que vous pourriez avoir besoin d'identifier)
Malheureusement, je n'ai pas de bon exemple d'une telle police à vous fournir, mais il est très facile d'ajouter un petit point à une police existante, en utilisant n'importe quel logiciel d'édition de police. N'oubliez pas de renommer la police (pas le fichier de police, mais le nom de la police dans le fichier de police), afin qu'il soit facile de distinguer cette police personnalisée de la police d'origine si vous les avez toutes les deux installées.
EDIT J'ai enfin trouvé le temps de faire une telle police! Voici DottedSpace Mono, basé sur Bitstream Vera Sans Mono, mais avec des espaces en pointillés intégrés:
CTRL + H remplacer tous les espaces par un ~ Cela aidera rapidement pour les espaces sans programmation, et pour inverser il suffit de remplacer ~ par "".
Le meilleur programme que j'ai trouvé pour comparer ces types de fichiers où le texte ne s'affiche pas est Ultra Edit. J'ai dû l'utiliser pour comparer des fichiers EDI, des fichiers d'interface, des téléchargements techniques, etc. MS Office n'est tout simplement pas bien équipé pour la tâche.
Alt-Enter
)
Changer la police en type "Terminal" vous aiderait à les voir et à les modifier.
Ne répond pas exactement à votre question, mais j'ai défini le format numérique comme suit:
;;;'@'
pour des guillemets simples, ou ce
;;;\"@\"
pour les guillemets doubles. Cela enveloppe les guillemets autour de tout texte saisi. J'ai également défini la police sur Courier New (ou toute autre police à largeur fixe).
1 Utilisez find and enter space
2 Remplacez tout et tapez "[espace]"
3 Facultatif: si vous souhaitez également mettre en surbrillance la cellule entière en rouge, utilisez simplement le sélecteur de format à côté de celui-ci.
Résultat: ces espaces embêtants se révéleront très clairement
Pourquoi devais-je faire cela: j'ai utilisé la fonction COUNTA pour trouver des cellules non vides dans une colonne. Cependant, il retournait un nombre supérieur à ce que j'attendais. J'ai débogué chaque cellule une par une, et à mon grand étonnement, certaines cellules apparemment vides ont montré COUNTA = 0 et d'autres ont montré COUNTA = 1, ce qui n'a aucun sens. Je ne pouvais PAS voir la différence entre les deux. Il s'avère qu'un seul nombre de blancs restants dans cette fonction, mais il n'est visible nulle part dans la cellule ou la zone de saisie en haut.
Conclusion: Si vous comptez sur COUNTA pour des tâches importantes, vous feriez mieux de vous assurer qu'il ne compte pas les espaces gênants que vous ne connaissez peut-être pas.
Je n'ai généralement pas besoin de VBA, donc je préfère faire des trucs excel en python + openpyxl
from docx import Document #word docx py library
import openpyxl #excel py library
from openpyxl.styles import Color, PatternFill, Font, Border
from openpyxl.styles import colors
from openpyxl.cell import Cell
import re #regular expressions
import os #work with system
wb = openpyxl.load_workbook('test.xlsx') #open needed document
redFill = PatternFill(start_color='FFFF0000',
end_color='FFFF0000',
fill_type='solid') #function to fill bad cells red
n = 0
print (wb.sheetnames) #print all sheetnames to ensure theres no hidden
for sheet in wb.worksheets: #cycle through sheets in excel file
# get max row count
max_row=sheet.max_row
# get max column count
max_column=sheet.max_column
for i in range(1,max_row+1):
# iterate over all columns
for j in range(1,max_column+1): #cycle through all rows and columns
# get particular cell value
cell_obj=sheet.cell(row=i,column=j)
s = re.search('[^-*+()!№;%:?@#$%^&;:_=/\\a-zA-Z0-9\ а-яА-Я°\'\".,,.«»<>ёЁ]', str(cell_obj.value)) #find bad symbols with regular expression
#^ find not normal characters
#s = re.search('[\n]', str(cell_obj.value)) find line end
if s:
print(n, " ", i, " ", j) #sheet, row, col
#print("^", s, "^") print bad symbol
#sheet.cell(row=i,column=j).fill = redFill
#color current cell wth spec chars red
print(n)
n+=1
wb.save("test.xlsx") #save redacted book
=IF(CLEAN(A1)=A1,"NA","Needs Cleaning")
dans la cellule à côté de la cellule à côté, ou vous pouvez utiliser le formatage conditionnel en utilisant le char () (ou chr en VBA) notation pour rechercher des rendements poêlier (char (13)) ou tout autre caractère, ici est un lien vers les numéros de caractères