Voir aussi
Recopier la mise en page d'une feuille
Dans les options d'impression, j'ai choisi pour une feuille les marges, l'entête, le pied de page. Comment recopier ces paramètres sur une autre feuille du classeur ?
Positionne toi sur la page qui contient la mise en page à copier.

Enfonce la touche contrôle et clique sur l'onglet de la page où tu veux copier le format de façon à sélectionner ensemble les deux feuilles. Si tu veux appliquer ta mise en page à d'autres feuilles sélectionnes les également.

Va dans Fichier/mise en page et valide les propositions affichées dans la boîte de dialogue

Sur excel 2007, pour ouvrir cette boîte de dialogue il faut aller dans l'onglet mise en page puis cliquer dans le petit carré en bas à droite du groupe mise en page.
Sundow,
Ajouté ou modifié le 05/04/2008 (N°1991)
Imposer un format de données lors de la saisie
Comment imposer à un utilisateur de saisir exactement 8 caractères avec un point en troisième position ?
Si tu veux que cette contrainte soit imposée dans la plage plage B2:G20
Sélectionne B2:G20 et dans données/validation
Autoriser -> Personnalisée :
La formule est : =ET(NBCAR(B2)=8;STXT(B2;3;1)=".")
Serge Garneau,
Ajouté ou modifié le 25/08/2007 (N°1879)
Comment identifier les cellules qui ont un formatage particulier
Peut-on connaître sans VBA si une cellule a un formatage particulier, connaître sa hauteur et sa lageur... voire même lancer une macro si c'est le cas ?
Bien qu'elles ne soient plus documentées dans l'aide d'excel, les macros XL4, très rapides, fonctionnent touours, en tous cas jusqu'à excel 2007 inclus. Une de ces fonctions est particulièrement intéressante ici :

LIRE.CELLULE(no_type; référence)

No_type (voir la liste ci-dessous) est un nombre qui spécifie quel type d'informations vous voulez obtenir sur une cellule. La liste suivante montre les valeurs possibles pour no_type et le résultat correspondant.

Référence est une cellule ou une plage de cellules pour laquelle vous voulez obtenir des informations.
Si référence est une plage de cellules, la cellule dans le coin supérieur gauche de la première plage de référence est utilisée.
Si référence est omis, la valeur par défaut est la cellule active.

Exemples

Utilisez = LIRE.CELLULE(17;D12) pour déterminer la hauteur de la cellule D12
et= LIRE.CELLULE(44;D12) - LIRE.CELLULE(42;D12) pour déterminer sa largeur.


La formule macro suivante renvoie VRAI si la cellule B4 de la feuille Feuil1 est en caractères gras :
=LIRE.CELLULE(20; Feuil1!$4)


Vous pouvez utiliser les informations renvoyées par LIRE.CELLULE pour lancer une action. La formule macro suivante exécute une fonction personnalisée appelée CelluleGras si la formule LIRE.CELLULE renvoie FAUX :
=SI(LIRE.CELLULE(20; Feuil1!$4); ; CelluleGras())


No_type Renvoie
1 La référence absolue de la cellule du coin supérieur gauche de référence, sous forme de texte dans le style de référence en cours dans l'environnement.
2 Numéro de ligne de la première cellule de référence.
3 Numéro de colonne la plus à gauche de référence.
4 Identique à TYPE(référence).
5 Contenu de référence.
6 Formule de référence, sous forme de texte, au format A1 ou L1C1, selon les paramètres de l'environnement en cours.
7 Format de nombres de la cellule, sous forme de texte (par exemple, 'j/m/aa' ou 'Standard').
8 Numéro indiquant l'alignement horizontal de la cellule :
1 = Standard
2 = Gauche
3 = Centré
4 = Droite
5 = Recopié
6 = Justifié
7 = Centré sur plusieurs colonnes

9 Numéro indiquant le style de bordure gauche assigné à la cellule :
0 = Pas de bordure
1 = Bordure fine
2 = Bordure moyenne
3 = Bordure en tirets
4 = Bordure en pointillé
5 = Bordure épaisse
6 = Bordure double
7 = Bordure en filet
10 Numéro indiquant le style de bordure droite assigné à la cellule. Reportez-vous à no_type 9 pour avoir une description des nombres renvoyés.
11 Numéro indiquant le style de bordure supérieure assigné à la cellule. Reportez-vous à no_type 9 pour avoir une description des nombres renvoyés.
12 Numéro indiquant le style de bordure inférieure assigné à la cellule. Reportez-vous à no_type 9 pour avoir une description des nombres renvoyés.

13 Numéro entre 0 et 18, indiquant le motif de la cellule sélectionnée tel qu'il est affiché dans l'onglet Motifs dans la boîte de dialogue Format de cellule, qui apparaît à l'écran lorsque vous choisissez, dans le menu Format, la commande Cellule. Si aucun motif n'est sélectionné, renvoie
0.

14 Si la cellule est verrouillée, renvoie VRAI ; sinon, FAUX.
15 Si la formule de la cellule est masquée, renvoie VRAI ; sinon, FAUX.

16 Un tableau horizontal de deux éléments contenant la largeur de la cellule active et une valeur logique indiquant si la largeur de la cellule est définie pour changer comme la largeur standard (VRAI) ou si c'est une largeur personnalisée (FAUX).
17 Hauteur de ligne de la cellule, en points.

18 Nom de la police, sous forme de texte.
19 Taille de la police, en points.

20 Si tous les caractères dans la cellule ou seul le premier caractère dans la cellule est en caractères gras, renvoie VRAI ; sinon, FAUX.
21 Si tous les caractères dans la cellule ou seul le premier caractère dans la cellule est en caractères en italique, renvoie VRAI ; sinon, FAUX.
22 Si tous les caractères dans la cellule ou seul le premier caractère dans la cellule est en caractères soulignés, renvoie VRAI ; sinon, FAUX.
23 Si tous les caractères dans la cellule ou seul le premier caractère dans la cellule est en caractères barrés, renvoie VRAI ; sinon, FAUX.
24 Couleur de la police du premier caractère dans la cellule, sous forme de nombre compris entre 1 et 16. Si la couleur de la police est automatique, renvoie 0.
25 Si tous les caractères dans la cellule ou seul le premier caractère dans la cellule est en relief, renvoie VRAI ; sinon, FAUX. Le format de police en relief n'est pas géré par Microsoft Excel pour Windows.
26 Si tous les caractères dans la cellule ou seul le premier caractère dans la cellule est ombrée, renvoie VRAI ; sinon, FAUX. Le format de police ombré n'est pas géré par Microsoft Excel pour Windows.

