Page Accueil FAQ MPFE Liens Format de nombres Téléchargement Applications Combinaisons


Index des Exemples

* * *
  SOMMAIRE
  La FAQ
  VBA NULS
  CONTRÔLES
  ASTUCES
Exemples
  Boucles
  Cellules
  Cellules 2
  Divers
  Erreurs
  Fichiers
  Feuilles
  Fonctions
  Impression
  Médias
  Messages
  Outils
  Spéciales
  Tests
  Le Web
  Userform
  XL et Word
  XL Clipboard
 
  Macro :o)
  Réactions
  Livre d'Or
  Wallpaper
Trucs
&
Astuces
  Sécurité
  Impression
  Données

 

titre


Format de Nombre

Format simple de nombres
Brut Résultat souhaité Format
27789,24 27 789,24 # ##0,00
-1250 -1 250,00 # ##0,00
45,5 45 1/2 #" "??/??
0 Valeur nulle 0;-0;"Valeur nulle"
1122 00-11-22 00-00-00
5 5............................................ @*.
45 45///////////////////////// @*/
1 1er ou 2ème si 2 etc... [=1]"1er";[>1]#"ème";"-"
Format monétaire
Brut Résultat souhaité Format
22000,25 22 000F # ##0 F;-# ##0 F
-1250 -1 250F # ##0 F;-# ##0 F
1200,24 1 Lire # ##0 Lire
12000,00 12 000,00 F(Rouge si négatif) # ##0,00 F;[Rouge]-# ##0,00 F]_-
12000 12 000,00 EUROS _-* # ##0,00\ [$EUROS -1]_-;-* # ##0,00\ [$EUROS -1]_-;_-* "-"??\ [$EUROS -1]_-
12000 12 000 € Standard" taper ici: Alt+0128"
Format personnalisé
Brut Résultat souhaité Format
75 75 tonnes #" tonnes"
4500 4 500 parts # ###" parts"
12 12 chats Standard "chats"
12 Lapins= 12 "Lapins = " Standard
999 Valeur incorrecte [<1000] "Valeur incorrecte"; 0
999 Masque le contenu ;;;
Format de date
Brut Résultat souhaité Format
18/03/2000 18-mars-00 jj-mmm-aa
18/03/2000 samedi 18 mars 2000 jjjj j mmmm aaaa
18/03/2000 mars-00 mmm-aa
10:25,2 (centièmes de seconde) 10:25,230 mm:ss,000
10:25 10:25 AM h:mm AM/PM
12:20:23 12 Heures 20 Minutes [h] "Heures" mm "Minutes"
18/03/80 né le 18 mars 1980 "né le" jj mmmm aaaa
21/02/1999 L'échéance est dépassée 21/02/99 [>31/12/99] "L'échéance est dépassée" jj/mm/aa

Formate la cellule A1 en Noir et A2 en Rouge

Sub CouleurRGB()
Range("a1").Interior.Color = RGB(0, 0, 0)
Range("a2").Interior.Color = RGB(255, 0, 0)
End Sub

Formate la cellule A1 en Standard Euros

Avec XL97

Sub Formate()
Range("A1").NumberFormat = "Standard ""Euros"""
End Sub

Avec XP

Sub Formate()
Range("A1").NumberFormat = "General ""Euros"""
End Sub

Inscrit une chaîne de caractères directement en minuscule ou en majuscule

Sub test()
'majuscule
MySTxt = Format("Echec et Mat", ">")
[E4] = MySTxt

'minuscule
MyTxt2 = Format("ECHEC et Mat", "<")
[E5] = MyTxt2
End Sub

Formate les cellules de la plage A1:A15 en rouge si supérieur à 10

Sub RougeSi()
For Each mycell In Range("A1:A15")
If mycell.Value > 10 Then
With mycell.Interior
.ColorIndex = 3
.Pattern = xlSolid
End With
End If
Next
End Sub

Supprime les formats de couleur

Sub EffaceFormat()
Range("A1:A15").Select
Selection.Interior.ColorIndex = xlNone
End Sub

Supprime les formats inutilisés. Utile pour conserver de la mémoire

- 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.
Laurent Longre

Testé sous Xp . DJ

