Je voudrais laisser une marge entre les bords de ma cellule et son contenu.
Tu peux simplement utiliser l'outil d'indentation (le symbole avec des traits alignés et une flèche qui pousse ces traits.
Tu peux aussi te créer un format personnalisé :
Clic droit sur la cellule, Format de cellule, personnalisé.
Pour ajouter un espace correspondant à la largeur d'un caractère dans le format de
nombre, insére un caractère de soulignement "_" suivi du caractère en question dans la case adhoc du menu format personnalisé.
Par exemple, si tu veux que l'espace prenne la taille du caractère *
Pour un alignement à gauche avec 3 espaces avant le texte :
___*@ : trois "_" suivis d'une *
Tu peux ainsi ajuster l'espace (teste par exemple en remplaçant le * par M ou par i)
Pour laisser un espace à droite :
@___*
Pour remplir l'espace disponible à gauche avec des points : *.@
et à droite : @*.
Tu peux aussi te créer un format personnalisé :
Clic droit sur la cellule, Format de cellule, personnalisé.
Pour ajouter un espace correspondant à la largeur d'un caractère dans le format de
nombre, insére un caractère de soulignement "_" suivi du caractère en question dans la case adhoc du menu format personnalisé.
Par exemple, si tu veux que l'espace prenne la taille du caractère *
Pour un alignement à gauche avec 3 espaces avant le texte :
___*@ : trois "_" suivis d'une *
Tu peux ainsi ajuster l'espace (teste par exemple en remplaçant le * par M ou par i)
Pour laisser un espace à droite :
@___*
Pour remplir l'espace disponible à gauche avec des points : *.@
et à droite : @*.
GeeDee, Flo Cabon,
Ajouté ou modifié le 12/10/2007 (N°1909)
Ajouté ou modifié le 12/10/2007 (N°1909)
Comment mettre des points de suspension jusqu'au bout de la ligne ?
Utilise un format personnalisé :
@*.
@*.
Jacky,
Ajouté ou modifié le 19/02/2006 (N°1736)
Ajouté ou modifié le 19/02/2006 (N°1736)
Comment formater une cellule pour indiquer des surfaces agricoles (hectares, ares, centiares) ?
Les valeurs doivent rester numériques pour pouvoir faire des calculs.
Il suffit de mettre dans format cellule -Onglet nombre : personnalisé
[<100]#0" ca";[<10000]#0" a "#0" ca";#0" ha "#0" a "#0" ca"
Cependant, pour gérer les nombres négatifs - 15ha 53a 60ca par exemple, je
vous conseille la petite macro suivante :
Private Sub HaACa()
On Error Resume Next
For Each c In Selection
If c.Value >= 0 Then
c.NumberFormat = "[<100]#0"" ca"";[<10000]#0"" a""#0"" ca"";#0"" ha""#0""
a""#0"" ca"""
ElseIf c.Value < 0 Then
c.NumberFormat = "[>-100]#0"" ca"";[>-10000]#0"" a""#0"" ca"";#0"" ha""#0""
a""#0"" ca"""
Else
MsgBox "madré diou - pas possible !"
End If
Next c
End Sub
[<100]#0" ca";[<10000]#0" a "#0" ca";#0" ha "#0" a "#0" ca"
Cependant, pour gérer les nombres négatifs - 15ha 53a 60ca par exemple, je
vous conseille la petite macro suivante :
Private Sub HaACa()
On Error Resume Next
For Each c In Selection
If c.Value >= 0 Then
c.NumberFormat = "[<100]#0"" ca"";[<10000]#0"" a""#0"" ca"";#0"" ha""#0""
a""#0"" ca"""
ElseIf c.Value < 0 Then
c.NumberFormat = "[>-100]#0"" ca"";[>-10000]#0"" a""#0"" ca"";#0"" ha""#0""
a""#0"" ca"""
Else
MsgBox "madré diou - pas possible !"
End If
Next c
End Sub
Thierry Rural, Philippe Raulet,
Ajouté ou modifié le 17/05/2004 (N°1396)
Ajouté ou modifié le 17/05/2004 (N°1396)
Je souhaite afficher des N° de tel en conservant le 0 du début.
Voici le format à appliquer dans formats personnalisés : (attention aux guillemets)
0#"".""##"".""##"".""##"".""## ce qui donne 01.41.42.43.44
0#"".""##"".""##"".""##"".""## ce qui donne 01.41.42.43.44
Isabelle, (N°829)
Comment peut-on forcer Excel à afficher les nombres positifs précédé d'un '+' et les nombres
négatifs précédés d'un '-' ?
Si dans tes paramètres régionaux le symbole de regroupement des chiffres est un espace.
Dans ton format nombre tu écris
+# ##0,00;-# ##0,00
Si le symbole de regroupement est un point, tu remplaces l'espace par le point.
Dans ton format nombre tu écris
+# ##0,00;-# ##0,00
Si le symbole de regroupement est un point, tu remplaces l'espace par le point.
Bruno Mazepa, (N°828)
J'aimerais ne voir apparaître dans la cellule que des résultats positifs ou égaux à zéro. C'est
à dire que quand le résultat est négatif, ca m'affiche 0, c'est possible?
Dans le menu "Format" -> "Cellule"
Onglet "Nombre" tu sélectionne catégorie personnalisée
et tu saisie : #.##0,00;"0"
Dans un format nombre tu peux donner trois possibilités séparées par des
point-virgules.
1er = Format des nombres positifs -> ici : #.##0,00
2ème = format des nombres négatifs -> ici "0" pour forcer l'affichage du
zéro
3ème = format des nombres nuls -> ici pas de format
Onglet "Nombre" tu sélectionne catégorie personnalisée
et tu saisie : #.##0,00;"0"
Dans un format nombre tu peux donner trois possibilités séparées par des
point-virgules.
1er = Format des nombres positifs -> ici : #.##0,00
2ème = format des nombres négatifs -> ici "0" pour forcer l'affichage du
zéro
3ème = format des nombres nuls -> ici pas de format
ChrisV, (N°827)
Je dois saisir chaque jour des nombres avec ce format : 0000 0000 0000 0000 00000 Comment faire
pour tout saisir à la suite et que les espaces se mettent automatiquement ?
Tu vas créer un format personnalisé :
Format/Cellule/Nombre/choisir Format personalisé et tu crée le format suivant :
0000" "0000" "0000" "00000" "
et entre les cotes (") tu mets ce que tu veux. Soit un espace, Soit un point, soit
n'importe quoi. le dernier " " en fin de ligne évite de
coller le contenu de la cellule contre le bord. Ca sert à rien sauf que moi
je trouve ça plus joli mais on fait comme on veut.
On peut aussi mettre en dernier " bonbons" (ou autre) comme "symbole
monétaire" très particulier.
Enfin, on peut aussi écrire
####" "####" "####" "#####
si ce qui est tapé ne doit pas forcément avoir 17 caractères complétés au
début par des 0.
123456789012345 s'écrira alors
12 3456 7890 12345
dans le 2eme format (avec le #) et
0012 3456 7890 12345
dans le premier (avec les 0)
Format/Cellule/Nombre/choisir Format personalisé et tu crée le format suivant :
0000" "0000" "0000" "00000" "
et entre les cotes (") tu mets ce que tu veux. Soit un espace, Soit un point, soit
n'importe quoi. le dernier " " en fin de ligne évite de
coller le contenu de la cellule contre le bord. Ca sert à rien sauf que moi
je trouve ça plus joli mais on fait comme on veut.
On peut aussi mettre en dernier " bonbons" (ou autre) comme "symbole
monétaire" très particulier.
Enfin, on peut aussi écrire
####" "####" "####" "#####
si ce qui est tapé ne doit pas forcément avoir 17 caractères complétés au
début par des 0.
123456789012345 s'écrira alors
12 3456 7890 12345
dans le 2eme format (avec le #) et
0012 3456 7890 12345
dans le premier (avec les 0)
CFrofro, (N°826)
Comment centrer un format monétaire autour de la virgule ?
Applique le format :
_-# ##0 F_-;-# ##0 F_-;_-"-"?? F_-;_-@_-
C'est le caractère répété qui fait que la cellule est virtuellement occupée
complètement avec des espaces à gauche : le centrage et l'alignement ne
fonctionnent donc plus.
_-# ##0 F_-;-# ##0 F_-;_-"-"?? F_-;_-@_-
C'est le caractère répété qui fait que la cellule est virtuellement occupée
complètement avec des espaces à gauche : le centrage et l'alignement ne
fonctionnent donc plus.
Eric Jeanne, (N°825)
JE dois afficher des sommes qui vont de l'euro au million d'euro. Si j'entre 1 500 000, 17 000,
10, 300, 17300 je voudrais voir affiché 1500, 17, 0,01 0,3, 17,3
Essaie ce format de nombre personnalisé
[>999]# ##0.0 ;0.000
les formats numériques d'Excel
comportent un maximum de 4 sections séparées par des ";". Par défaut, la
première concerne les nombre positifs, la seconde, les nombres négatifs,
la 3e est pour le zéro et la dernière pour le texte. Ainsi, tu peux
créer le format suivant juste pour comprendre:
"positif!";"négatif!";"zéro!";"texte"
un des 4 messages s'affiche en fonction de ce que tu saisis.
Or, il existe un moyen de *déplacer* les 2 bornes délimitant les 3
intervalles numériques (positif/négatif/zéro). Mais malheureusement pas
d'augmenter le nombre de bornes (2 maximum). Cela se fait avec le code
[>xxx]. Un exemple:
[>1000]"supérieur à 1000!";[>100]"supérieur à 100";"autre"
[>999]# ##0.0 ;0.000
les formats numériques d'Excel
comportent un maximum de 4 sections séparées par des ";". Par défaut, la
première concerne les nombre positifs, la seconde, les nombres négatifs,
la 3e est pour le zéro et la dernière pour le texte. Ainsi, tu peux
créer le format suivant juste pour comprendre:
"positif!";"négatif!";"zéro!";"texte"
un des 4 messages s'affiche en fonction de ce que tu saisis.
Or, il existe un moyen de *déplacer* les 2 bornes délimitant les 3
intervalles numériques (positif/négatif/zéro). Mais malheureusement pas
d'augmenter le nombre de bornes (2 maximum). Cela se fait avec le code
[>xxx]. Un exemple:
[>1000]"supérieur à 1000!";[>100]"supérieur à 100";"autre"
Laurent Mortézai,
Ajouté ou modifié le 25/10/2003 (N°824)
Ajouté ou modifié le 25/10/2003 (N°824)

Comment afficher des kilos euros ?
Clic droit sur la cellule, format de cellules/personnalisé, entrer :
# ##0.# " k€"
attention il y a un espace après le dernier # !! le "€" est entré en tapant 0128 tout
en maintenant la touche alt enfoncée. Dans la zone *Type* de Format Cellules/Personnalisé, tout
ce qu'on tape a une signification particulière. Par exemple, l'espace, s'il est situé en fin de
code,
affiche la valeur divisée par mille. C'est une simple convention. Si tu mets deux espaces, tu
divises par un million, etc.
# ##0.# " k€"
attention il y a un espace après le dernier # !! le "€" est entré en tapant 0128 tout
en maintenant la touche alt enfoncée. Dans la zone *Type* de Format Cellules/Personnalisé, tout
ce qu'on tape a une signification particulière. Par exemple, l'espace, s'il est situé en fin de
code,
affiche la valeur divisée par mille. C'est une simple convention. Si tu mets deux espaces, tu
divises par un million, etc.
Bernard Mazas, ChrisV, Flo Cabon, (N°823)
Y a-t-il une astuce pour que les fractions saisies ne soient pas réduites, tout en gardant le
caractère numérique car elles servent de bases de calcul ? ex. on saisit 25/30 et Excel réduit
à 5/6. De même, 25/365 est réduit à 5/73
Les fractions sont simplifiées, lorsque l'on saisit
=25/30, et que l'on
utilise un format prédéfini de la catégorie Fraction...
Dans ce cas, tu pourrais toujours, manuellement et pour
chaque cellule,
redéfinir la présentation du nombre, par un format
personnalisé du type:
#" "??/30
ou
#" "??/365 pour =25/365
Je pense néanmoins qu'il vaudrait mieux, comme le dit
Pascal, passer par une saisie alpha (25/30 et 25/365) pour ensuite appliquer:
Sub formFrac()
Dim C As Range
Application.ScreenUpdating = False
On Error Resume Next
For Each C In Selection
If Not IsEmpty(C.Value) And Not IsNumeric (C.Value) Then
var = Mid(C.Value, InStr(1, C.Value, "/", 0) + 1, Len(C.Value))
C.Value = EVAL(C.Value)
C.NumberFormat = "#"" ""??/" & var
End If
Next C
End Sub
Function EVAL(Expression As String)
EVAL = Evaluate(Expression)
End Function
=25/30, et que l'on
utilise un format prédéfini de la catégorie Fraction...
Dans ce cas, tu pourrais toujours, manuellement et pour
chaque cellule,
redéfinir la présentation du nombre, par un format
personnalisé du type:
#" "??/30
ou
#" "??/365 pour =25/365
Je pense néanmoins qu'il vaudrait mieux, comme le dit
Pascal, passer par une saisie alpha (25/30 et 25/365) pour ensuite appliquer:
Sub formFrac()
Dim C As Range
Application.ScreenUpdating = False
On Error Resume Next
For Each C In Selection
If Not IsEmpty(C.Value) And Not IsNumeric (C.Value) Then
var = Mid(C.Value, InStr(1, C.Value, "/", 0) + 1, Len(C.Value))
C.Value = EVAL(C.Value)
C.NumberFormat = "#"" ""??/" & var
End If
Next C
End Sub
Function EVAL(Expression As String)
EVAL = Evaluate(Expression)
End Function
ChrisV, (N°822)
Quels sont les formats personnalisés possibles pour les dates ?
Le tableau suivant présente les caractères que vous pouvez utiliser pour créer des
formats de date/heure définis par l'utilisateur :
Caractère Description
(:) Séparateur horaire. Dans certains paramètres régionaux, le séparateur horaire est
représenté par un autre caractère. Le séparateur horaire dissocie les heures, les minutes
et les secondes lorsque des valeurs horaires sont mises en forme. Le caractère effectivement
utilisé comme séparateur horaire dans la sortie mise en forme est déterminé par les paramètres
de votre système.
(/) Séparateur de date. Dans certains paramètres régionaux, le séparateur de date est
représenté par un autre caractère. Le séparateur de date dissocie le jour, le mois et
l'année lorsque des valeurs de date sont mises en forme. Le caractère effectivement utilisé
comme séparateur de date dans la sortie mise en forme est déterminé par les paramètres de
votre système.
c Affichage de la date sous la forme ddddd et de l'heure sous la forme ttttt, dans cet
ordre. Affichage des informations relatives à la date seulement si le numéro de série
de date ne comporte aucune partie décimale ; affichage des informations relatives à
l'heure seulement en l'absence de partie entière.
j Affichage du jour sous la forme d'un nombre sans zéro non significatif (1 – 31).
jj Affichage du jour sous la forme d'un nombre avec un zéro non significatif (01 – 31).
jjj Affichage du jour sous sa forme abrégée (dim – sam).
jjjj Affichage du jour sous sa forme complète (dimanche – samedi).
ddddd Affichage de la date complète (jour, mois et année), mise en forme conformément à
l'option de format de date abrégé définie dans votre système. Sous Microsoft Windows, le
format de date abrégé par défaut est j/m/aa.
dddddd Affichage d'un numéro de série de date sous la forme d'une date complète (jour, mois
et année) mise en forme conformément à l'option de format de date longue définie dans votre
système. Sous Microsoft Windows, le format de date longue par défaut est jj mmmm aaaa.
e Affichage du jour de la semaine sous la forme d'un nombre (de 1 pour dimanche à 7 pour
samedi).
ee Affichage de la semaine de l'année sous la forme d'un nombre (1 – 53).
m Affichage du mois sous la forme d'un nombre sans zéro non significatif (1 – 12).
Si m suit immédiatement h ou hh, les minutes sont affichées à la place du mois.
mm Affichage du mois sous la forme d'un nombre avec un zéro non significatif (01 – 12).
Si m suit immédiatement h ou hh, les minutes sont affichées à la place du mois.
mmm Affichage du mois sous sa forme abrégée (jan – déc).
mmmm Affichage du mois sous sa forme complète (janvier – décembre).
t Affichage du trimestre de l'année sous la forme d'un nombre (1 – 4).
j Affichage du jour de l'année sous la forme d'un nombre (1 – 366).
jj Affichage de l'année sous la forme d'un nombre à deux chiffres (00 – 99).
jjjj Affichage de l'année sous la forme d'un nombre à quatre chiffres (100 – 9999).
h Affichage de l'heure sous la forme d'un nombre sans zéro non significatif (0 – 23).
hh Affichage de l'heure sous la forme d'un nombre avec un zéro non significatif (00 – 23).
n Affichage des minutes sous la forme d'un nombre sans zéro non significatif (0 – 59).
nn Affichage des minutes sous la forme d'un nombre avec un zéro non significatif (00 – 59).
s Affichage des secondes sous la forme d'un nombre sans zéro non significatif (0 – 59).
ss Affichage des secondes sous la forme d'un nombre avec un zéro non significatif (00 – 59).
t t t t t Affichage de l'heure complète (heures, minutes et secondes), mise en forme à l'aide
du séparateur horaire défini par le format horaire de votre système. Un zéro non significatif
est affiché si l'option correspondante est sélectionnée et si l'heure est antérieure à 10:00
A.M.
ou P.M. Dans Microsoft Windows, le format horaire par défaut est h:mm:ss.
AM/PM Affichage à l'aide du format 12 heures et avec l'indicateur AM en majuscules pour
une heure antérieure à midi et de l'indicateur PM en majuscules pour une heure située entre
midi
et 11:59 P.M. am/pm Affichage à l'aide du format 12 heures et avec l'indicateur AM en
minuscules pour
une heure antérieure à midi et de l'indicateur PM en minuscules pour une heure située entre
midi et
11:59 P.M. A/P Affichage à l'aide du format 12 heures et avec l'indicateur A en majuscule pour
une heure
antérieure à midi et de l'indicateur P en majuscule pour une heure située entre midi et
11:59 P.M. a/p Affichage à l'aide du format 12 heures et avec l'indicateur A en minuscule
pour une heure antérieure à midi et de l'indicateur P en minuscule pour une heure située entre
midi et
11:59 P.M.
AMPM Affichage à l'aide du format 12 heures et avec le littéral chaîne AM sous la forme
définie par votre système, pour une heure antérieure à midi et du littéral chaîne PM sous
la forme définie par votre système, pour une heure située entre midi et 11:59 P.M. AMPM
peut apparaître soit en minuscules, soit en majuscules, mais la casse de la chaîne affichée
dépend de la chaîne définie par vos paramètres système. Dans Microsoft Windows, le format
par défaut est AM/PM.
formats de date/heure définis par l'utilisateur :
Caractère Description
(:) Séparateur horaire. Dans certains paramètres régionaux, le séparateur horaire est
représenté par un autre caractère. Le séparateur horaire dissocie les heures, les minutes
et les secondes lorsque des valeurs horaires sont mises en forme. Le caractère effectivement
utilisé comme séparateur horaire dans la sortie mise en forme est déterminé par les paramètres
de votre système.
(/) Séparateur de date. Dans certains paramètres régionaux, le séparateur de date est
représenté par un autre caractère. Le séparateur de date dissocie le jour, le mois et
l'année lorsque des valeurs de date sont mises en forme. Le caractère effectivement utilisé
comme séparateur de date dans la sortie mise en forme est déterminé par les paramètres de
votre système.
c Affichage de la date sous la forme ddddd et de l'heure sous la forme ttttt, dans cet
ordre. Affichage des informations relatives à la date seulement si le numéro de série
de date ne comporte aucune partie décimale ; affichage des informations relatives à
l'heure seulement en l'absence de partie entière.
j Affichage du jour sous la forme d'un nombre sans zéro non significatif (1 – 31).
jj Affichage du jour sous la forme d'un nombre avec un zéro non significatif (01 – 31).
jjj Affichage du jour sous sa forme abrégée (dim – sam).
jjjj Affichage du jour sous sa forme complète (dimanche – samedi).
ddddd Affichage de la date complète (jour, mois et année), mise en forme conformément à
l'option de format de date abrégé définie dans votre système. Sous Microsoft Windows, le
format de date abrégé par défaut est j/m/aa.
dddddd Affichage d'un numéro de série de date sous la forme d'une date complète (jour, mois
et année) mise en forme conformément à l'option de format de date longue définie dans votre
système. Sous Microsoft Windows, le format de date longue par défaut est jj mmmm aaaa.
e Affichage du jour de la semaine sous la forme d'un nombre (de 1 pour dimanche à 7 pour
samedi).
ee Affichage de la semaine de l'année sous la forme d'un nombre (1 – 53).
m Affichage du mois sous la forme d'un nombre sans zéro non significatif (1 – 12).
Si m suit immédiatement h ou hh, les minutes sont affichées à la place du mois.
mm Affichage du mois sous la forme d'un nombre avec un zéro non significatif (01 – 12).
Si m suit immédiatement h ou hh, les minutes sont affichées à la place du mois.
mmm Affichage du mois sous sa forme abrégée (jan – déc).
mmmm Affichage du mois sous sa forme complète (janvier – décembre).
t Affichage du trimestre de l'année sous la forme d'un nombre (1 – 4).
j Affichage du jour de l'année sous la forme d'un nombre (1 – 366).
jj Affichage de l'année sous la forme d'un nombre à deux chiffres (00 – 99).
jjjj Affichage de l'année sous la forme d'un nombre à quatre chiffres (100 – 9999).
h Affichage de l'heure sous la forme d'un nombre sans zéro non significatif (0 – 23).
hh Affichage de l'heure sous la forme d'un nombre avec un zéro non significatif (00 – 23).
n Affichage des minutes sous la forme d'un nombre sans zéro non significatif (0 – 59).
nn Affichage des minutes sous la forme d'un nombre avec un zéro non significatif (00 – 59).
s Affichage des secondes sous la forme d'un nombre sans zéro non significatif (0 – 59).
ss Affichage des secondes sous la forme d'un nombre avec un zéro non significatif (00 – 59).
t t t t t Affichage de l'heure complète (heures, minutes et secondes), mise en forme à l'aide
du séparateur horaire défini par le format horaire de votre système. Un zéro non significatif
est affiché si l'option correspondante est sélectionnée et si l'heure est antérieure à 10:00
A.M.
ou P.M. Dans Microsoft Windows, le format horaire par défaut est h:mm:ss.
AM/PM Affichage à l'aide du format 12 heures et avec l'indicateur AM en majuscules pour
une heure antérieure à midi et de l'indicateur PM en majuscules pour une heure située entre
midi
et 11:59 P.M. am/pm Affichage à l'aide du format 12 heures et avec l'indicateur AM en
minuscules pour
une heure antérieure à midi et de l'indicateur PM en minuscules pour une heure située entre
midi et
11:59 P.M. A/P Affichage à l'aide du format 12 heures et avec l'indicateur A en majuscule pour
une heure
antérieure à midi et de l'indicateur P en majuscule pour une heure située entre midi et
11:59 P.M. a/p Affichage à l'aide du format 12 heures et avec l'indicateur A en minuscule
pour une heure antérieure à midi et de l'indicateur P en minuscule pour une heure située entre
midi et
11:59 P.M.
AMPM Affichage à l'aide du format 12 heures et avec le littéral chaîne AM sous la forme
définie par votre système, pour une heure antérieure à midi et du littéral chaîne PM sous
la forme définie par votre système, pour une heure située entre midi et 11:59 P.M. AMPM
peut apparaître soit en minuscules, soit en majuscules, mais la casse de la chaîne affichée
dépend de la chaîne définie par vos paramètres système. Dans Microsoft Windows, le format
par défaut est AM/PM.
Microsoft, (N°821)
Comment détruire de manière automatique (avec VBA) tous les formats de cellule personnalisés
qui ne sont plus utilisés et qui engraissent considérablement excel ?
Essaie le code suivant :
- La procédure SupprFormatsInutilisés supprime tous les formats
personnalisés qui ne sont utilisés nulle part dans le classeur actif.
- La procédure SupprFormatsCellulesVides supprime également les formats
inutilisés, *et aussi* les formats qui ne sont attachés *qu'à des
cellules vides*.
Désolé pour l'affichage répété de la boîte de dialogue "Format de
cellule" au début de la macro, je ne sais pas trop comment l'éviter
(ScreenUpdating = False n'y change rien, ni LockWindowUpdate).
Si tu utilises Excel 2000, il faut ajouter au projet une référence à
"Microsoft Forms 2.0 Object Library". Cette macro n'est prévue que pour
Excel 97 et 2000 (et j'espère les versions ultérieures!). Je ne l'ai
testée que sous Excel 2000 jusqu'à présent.
Sub SupprFormatsInutilisés()
SupprFormats True
End Sub
Sub SupprFormatsCellulesVides()
SupprFormats False
End Sub
Private Sub SupprFormats(Min As Boolean)
Dim Form As String, Prev As String, F As String
Dim I As Integer, J As Integer
Dim dObj As New DataObject, C As New Collection
Dim Wksht As Worksheet, Cell As Range, Shts As Sheets
Application.EnableCancelKey = xlDisabled
Application.StatusBar = "Collecte des formats en cours..."
Do
J = (J + 1) Mod 5
If J = 0 Then I = I + 1
Application.SendKeys "{TAB}{END}{TAB 2}{HOME}" & IIf(I, "{PGDN " _
& I & "}", "") & IIf(J, "{DOWN " & J & "}", "") & "+{TAB}^c{ESC}"
Application.Dialogs(xlDialogFormatNumber).Show
dObj.GetFromClipboard
Form = dObj.GetText(1)
If Form = Prev Then Exit Do
C.Add Form, Form
Prev = Form
Loop
Application.StatusBar = "Recherche des formats utilisés en cours..."
Set Shts = ActiveWindow.SelectedSheets
On Error Resume Next
For Each Wksht In Worksheets
Wksht.Select
For Each Cell In Wksht.UsedRange
If Not IsEmpty(Cell) Or Min Then
F = C.Item(Cell.NumberFormatLocal)
If F <> "" Then
C.Remove Cell.NumberFormatLocal
F = ""
End If
End If
Next Cell
Next Wksht
Application.ScreenUpdating = False
Err.Clear
Application.StatusBar = False
J = 0
With ActiveWorkbook
Workbooks.Add
For I = 1 To C.Count
Range("A1").NumberFormatLocal = C(I)
.DeleteNumberFormat ActiveCell.NumberFormat
If Err = 0 Then J = J + 1 Else Err.Clear
Next I
MsgBox J & " format(s) inutilisé(s) supprimé(s).", vbInformation
End With
ActiveWorkbook.Close False
Shts.Select
End Sub
- La procédure SupprFormatsInutilisés supprime tous les formats
personnalisés qui ne sont utilisés nulle part dans le classeur actif.
- La procédure SupprFormatsCellulesVides supprime également les formats
inutilisés, *et aussi* les formats qui ne sont attachés *qu'à des
cellules vides*.
Désolé pour l'affichage répété de la boîte de dialogue "Format de
cellule" au début de la macro, je ne sais pas trop comment l'éviter
(ScreenUpdating = False n'y change rien, ni LockWindowUpdate).
Si tu utilises Excel 2000, il faut ajouter au projet une référence à
"Microsoft Forms 2.0 Object Library". Cette macro n'est prévue que pour
Excel 97 et 2000 (et j'espère les versions ultérieures!). Je ne l'ai
testée que sous Excel 2000 jusqu'à présent.
Sub SupprFormatsInutilisés()
SupprFormats True
End Sub
Sub SupprFormatsCellulesVides()
SupprFormats False
End Sub
Private Sub SupprFormats(Min As Boolean)
Dim Form As String, Prev As String, F As String
Dim I As Integer, J As Integer
Dim dObj As New DataObject, C As New Collection
Dim Wksht As Worksheet, Cell As Range, Shts As Sheets
Application.EnableCancelKey = xlDisabled
Application.StatusBar = "Collecte des formats en cours..."
Do
J = (J + 1) Mod 5
If J = 0 Then I = I + 1
Application.SendKeys "{TAB}{END}{TAB 2}{HOME}" & IIf(I, "{PGDN " _
& I & "}", "") & IIf(J, "{DOWN " & J & "}", "") & "+{TAB}^c{ESC}"
Application.Dialogs(xlDialogFormatNumber).Show
dObj.GetFromClipboard
Form = dObj.GetText(1)
If Form = Prev Then Exit Do
C.Add Form, Form
Prev = Form
Loop
Application.StatusBar = "Recherche des formats utilisés en cours..."
Set Shts = ActiveWindow.SelectedSheets
On Error Resume Next
For Each Wksht In Worksheets
Wksht.Select
For Each Cell In Wksht.UsedRange
If Not IsEmpty(Cell) Or Min Then
F = C.Item(Cell.NumberFormatLocal)
If F <> "" Then
C.Remove Cell.NumberFormatLocal
F = ""
End If
End If
Next Cell
Next Wksht
Application.ScreenUpdating = False
Err.Clear
Application.StatusBar = False
J = 0
With ActiveWorkbook
Workbooks.Add
For I = 1 To C.Count
Range("A1").NumberFormatLocal = C(I)
.DeleteNumberFormat ActiveCell.NumberFormat
If Err = 0 Then J = J + 1 Else Err.Clear
Next I
MsgBox J & " format(s) inutilisé(s) supprimé(s).", vbInformation
End With
ActiveWorkbook.Close False
Shts.Select
End Sub
Laurent Longre, (N°820)
Comment fait-on pour afficher un format scientifique en respectant la notation appellée parfois
"ingénieur" qui va de 10^3 en 10^3? à savoir afficher 100E-6 plutôt que 1E-4
Simple, tu crées le format numérique personnalisé:
000.00E+00
000.00E+00
Laurent Mortézai, (N°819)