27 Numéro indiquant si un saut de page manuel existe dans la cellule :
0 = Pas de saut
1 = Ligne
2 = Colonne
3 = Ligne et colonne
28 Niveau de ligne (mode plan).
29 Niveau de colonne (mode plan).
30 Si la ligne contenant la cellule active est une ligne de synthèse, renvoie VRAI ; sinon, FAUX.
31 Si la colonne contenant la cellule active est une colonne de synthèse, renvoie VRAI ; sinon, FAUX.
32 Nom de la feuille et du classeur contenant la cellule. Si la fenêtre ne contient qu'une seule feuille dont le nom égale le nom du classeur sans
extension, renvoie uniquement le nom du classeur, sous la forme CLASS1.XLS. Sinon, revoie le nom de la feuille sous la forme '[Class1]Feuil1'.
33 Si la cellule est mise en forme pour renvoyer à la ligne, renvoie VRAI ; sinon, FAUX.

34 Couleur de bordure gauche sous forme d'un nombre entre 1 et 56. Si la couleur est automatique, renvoie 0.
35 Couleur de bordure droite sous forme d'un nombre entre 1 et 56. Si la couleur est automatique, renvoie 0.
36 Couleur de bordure supérieure sous forme d'un nombre entre 1 et 56. Si la couleur est automatique, renvoie 0.
37 Couleur de bordure inférieure sous forme d'un nombre entre 1 et 56. Si la couleur est automatique, renvoie 0.
38 Premier plan ombré sous forme d'un nombre entre 1 et 56. Si la couleur est automatique, renvoie 0.
39 Fond ombré sous forme d'un nombre entre 1 et 56. Si la couleur est automatique, renvoie 0.
40 Style de la cellule, sous forme de texte.
41 Renvoie la formule de la cellule active sans la convertir (utile pour les feuilles macro internationales).
42 La distance horizontale, mesurée en points, à partir du bord gauche de la fenêtre active jusqu'au bord gauche de la cellule. Peut être un nombre
négatif si le défilement de la fenêtre est au-delà de la cellule.

43 La distance verticale, mesurée en points, à partir du bord supérieur de la fenêtre active jusqu'au bord supérieur de la cellule. Peut être un
nombre négatif si le défilement de la fenêtre est au-delà de la cellule.
44 La distance horizontale, mesurée en points, à partir du bord gauche de la fenêtre active jusqu'au bord droit de la cellule. Peut être un nombre
négatif si le défilement de la fenêtre est au-delà de la cellule.
45 La distance verticale, mesurée en points, à partir du bord supérieur de la fenêtre active jusqu'au bord inférieur de la cellule. Peut être un
nombre négatif si le défilement de la fenêtre est au-delà de la cellule.
46 Si la cellule contient une annotation texte, renvoie VRAI ; sinon, FAUX.
47 Si la cellule contient une annotation audio, renvoie VRAI ; sinon, FAUX.

48 Si la cellule contient une formule, renvoie VRAI; si elle contient une constante, renvoie FAUX.
49 Si la cellule appartient à un tableau, renvoie VRAI ; sinon, FAUX.
50 Numéro indiquant l'alignement vertical de la cellule :
1 = Haut
2 = Centré
3 = Bas
4 = Justifié
51 Numéro indiquant l'orientation verticale de la cellule :
0 = Horizontale
1 = Verticale
2 = Vers le haut
3 = Vers le bas
52 Le caractère préfixe de la cellule (ou la position du texte) ou un texte vide ('') si la cellule n'en contient pas.
53 Contenu de la cellule tel qu'il est actuellement affiché, sous forme de texte, y compris éventuellement les nombres ou les symboles
supplémentaires qui résultent de la mise en forme de la cellule.

54 Renvoie le nom de la vue du tableau croisé dynamique qui contient la cellule active.
55 Renvoie la position d'une cellule dans la vue du tableau croisé dynamique.
0 = étiquette de ligne
1 = étiquette de colonne
2 = en-tête de page
3 = étiquette de données
4 = élément de ligne
5 = élément de colonne
6 = élément de page
7 = élément de données
8 = corps du tableau
56 Renvoie le nom du champ qui contient la référence de la cellule active si elle se trouve dans la vue du tableau croisé dynamique.
57 Renvoie VRAI si tous les caractères dans la cellule ou seul le premier caractère dans la cellule est mis en forme avec une police d'exposant ;
sinon, renvoie FAUX.

58 Renvoie le style de la police sous forme de texte pour tous les caractères dans la cellule, ou pour le premier caractère dans la cellule, tel qu'il
est affiché dans l'onglet Police dans la boîte de dialogue Format de cellule : par exemple, 'Gras Italique'.
59 Renvoie le numéro du style de soulignement :
1 = Aucun
2 = Simple
3 = Double
4 = Comptabilité simple
5 = Comptabilité double
60 Renvoie VRAI si tous les caractères dans la cellule ou seul le premier caractère dans la cellule est mis en forme avec une police d'indice ; sinon,
renvoie FAUX.
61 Renvoie le nom de l'élément du tableau croisé dynamique de la cellule active, sous forme de texte.

62 Renvoie le nom du classeur ou de la feuille en cours sous la forme '[Class1]Feuil1'.
63 Renvoie le couleur de l'arrière-plan de la cellule.
64 Renvoie le couleur du premier plan de la cellule.
65 Renvoie VRAI si l'option 'Ajouter retrait' est activée (versions de Microsoft Excel pour l'Extrême-Orient uniquement) ; sinon, renvoie FAUX.
66 Renvoie le nom du classeur contenant la cellule, sous la forme CLASS1.XLS.
CousinHub,
Ajouté ou modifié le 25/08/2007 (N°1877)
Colorier une ligne sur 2 avec VBA
J'ai besoin dans une plage sélectionnée de colorier une ligne sur deux.
Utilise cette macro:

Sub LigneSurDeux()
Dim MaPlage As Range
Set MaPlage = Application.InputBox("Sélectionner la plage sans les titres", "Mise en forme tableau", , , , , , 8)
L = ActiveCell.Row
C = ActiveCell.Column
Set mc = ActiveSheet.Cells(L, C)
MyVal = mc.Address(RowAbsolute:=False, columnabsolute:=False)
MaPlage.Select
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=MOD(LIGNE(" & MyVal & ");2)"
Selection.FormatConditions(1).Interior.ColorIndex = 34
ActiveCell.Select
End Sub
Eric Renaud,
Ajouté ou modifié le 07/07/2007 (N°1857)
Forcer la saisie en minuscules ou en majuscules
Comment forcer dans une cellule la saisie en minuscules ?
Première solution, utiliser la validation de données :