Option Explicit

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

Encadre en rouge la zone en cours à partir de B2

Sub EncadrerZoneEnCours()
ActiveCell.SpecialCells(xlLastCell).Select
DerCell = ActiveCell.Address
Range("B2:" & DerCell).Select

With Selection
.Borders(xlEdgeLeft).LineStyle = xlContinuous
.Borders(xlEdgeLeft).Weight = xlMedium
.Borders(xlEdgeLeft).ColorIndex = 3
.Borders(xlEdgeTop).LineStyle = xlContinuous
.Borders(xlEdgeTop).Weight = xlMedium
.Borders(xlEdgeTop).ColorIndex = 3
.Borders(xlEdgeRight).LineStyle = xlContinuous
.Borders(xlEdgeRight).Weight = xlMedium
.Borders(xlEdgeRight).ColorIndex = 3
.Borders(xlEdgeBottom).LineStyle = xlContinuous
.Borders(xlEdgeBottom).Weight = xlMedium
.Borders(xlEdgeBottom).ColorIndex = 3
End With

Range("A1").Select
End Sub

Mise en forme conditionnelle

Mets en rouge la cellule si la valeur est supérieure à 10
Comment ?:
Sélectionnez la cellule > Format > Mise en forme conditionnelle.




En VBA:
Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, Formula1:="10"
Selection.FormatConditions(1).Interior.ColorIndex = 3

Il est possible aussi de mettre une condition avec une formule
Mets la cellule B3 en jaune si A1 est inférieur à A3

 

Mets en exposant le dernier caractère

Sub exposant()
N = Range("A1").Characters.Count
Range("A1").Characters(N, 1).Font.Superscript = True
'Characters(N - 2) 'pour les 3 derniers
End Sub

 

Comment colorier 1 ligne sur deux?

Avec une mise en forme conditionnelle
Sélectionnez la zone > Format > Mise en forme conditionnelle.




Explication de la formule =MOD(LIGNE();2)=1 (de Gaëtan Mourmant et Céline)

La fonction MOD renvoie le reste d'une division.
La fonction MOD comporte deux arguments : Nombre; Diviseur.
Nombre : quel est le nombre dont vous voulez obtenir le reste de la division ?
Ici, Nombre est le numéro de la ligne qui provient de la fonction LIGNE.
Diviseur : représente le nombre par lequel vous souhaitez diviser le nombre.
Ici, Diviseur est le nombre 2.

La fonction LIGNE comporte un argument : Référence
Référence est la cellule ou la plage de cellules dont vous voulez obtenir le numéro de ligne.
Si l'argument Référence est omis, la référence par défaut est celle de
la cellule dans laquelle la fonction LIGNE apparaît.
Ici, LIGNE() renvoie le numéro de la ligne de la cellule.

=MOD(LIGNE();2)=1

Après une division par 2, il reste 1 pour toutes les cellules faisant partie d'une LIGNE impaire.
Toutes les cellules avec cette Mise en forme conditionnelle, et faisant partie d'une ligne impaire, seront colorées.


et pour une colonne ?(Daniel.j)
=MOD(Colonne();2)=1

et pour 1 colonne sur trois ??
=MOD(COLONNE();3)=1


et maintenant :o))) (pour rigoler)

1 ligne jaune
1 ligne normale
1 ligne bleu

et 1 colonne sur deux rouge - - -

 

Comment avoir la liste des couleurs et leur index

Cette macro liste les 56 couleurs de la palette avec leur numéro d'index et en affiche un exemple.
La couleur est spécifiée sous la forme d'une valeur d'index dans la palette de couleurs.
La propriété ColorIndex renvoie ou définit la couleur.

Sub LesCouleurs()
Dim I As Integer
Application.ScreenUpdating = False
Sheets.Add
For I = 1 To 56
With Cells(I, 1)
.Value = "Couleur index N° " & I
.Font.ColorIndex = I
End With
Cells(I, 2).Interior.ColorIndex = I
Next I
Columns(1).EntireColumn.AutoFit
Application.ScreenUpdating = True
End Sub

 

[top]

 

     
 ©Conception et Graphisme. Daniel Josserand . Novembre 2000