Données/validation.../Options/autoriser: Personnalisé
Formule:

=EXACT(A1;MINUSCULE(A1)) (respectivement majuscule ou nompropre pour mettre la première lettre du mot en majuscule et le reste en minuscule)

ou, pour convertir directement les majuscules en minuscules à la sortie de la cellule?


Dans le code événementiel de la feuille en question soit pour la cellule A1 dans
l'exemple (à adapter)

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
[a1] = LCase([a1]) (Ucase pour les majuscules, Proper pour les noms propres)
End Sub


Si tu veux que cette conversion s'effectue sur une plage de cellules, pour les mettre en majuscule
Dans le module de la feuille et pour la plage A1:B10 par exemple,


Private Sub Worksheet_Change(ByVal zz As Range)
If Intersect(zz, [A1:B10]) Is Nothing Then Exit Sub
Application.EnableEvents = False
zz = UCase(zz)
Application.EnableEvents = True
End Sub

Les instructions enableevents false puis true sont mises là parceque l'instruction
zz = UCase(zz)
redéclenche inutilement l'évènement Worksheet_Change
donc -->
"Application.EnableEvents = False" --> désactive les évènements
"zz = UCase(zz)" --> met en majuscule
"Application.EnableEvents = True" --> réactive les évènements
Jacky, ChrisV, Alain Vallon,
Ajouté ou modifié le 02/07/2005 (N°1644)
Nombres négatifs entre parenthèses
Dans le menu de personnalisation des formats, je n'ai pas dans la catégorie nombres l'option mettre entre parenthèses. Comment la rétablir ?
Sous WinXP:
Panneaux de configuration/Modifier le format des nombres, des dates et de
l'heure/Options régionales/Personnaliser.../Symbole monétaire/Format
négatif: (1,1 ?)/OK/OK
Le format Nombre (Catégorie Nombre) devrait maintenant te proposer les
nombres négatifs entre parenthèses...
ChrisV,
Ajouté ou modifié le 25/06/2005 (N°1634)
Sous totaux en couleur
Comment mettre d'office les sous-totaux calculés en couleurs ?
Exemple pour mettre les lignes des sous-totaux en rouge et la synthèse (dernière
ligne ajoutée) en bleu :
Insertion => Nom => Définir => Noms dans le classeur : "Fx_Sttx" => Fait
référence à :

={"Somme";"NB";"Moyenne";"Max";"Min";"Produit";"Var";"Varp";"Ecartype";"Ecartype
p"}
Insertion => Nom => Définir => Noms dans le classeur : "Ttx" => Fait référence à
:
={"Total";"Nbval";"
Moyenne";"Max";"Min";"Produit";"Ecartype";"Ecartypep";"Var";"Varp"}

Sélection de ton tableau (Ex: A2:Cx) => Format => Mise en Forme Conditionnelle
=>
Condition 1 => la formule est :
=EQUIV(GAUCHE($A2;TROUVE(" ";$A2)-1);Fx_Sttx;0)
=> format => police rouge
=> Ajouter =>
Condition 2 => la formule est :
=EQUIV($A2;Ttx;0)>0
=> format => police bleue => OK

PS : il est évident que si tu changes les intitulés des sous-totaux ou synthèse
(ceux proposés par défaut), la MFC va disparaître puisqu'elle fait référence à
la valeur de ceux-ci !
Alain Vallon,
Ajouté ou modifié le 02/05/2004 (N°1374)
Week end en couleur
En colonne A j'ai une série de dates. Je voudrais que lorsque ces dates correspondent à un samedi ou à un dimanche, toute la ligne correspondante soit mise en couleur.
Sélection ligne 1 > Format > Mise en forme conditionnelle > la formule est :
=OU(JOURSEM($A1)=1;JOURSEM($A1)=7)
> Couleur motif ou autre > OK
Pour avoir le même format sur les lignes suivantes : copie de la ligne1 >
collage spécial > format > sur les lignes choisies.

en VBA maintenant :

Sub jourWE()
Dim i&
Application.ScreenUpdating = False
For i = 1 To [A65536].End(xlUp).Row
If Weekday(Cells(i, 1).Value, 2) > 5 Then _
Cells(i, 1).EntireRow.Interior.ColorIndex = 36
Next i
End Sub
Alain Vallon, ChrisV, (N°810)
Validation de saisie avec un format complexe
Je dois saisir un code produit limité à 8 caractères dont les 3 premiers sont des lettres, puis 3 chiffres puis 2 lettres. Comment utiliser données/validation dans ce cas ?
Dans données/validation, choisis personnalisé et entre cette
formule (adapte les ref à tes besoins)
=0<(NBCAR(A1)=8)*ESTTEXTE(STXT(A1;1;3))*ESTNUM(1*STXT(A1;4;3))
*ESTTEXTE(DROITE(A1;1))*ESTERR(1*STXT(A1;7;1))
(sur une seule ligne !)

Lorsqu'une règle de validation définie le type de données pouvant être
saisies dans une cellule, et que cette règle est de type "Personnalisée", il
faut que la formule utilisée comme critère de validation soit une formule
logique. Cette formule renverra donc VRAI ou FAUX.

Pour qu'une saisie puisse être validée, il faut que la formule renvoie VRAI,
sinon elle n'est pas acceptée, et c'est le message indiqué sur l'onglet
Alerte d'erreur qui est alors affiché.

La difficulté ici est que tu n'as pas un critère, mais quatre, qui peuvent chacun,
être défini séparément comme suit:

le 1er: que le code soit limité à 8 caractères.
la formule suivante le vérifie:
=NBCAR(A1)=8
elle renverra donc VRAI ou FAUX

le 2e: que les trois premiers caractères soient des lettres
la formule suivante le vérifie
=ESTTEXTE(STXT(A1;1;3))
elle renverra donc VRAI ou FAUX

le 3e: que les trois caractères suivants soient des chiffres la formule suivante le vérifie
=ESTNUM(1*STXT(A1;4;3))
elle renverra donc VRAI ou FAUX

le 4e: que les deux derniers caractères soient des lettres
la formule suivante le vérifie
=ESTTEXTE(DROITE(A1;2))
elle renverra donc VRAI ou FAUX

Pour que l'ensemble de ces critères soient vérifiés, et que notre règle de
validation renvoie VRAI seulement si tous les critères sont VRAI, on aurait
pu utiliser la fonction logique ET() de la façon suivante:

=ET((NBCAR(A1)=8);ESTTEXTE(STXT(A1;1;3));ESTNUM
(1*STXT(A1;4;3));ESTTEXTE(DROITE(A1;2)))

Le résultat aurait été le même qu'avec la fonction que je t'ai proposée.

On peut aussi (c'est ce que j'ai fait...) utiliser une autre méthode qui
exploite l'équivalence
VRAI=1 et FAUX=0

Imaginons que les 4 critères soient vérifiés, donc VRAI, la formule

=(NBCAR(A1)=8)*ESTTEXTE(STXT(A1;1;3))*ESTNUM
(1*STXT(A1;4;3))*ESTTEXTE(DROITE(A1;2))

serait donc équivalente à:
=VRAI*VRAI*VRAI*VRAI

donc équivalente à:
=1*1*1*1

résultat =1

et 1, est bien supérieur à 0 (c'est ici qu'intervient le 0< en début de
formule)
(=0<1)
la formule globale renvoie donc VRAI, la saisie est acceptée.

Si un au moins des arguments n'avait pas été vérifié, par ex, le 2e critère,
on aurait eu:

=VRAI*FAUX*VRAI*VRAI

soit: =1*0*1*1
soit: =0
la formule =0<0 aurait renvoyé FAUX, la saisie aurait été refusée, et le
message d'Alerte d'erreur se serait affiché.

Il n'aurait pas été possible ici d'utiliser l'opérateur de concaténation &,
qui aurait produit, pour la première formule une valeur d'erreur:
=ET("VRAIVRAIVRAIVRAI") = #VALEUR!

et pour la seconde, une valeur "erronée",
=0<"VRAIVRAIVRAIVRAI"
qui renvoie systématiquement VRAI puisque les valeurs num sont toujours <
aux valeurs alpha.
ChrisV, (N°809)
Format "table des matières"
Comment créer un format "table des matières" qui donne a peu près ceci : A B AZERTY.............. 150 QSDFGH.............. 100
En colonne A appliquer le format @*.(arobas+étoile+point)
tu peux remplacer le point par _ - + / ou n'importe quel autre caractère

Cette réponse se trouve dans le classeur pense-bete à ...

Cette astuce est illustrée dans ce classeur exemple :
gd-tank (téléchargé 6240 fois)
Geedee, (N°808)
Supprimer les liens hypertexte
Aprés avoir fait un copier coller d'une page web dans excel, je souhaiterai supprimer les liens (textes en bleu) pour me retrouver qu'avec des cellules au format texte.
Si tu en as beaucoup, tu peux essayer cette petite procédure qui supprime tous
les liens hypertextes de la feuille de calcul active :

Sub macro()
ActiveSheet.Hyperlinks.Delete
End Sub
Frédéric Sigonneau,
Ajouté ou modifié le 25/10/2003 (N°807)
Recalculer après un changement de format
Je cherche à faire recalculer une fonction dès qu'une cellule est mise en gras
Application.volatile permet de recalculer lorsqu'une cellule a été modifiée dans sa
valeur mais pas dans son format.

Tu peux cependant intercepter l'action du bouton qui
met en gras. La macro intercept_gras" détecte l'action et lance la macro "trouvé" qui
elle, met du gras ou l'enlève et recalcule.
Lla 3ème macro sert à réinitialiser l'action normale de la
mise en gras.

Sub intercept_gras()
Dim Ctl As CommandBarControl
For Each Ctl In Application.CommandBars("Formatting").Controls
If Ctl.Caption = "&Gras" Then
Ctl.OnAction = "trouvé"
End If
Next Ctl
End Sub

Sub trouvé()
If Selection.Font.Bold = True Then
Selection.Font.Bold = False
Else
Selection.Font.Bold = True
End If
Calculate
End Sub

Sub reinit_Gras()
Dim Ctl As CommandBarControl
For Each Ctl In Application.CommandBars("Formatting").Controls
If Ctl.Caption = "&Gras" Then
Ctl.OnAction = ""
End If
Next Ctl
End Sub
Popi, (N°806)
Raccourci clavier pour "coller les valeurs"
Comment créer des raccourcis claviers ? Par exemple pour la fonction coller les valeurs ?
Tu peux créer cette petite macro qui affecte le raccourci Ctrl+Maj+V à la fonction Coller Valeur

Sub CreatePasteShortCutKeys()
Application.OnKey "+^v", "PasteValue"
End Sub

Sub PasteValue()
Selection.PasteSpecial Paste:=xlPasteValues
End Sub
Xavier Rouchon, (N°805)
Quand formater une cellule ?
Quand faut-il appliquer un format à une cellule : avant ou après avoir entré les données ? J'ai l'impression que cela change l'affichage...
Je te propose une petite expérience pour illustrer le propos:

Dans une cellule (A1) formatée standard, inscris un formule de
ton choix : Ex: =C1 ,
la formule n'a pas besoin d'être compliquée puisque le principe est le même.
Si C1 <>"" A1 va afficher la valeur de la cellule C1

Qu'est-ce qui arrive si tu changes le format de la cellue A1
en format texte après que tu ais entré la formule, Et ben...

A1 continue à se comporter comme si elle était formatée standard
et la formule continue d'opérer normalement. La seule différence
l'affichage est à gauche.

Cependant, si tu as formaté ta cellule texte (A1) avant d'inscrire
la formule, la formule est inopérante et A1 affiche la formule au
lieu de la calculer et bien attendu l'affichage est à gauche.

Cette réalité c'est celle d'Excel, et non pas celle d'une application
d'une formule ou d'une circonstance particulière.

En fait, le format d'une cellule est et sera effectif seulement
lorsque le contenu de la cellule aura été modifié. Dans le cas de cellule
vide il est effectif immédiatement.
Si je peux me permettre l'analogie suivante: En VBA, si on attribue
spécifiquement à une variable un type, elle le gardera durant tout
le déroulement de la procédure. Dans une feuille, c'est le changement
de la valeur de la cellule qui détermine la "Fin d'une procédure" ou
"le début d'un procédure" puisque sauf avis contraire de
l'usager, il y aura recalcule de la feuille si besoin il y a.
À bien des égards, cette situation peut laisser des gens perplexes et
semer un peu de confusion chez les utilisateurs.
Denis Michon, (N°804)
Liste des polices utilisées
Comment retrouver les polices utilisées dans un doc excel.
Tu trouveras la police utilisée dans la barre d'outils standard (le menu
déroulant police) en sélectionnant le caractère en question.
Lolo

Ou, pour éviter de te balader dans toutes les cellules de ta feuille :
Sub Roxane()

For Each cell In ActiveSheet.UsedRange
If Not IsEmpty(cell) Then

MsgBox cell.Font.Name
End If
Next
MsgBox "Y'en à plus..."
End Sub

ChrisV

Mais s'il y a plusieurs polices dans la même
cellule, ça plante...
Alors une soluce encore plus complète :

Sub Roxane_modif()
For Each cell In ActiveSheet.UsedRange
If Not IsEmpty(cell) Then
cell.Select
'On explore chaque caractère un par un
For i = 1 To Len(cell.Value)
'On garde une trace de l'ancienne couleur de caractère
a = cell.Characters(i, 1).Font.Color
'On colorie en rouge le caractère courant...pour ne pas se perdre...
cell.Characters(i, 1).Font.Color = 255
MsgBox cell.Characters(i, 1).Font.Name
cell.Characters(i,
1).Font.Color = a
Next i
End If
Next
MsgBox
"Y'en à plus..."
End Sub
Jean-François Bron, (N°803)
Nom propres en majuscule
Dans la cellule A1 j'ai écrit, jean pierre dupond. Je voudrais que dans la cellule B1, excel m'écrive Jean Pierre Dupond.
"=NomPropre("A1")
ou en VBA :
Sub MajDebMot()
For Each cell In Selection
cell.Value = Application.WorksheetFunction.Proper(cell.Value)
Next
cell
End Sub
ChrisV, (N°802)
Mise en forme conditionnelle
Comment utiliser au mieux la "mise en forme conditionnelle" ?
Alain Vallon (AV) nous a préparé un super classeur de démonstration des nombreuses
utilisations possibles de la mise en forme conditionnelle. A télécharger absolument !

Cette astuce est illustrée dans ce classeur exemple :
av-mefc (téléchargé 28803 fois)
Alain Vallon, (N°801)
Masquage des messages d'erreur
Comment masquer les messages d'erreur ?
pour ne pas voir les messages d'erreurs dans une page (cachez ce sein que je
ne saurais voir !)
sélectionner toute la page
format / mise en forme conditionnelle / la formule est / =ESTERREUR(A1) /
format / police / police blanche / OK / OK
les messages d'erreur sont masqués
Jacques Chaussard, Laurent Daures, (N°800)
Mise en majuscule rapide
Existe-il une macro ou un petit truc simple qui permettrait de mettre tout le texte d'une ou de plusieurs cellules en majuscules, sans devoir chaque fois passer par la commande Majuscule(texte) ?
On peut affecter le code à l'évènement DoubleClick

Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal
Target
As Range, Cancel As Boolean)
Target = UCase(Target)
End Sub

On
peut créer une macro
cellule.value = ucase(cellule.value) puis lui affecter
un raccourci via
Outils/Macros/MacrosOptions...

Il est également possible d'utiliser le clic droit souris et d'affecter la
macro à un item du menu contextuel
Pierre Fauconnier, (N°799)
MAJUSCULES minuscules
Comment dans un classeur changer passer tout un texte écrit en majuscules en minuscules ?
Sub Minus()
For Each cell In Selection
cell.Value = LCase(cell.Value)
Next cell
End Sub

les minuscules en MAJUSCULES:

Sub Majus()
For Each cell In Selection
cell.Value = UCase(cell.Value)
Next cell
End Sub


Majuscule Au Début De Chaque Mot

Sub MajDebMot()
For Each cell In Selection
cell.Value = Application.WorksheetFunction.Proper(cell.Value)
Next cell
End Sub
Flo Cabon, ChrisV, (N°798)
Liste des polices utilisées dans un classeur
Comment connaître la liste des polices utilisées dans un classeur ?
Tu peux utiliser l'une ou l'autre de ces trois procédures :
Sub listePolices() 'Laurent Longre MPFE
Dim Arr, i As Integer
Application.ScreenUpdating = False
Workbooks.Add
With Application.CommandBars.FindControl(Id:=1728)
ReDim Arr(1 To .ListCount, 1 To 1)
For i = 1 To UBound(Arr)
Arr(i, 1) = .List(i)
Cells(i, 2).Font.Name = Arr(i, 1)
Next i
End With
With Range("A1").Resize(i - 1)
.Value = Arr
.Offset(0, 1) = "Gloire à Toi, ô Immortelle Zaza !"
End With
Columns("A:B").AutoFit
End Sub
******************************

Sub test() 'Frédéric Sigonneau MPFE
PolicesUtilisees ActiveWorkbook
End Sub

Sub PolicesUtilisees(Wbk As Workbook)
Dim cell As Range, coll As New Collection
Dim Sht As Worksheet, Msg$, i&

For Each Sht In Wbk.Worksheets
For Each cell In Sht.UsedRange
If Not IsEmpty(cell) Then
'Au cas où plusieurs polices dans la même cellule
For i = 1 To cell.Characters.Count
On Error Resume Next
coll.Add cell.Characters(i, 1).Font.Name, _
cell.Characters(i, 1).Font.Name
On Error GoTo 0
Next i
End If
Next cell
Next Sht

Msg = "Polices utilisées dans '" & Wbk.Name & "' : " & vbLf & vbLf
For i = 1 To coll.Count
Msg = Msg & coll(i) & vbLf
Next i

MsgBox Msg, , "Polices de caractères"
End Sub
Laurent Longre, Frédéric Sigonneau, (N°797)
Liste des polices utilisées
Est il possible de connaître toutes les polices utilisées dans un classeur ?
Utilise le code ci-dessous, à recopier dans un module standard. Seules les
feuilles de calcul sont examinées. Si tu veux inclure les polices d'éventuelles
feuilles graphiques, il faudra adapter

'==================
Sub test()
Dim Class As Workbook
Set Class = Workbooks("PetitCalendrier.xls")
PolicesUtilisees Class
End Sub

Sub PolicesUtilisees(Wbk As Workbook)
Dim cell As Range, coll As New Collection
Dim Sht As Object, Msg$, i&

For Each Sht In Wbk.Sheets
For Each cell In Sht.UsedRange
If Not IsEmpty(cell) Then
'Au cas où plusieurs polices dans la même cellule
For i = 1 To Len(cell.Text)
On Error Resume Next
coll.Add cell.Characters(i, 1).Font.Name, _
cell.Characters(i, 1).Font.Name
On Error GoTo 0
Next i
End If
Next cell
Next Sht

Msg = "Polices utilisées dans '" & Wbk.Name & "' : " & vbLf & vbLf
For i = 1 To coll.Count
Msg = Msg & coll(i) & vbLf
Next i

MsgBox Msg, , "Polices de caractères"

End Sub
Frédéric Sigonneau, (N°796)
Les grands nombres dans excel
Excel affiche des 0 au delà du 15ème chiffre. Y a t'il une solution pour voir le nombre complètement ? D'autre part, la fonction Mod renvoie #NOMBRE! si j'utilise un grand nombre. Comment obtenir l'équivalent de cette fonction et avoir un résultat visible ?
Excel travaille avec des nombres de type Double, sur une précision
d'environ 15 chiffres. Il n'y a aucun moyen de le forcer à utiliser une
précision supérieure.

Si tu en as vraiment besoin, tu peux te faire aider par le type
"Decimal" de VBA, qui autorise une précision d'environ 28 chiffres. Il
faudra saisir tous tes grands nombres dans des cellules formatées en
texte et faire tous les calculs sur ces nombres par l'intermédiaire de
fonctions macro.

Quelques exemples de fonctions utilisant le type Decimal :

' Addition
Function ADD(Nombre1 As String, Nombre2 As String) As String
ADD = CDec(Nombre1) + Nombre2
End Function

' Soustraction
Function SUBST(Nombre1 As String, Nombre2 As String) As String
SUBST = CDec(Nombre1) - Nombre2
End Function

' Multiplication
Function MULT(Nombre1 As String, Nombre2 As String) As String
MULT = CDec(Nombre1) * Nombre2
End Function

'Division
Function DIV(Nombre1 As String, Nombre2 As String) As String
DIV = CDec(Nombre1) / Nombre2
End Function

' Modulo
Function MOD2(Nombre As String, Diviseur As String) As String
Dim Tmp
Tmp = CDec(Nombre) / Diviseur
MOD2 = Nombre - CDec(Left(Tmp, InStr(1, Tmp, _
Application.International(xlDecimalSeparator)) - 1)) * Diviseur
End Function

' Somme d'une plage
Function SOMME2(Plage As Range)
Dim Arr
Arr = (Plage)
For Each Elt In Arr
SOMME2 = CDec(SOMME2) + CDec(Elt)
Next
SOMME2 = CStr(SOMME2)
End Function

Avec par exemple les nombres 123456789012345678901 et
98765432109876543210 saisis en A1 et A2 (formatées en texte),
=MOD2(A1;A2) renverra le modulo sur 20 chiffres, 24691356902469135691
(également en format texte).
Laurent Longre, (N°795)
Ecriture de fractions
Comment écrire 1/2 dans une cellule ?
Applique le format fraction, fraction d'un nombre 1/4 à ta cellule et tape
simplement 1/2. Excel prendra 0.5 en compte dans les calculs.
Flo Cabon, (N°794)
Formats anormaux
Quand j'entre dans une cellule formatée en dates jj/mm/aa par exemple 26/06/01 au lieu de 26/06/01 j'obtiens 04/01/00 soit 4.33333 en format nombre en date 04/01/00 !!!!
Outils/Options/Transition => décoche "autre mode de saisie des formules" et
tant qu'à y être "autre mode de saisie des formules". Ceci se produit souvent
quand on récupère des données qui ont été saisies sous Lotus.
Laurent Mortézai, (N°793)
Masquage d'erreurs sur cellules coloriées
Dans ma feuille, j'ai des valeurs d'erreur qui apparaissent tant que l'ensemble des données n'est pas entré. Comment faire pour les masquer temporairement à l'aide d'une mise en forme conditionnelle ?
Pour masquer les messages d'erreurs, une façon de faire c'est d'écrire en
blanc sur blanc. Mais si le fond des cellules est colorié, ça complique...
D'ou l'idée de cette petite proc. qui appliquera systématiquement une
couleur de police identique à la couleur de remplissage de la cellule afin
de masquer les messages d'erreur disgracieux...

Sub EsERR()

For Each cell In Selection
cI = cell.Interior.ColorIndex
If cell.Interior.ColorIndex = xlNone And WorksheetFunction _
.IsError(cell) = True Then
cell.Font.ColorIndex = 2
ElseIf WorksheetFunction.IsError(cell) = True Then

cell.Font.ColorIndex = cI
End If
Next cell
End Sub
ChrisV, (N°792)
Adresses E-mail sans lien hypertexte
Quand je tape une adresse E-mail dans excel, elle est automatiquement transformée en lien hypertexte. Comme la garder en texte simple ?
Après avoir tapé ton adresse, tu fais Entrée puis Ctrl+z puis Entrée.
Ou, tu tapes une apostrophe avant ton adresse.
Ou, si tu as Excel 2002, Correction automatique, onglet Mise en forme
automatique au cours de la frappe, et tu décoches Adresses Internet et réseaux
avec des liens hypertexte.
Frédéric Sigonneau, (N°791)
Validité d'une adresse Email
J'aimerais vérifier sur excel qu'une adresse Email est valide: de forme *@*.* et sans accents
Essaye une petite fonction perso de ce genre :

Function EmailValide(sAdresse) As Boolean
Const Accents = "àáâãäåèéêëìíîïðñòóôõöùúûüýÿ"
Dim Test1 As Boolean, Test2 As Boolean, Test3 As Boolean

Test1 = InStr(1, sAdresse, "@") > 0
Test2 = InStr(1, sAdresse, ".") > 0
Test3 = True
For i = 1 To Len(sAdresse)
If InStr(1, Accents, LCase(Mid(sAdresse, i, 1))) > 0 Then
Test3 = False
Exit For
End If
Next
EmailValide = Test1 And Test2 And Test3
End Function

Je ne sais pas si ça couvre tous les cas de figure, mais il y a de la place pour
ajouter des tests supplémentaires :)
Frédéric Sigonneau, (N°790)
Afficher en clair la couleur de fond d'une cellule
Je n'ai pas trouvé de formule permettant de donner la couleur de fond d'une cellule. Par exemple : Si A1 est coloriée en jaune afficher Jaune dans B1
Function NomCouleur(cell) As String
x = cell.Interior.ColorIndex
If x < 0 Then
NomCouleur = "Aucune"
Else
NomCouleur = Switch(x = 1, "Noir", x = 2, "Blanc", x = 3, "Rouge" _
, x = 4, "Vert brillant", x = 5, "Bleu", x = 6, "Jaune", x = 7, "Rose", _
x = 8, "Turquoise", x = 9, "Rouge foncé", x = 10, "Vert", x = 11, _
"Bleu foncé", x = 12, "Marron clair", x = 13, "Violet", x = 14, _
"Bleu-vert", x = 15, "Gris-25%", x = 16, "Gris-50%", x = 33, _
"Bleu ciel", x = 34, "Turquoise clair", x = 35, "Vert clair", _
x = 36, "Jaune clair", x = 37, "Bleu moyen", x = 38, "Rose saumon" _
, x = 39, "Lavande", x = 40, "Brun", x = 41, "Bleu clair", x = 42, _
"Vert d'eau", x = 43, "Citronvert", x = 44, "Or", x = 45, "Orange clair" _
, x = 46, "Orange", x = 47, "Bleu-gris", x = 48, "Gris-40%", x = 49, _
"Bleu-vert foncé", x = 50, "Vert marin", x = 51, "Vert foncé", x = 52, _
"Vert olive", x = 53, "Marron", x = 54, "Prune", x = 55, "Indigo", _
x = 56, "Gris-80%")
End If
End Function
Alain Vallon, (N°789)
Copier les hauteurs de ligne et les largeurs de colonnes.
Comment copier coler une feuille dans un autre classeur en respectant la hauteur des lignes et la largeur des colonnes ?
Voici deux macros qui permettent de copier une feuille et de la coller dans un autre
classeur en respectant la hauteur de ligne et la largeur de colonne.

Public Plage() As Long
Public Col, Li As Integer
Sub copierformat()
Col = Selection.Columns.Count
Li = Selection.Rows.Count
xcol = ActiveCell.Column - 1
xli = ActiveCell.Row - 1
ReDim Plage(Col, Li, 1) As Long
For Each cell In Selection
Plage(cell.Column - xcol, cell.Row - xli, 0) = cell.ColumnWidth
Plage(cell.Column - xcol, cell.Row - xli, 1) = cell.RowHeight
Next
End Sub

Sub CollerFormat()
ActiveCell.Select
xcol = 1
xli = 1
For xcol = 1 To Col
ActiveCell.ColumnWidth = Plage(xcol, 1, 0)
ActiveCell.Offset(0, 1).Range("A1").Select
Next
For xli = 1 To Li
ActiveCell.RowHeight = Plage(1, xli, 1)
ActiveCell.Offset(1, 0).Range("A1").Select
Next
End Sub
Monique Brunel, (N°788)
Copier en un clic en conservant les formats
Comment conserver les formats (mises en forme, fontes...) lors d'une copie de feuille?
Se placer sur le petit rectangle situé à l'intersection entre la
lettre A (1) colonne) et le chiffre 1 (1° ligne). Cliquer dessus. Copier.
RdV dans une autre feuille, se placer vous au même endroit et collez.
D@niel, (N°787)
Copier les couleurs de fond de cellule
J'ai mis le fond de ma cellule dans une couleur personnalisée mais quand je copie la feuille dans un autre classeur, la couleur personnalisée ne suit pas. Comment faire pour que la couleur personnalisé suive ?
Effectivement, les couleurs personnalisées ne sont pas copiées
automatiquement. Mais il y a un truc: une fois ta copie effectuée, tu te
places dans le classeur de destination, et tu effectues
Outils/Options/onglet couleurs, et tu sélectionnes le nom du classeur
d'origine dans la lsite déroulante "copier les couleurs de"...
Laurent Mortézai, (N°786)
Rechercher une valeur dans une plage et la colorier
Je voudrais qu'un utilisateur entre une date dans une boîte de dialogue. Si cette date existe déjà dans une plage de ma feuille, j'aimerais que celle ci soit coloriée en jaune.
mess = InputBox("Saisissez la Date recherchée", "")
If mess = "" Then Exit Sub
On Error GoTo laFin
Dim CelleLa As Range
For Each CelleLa In Range("A1:F10") 'la tu mets ce que tu veux
If CelleLa = CDate(mess) Then CelleLa.Interior.ColorIndex = 6
Next
laFin:
Alain Vallon, (N°785)
Faire clignoter en fonction de la valeur
Comment faire clignoter une cellule si sa valeur dépasse 100 ?
Dans cet exemple, la mise en forme conditionnelle
met un nombre supérieur à 100 en rouge.
et la macro de feuille :

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Target.Select
If IsNumeric(Target) Then
If ActiveCell.Value > 100 Then Call Clignotement
End If
End Sub

fait passer la couleur de remplissage du blanc
au rouge 300 fois.

Sub Clignotement()
Set plage = ActiveCell
Fond = ActiveCell.Interior.ColorIndex
For i = 1 To 300
plage.Interior.ColorIndex = 2
plage.Interior.ColorIndex = 3
Next i
plage.Interior.ColorIndex = Fond
End Sub
Serge Garneau, (N°784)
Une cellule qui clignote
Comment faire clignoter du texte dans une cellule ?
Sans macro, pas possible dans excel...
Avec une macro de Bill Manville :

Pour créer une cellule qui clignote :
Définit un nouveau style (format/style/Flash/ajouter)
Applique le à la cellule que tu choisis, place le code suivant dans un module de
feuille et lance la procédure flash en tant que auto-open. Le texte clignote entre
rouge et blanc.

Dim NextTime As Date

Sub Flash()
NextTime = Now +
TimeValue("00:00:01")
With ActiveWorkbook.Styles("Flash").Font
If .ColorIndex = 2 Then .ColorIndex = 3 Else .ColorIndex = 2
End With

Application.OnTime NextTime, "Flash"
End Sub

Sub StopIt()

Application.OnTime NextTime, "Flash", schedule:=False

ActiveWorkbook.Styles("Flash").Font.ColorIndex = xlAutomatic
End Sub

Bill Manville (traduction Flo)
****************************
Autre solution :

Comment faire pour qu'une cellule clignote quand la souris passe dessus.
Je suppose ici que la cellule que tu veux faire clignoter est B5.
1. Sors la boîte à outils Contrôles,
2. Insère un contrôle Image (sans image !) sur ta cellule,
3. Choisis les propriétés suivantes pour ton contrôle :
BackStyle : Transparent
BorderStyle : None
4. Le contrôle doit avoir les mêmes dimensions que ta cellule,
5. Utilise alors les deux macros suivantes :
Private Sub Image1_MouseMove(ByVal Button As Integer, _
ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Call Clignote
End Sub
Sub Clignote()
For i = 1 To 50
With [B5].Interior
.ColorIndex = 3
ColorIndex = xlNone
End With
Next i
End Sub
Bill Manville, Serge Garneau, (N°783)
Les couleurs pour excel (et plus)
Comment connaître les codes et choisir les couleurs disponibles dans excel ?



GeeDee nous propose deux classeurs superbes, qui permettent de jouer sur la
roue chromatique, de connaître les codes des couleurs dans excel, avec leur
correspondance en RVB. (à télécharger)

Jacques T aime aussi les couleurs et nous propose un classeur.

Cette astuce est illustrée dans ce classeur exemple :
gd-xlcolors (téléchargé 10866 fois)

GeeDee, Jacques Thiernesse, (N°782)
Cellules dépendantes en couleur
Est-il possible, lorsqu'une cellule contient une formule, de colorier le fond de toutes les cellules qui sont appelées par cette formule ?
[A1].Precedents.Interior.ColorIndex = 42

MAIS... à cause d'une limitation (restons gentil) du modèle d'Excel pour
retrouver les 'précédents', les cellules situées dans d'AUTRES feuilles ne
seront pas colorées.

Les cellules 'dependents' ont le même problème (on ne peut les récupérer
directement par .Dependents).
Alain Vallon, Daniel Maher, (N°781)
Cellule partagée par diagonale
Je souhaiterais partager une cellule, en mettant un trait dans la diagonale avec d'un côté par exemple DATE et dans l'autre partie NOM.
1) tu vas chercher dans Affichage -> Barres d'outils -> Personnalisé...
onglet Commandes Catégorie Format, un bouton *Bordure Dialgonale Bas* vers
la fin de la liste, tu places ce bouton dans une barre d'outils, tu fermes
la boîte de dialogue.
2) Tu appliques ce format à la cellule souhaitée.
3) Pour faire apparaître DATE et NOM (j'imagine de part et d'autre du trait oblique,
il faut ruser un peu avec :
* d'une part des espaces avant DATE
* d'autre part le séparateur ALT ENTREE entre tes deux mots.
En ajustant tout ça avec les autres réglages de l'alignement, tu dois obtenir ce que tu souhaites
Bernard Mazas, (N°780)
Bords de cellule arrondis
Peut-on arrondir les bordures rectangulaires dans une cellule ou un groupe de cellules fusionnées ?
Sub CelluleArrondie()
Set depart = ActiveCell
r1 = depart.Height
r2 = depart.Width
r3 = depart.Top
r4 = depart.Left

ActiveSheet.Shapes.AddShape(msoShapeRoundedRectangle, _
r4, r3, r2, r1).Select
Selection.ShapeRange.Fill.Visible = msoFalse
depart.Select
End
Sub

On peut encore arrondir davantage (une plage, entre autres ou des cellules fusionnées)
en tirant sur la poignée de l'image ainsi créée. Et pour que la couleur "n'oublie pas"
l'arrondi et reste "anguleuse", il suffit, par ex. de rajouter
Selection.ShapeRange.Fill.ForeColor.RGB = RGB(255, 0, 0)
et on a une cellule ou une plage dont la couleur est bien limitée par les bords arrondis
de l'image
Serge Garneau, Jean-Paul Sabatier, (N°779)
Les formats personnalisés : la base
Je voudrais savoir comment avoir les 3 formats d`une cellule - 1234.56 $ ou (1234.56 $) ou 1234.56 $ en rouge
Le format d'une cellule est composé de 4 arguments.

Standard;standard;standard;standard

1- premier standard : défini les nombres positifs
2- deuxième standard : défini les nombres négatifs
3- troisième standard : la valeur nulle (lorsque la cellule égale 0)
4- quatrière standard : le format texte

Si tu veux obtenir en rouge les nombres positifs ayant cette
apparence : 125,00 $ , c'est donc le premier argument que
tu vas renseigné comme dans l'exemple suivant :
Les couleurs que tu peux nommées sont : Cyan , Blanc, rouge,
bleu , jaune , vert, noir,
La couleur en premier et entre crochet droit suivi du format du nombre :

[rouge]# ##0.00 $;standard;standard;standard
si tu entres 1253.25 dans la cellule tu obtiendras : 1 253,25 $ en rouge
si tu entres -125 tu obtiendras -125 sans aucun format (c'est-à-dire sans
signe de dollar et sans couleur, puisque le deuxième élément (deuxième standard)
n'a pas été défini dans mon exemple. si tu avais voulu un autre format pour
les signes négatifs, il aurait fallu que tu définisses le deuxième argument.

Voici pour le principe de base.

Un dernier exemple : si dans une plage de cellule tu désirais faire afficher
le texte "zéro" en lieu et place de la valeur 0 dans chacune des cellules de ta plage
dont la valeur est égale à 0 , tu devrais définir le troisième argument de cette façon:

Standard;standard;"zéro";standard

et si tu désirais de ne pas voir l'affichage lorsque la cellule est égale à zéro
le format serait : Standard;standard:;standard

Si les couleurs nommées ne suffisent pas, il est
possible de faire appel à l'index des couleurs de la palette "Couleurs de
caractères" de la façon suivante:

[Couleur53]Standard;[Couleur14]-0,00;[Rouge]0;[Couleur27]Standard

NB tu trouveras sur cette même page les correspondances couleur-index
Denis Michon, ChrisV, (N°778)
Ajuster les colonnes
Comment faire pour que les colonnes d'une feuilles s'adaptent automatiquement à la taille du texte ?
Columns("A:H").EntireColumn.AutoFit
Thierry Rural, (N°777)
Compter cellules d'une même couleur
Comment pourrais-je faire pour compabiliser les cellules d'une même couleur.
Ce code, par exemple, qui va en outre additionner les valeurs des cellules
rouges. Attention, pas celles qui sont colorées par une mise en forme
conditionnelle.

Sub inventaireRouge()
sommeRouge = 0
compterRouge = 0
For Each cell In ActiveSheet.UsedRange
If cell.Interior.Color = vbRed Then
On Error Resume Next
sommeRouge = sommeRouge + cell.Value
On Error GoTo 0
compterRouge = compterRouge + 1
End If
Next
If compterRouge = 1 Then c = "cellule" Else c = "cellules"
MsgBox compterRouge & " " & c & " -- Total = " & sommeRouge
end if
End Sub
Eric Jeanne, (N°776)
Voir les 0 non significatifs
Comment faire pour que lorsque je saisis un nombre comme 0123, le 0 apparaisse ?
Clique droit sur ta cellule/format de cellule/nombre. Tu choisis nombre (ou
monétaire ou ce que tu veux) et tu sélectionnes le format qui se rapproche le
plus de ce que tu souhaites (par exemple, 0 décimales et séparateur de
milliers). Tu cliques alors dans personnalisé et là tu va pouvoir modifier le
format préalablement choisi qui s'affiche pour l'instant comme # ##0
Il te suffit de transformer le premier # en 0 devant et le tour est joué : 0 ##0.
Dans cet exemple tu auras donc 0 123 affiché dans ta cellule.
Tant que les nombres que tu entres auront moins de 5 chiffres le 0 s'affichera.
00 ##0 donnera 00 123

Rappel de l'aide d'excel:
# n'affiche que les chiffres significatifs et non les zéros non significatifs.
0 (zéro) affiche les zéros
non significatifs si un nombre a moins de chiffres qu'il n'y a de zéros dans le
format.
? ajoute des espaces pour les zéros non significatifs de chaque côté
du séparateur décimal en vue d'aligner les séparateurs décimaux lorsqu'une
police à largeur fixe telle que Courier N
Flo Cabon, (N°775)