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


* * *
  SOMMAIRE
  La FAQ
  HOME
  BASIC
  ASTUCES
Exemples
  Boucles
  Cellules
  Cellules 2
  Divers
  Erreurs
  Fichiers
  Feuilles
  Fonctions
  Impression
  Médias
  Messages
  Outils
  Spéciales
  Tests
  Le Web
  XL et Word
  XL Clipboard
 
  Macro :o)
  Réactions
  Livre d'Or

 

titre


Les Fonctions

Comment écrire une fonction de feuille de calcul avec VBA ?

Fait la somme de A1 à A4
La première instruction en référence L1C1 et la deuxième plus simplement

Pour connaître la traduction VBA de la fonction...
UTILISER l'enregistreur de macro !!!

Sub InsereFonction()
Range("A5").FormulaR1C1 = "=SUM(R[-4]C:R[-1]C)"
[A6] = "=sum(a1:A4)"
End Sub

Comment récupérer certains caractères d'une chaîne?

a Récupération de 2 caractères à partir du 4 ème
b Récupération de tous les caractères à partir du 2 ème
c Récupération de tous les caractères à partir du 4 ème
d Récupération de 5 caractères à partir du 4 ème (l'espace compte pour 1 caractère)

Fonction MID

Sub midd()
Dim MaChaine
MaChaine = "abcde 12345" ' Initialise la chaîne.
a = Mid(MaChaine, 4, 2) '= de
b = Mid(MaChaine, 2) '= bcde 12345
c = Mid(MaChaine, 4) '=de 12345
d = Mid(MaChaine, 4, 5) '=de 12

MsgBox ("Résultat MID 4'2 : " + CStr(a))
MsgBox ("Résultat MID 2 : " + CStr(b))
MsgBox ("Résultat MID 4 : " + CStr(c))
MsgBox ("Résultat MID 4'5 : " + CStr(d))
End Sub

 

Comment insérer des espaces dans une chaîne?

Insère 10 espaces entre deux chaînes.

Fonction SPACE

Sub espace()
Dim MaChaine

MaChaine = "Salut" & Space(10) & "à vous"
MsgBox MaChaine

End Sub

Comment écrire une fonction personnalisée?

Cette fonction perso fait la somme des cellules rouges

Taper ces lignes dans Editor VB

Function CouleurCell(Range, Optional Couleur)
Dim Cell As Object
For Each Cell In Range
If Cell.Interior.ColorIndex = Couleur Then _
CouleurCell = CouleurCell + Cell
Next Cell
End Function

Pour appeler cette fonction dans la feuille de calcul
Taper, par exemple, dans une cellule l'instruction:
(3 représente la couleur rouge)

=couleurcell(A1:A9;3)

Comment n'afficher que le résultat d'une formule dans une cellule ?

Sub InserResultFct()

'En mettant la formule entre crochets seul le résultat de la formule
'est affiché dans la cellule

[A1] = [average(C5:C8)]           ' moyenne de C5:C8
[A2] = [PRODUCT(C5:C8)]      ' produit de C5:C8
[A3] = [SUM(C5:C8)]                ' somme de C5:C8
[A4] = [SUMIF(C5:C8,">5")]      ' somme si valeur >5
[A5] = [COUNTA(C5:C8)]           ' nombre d'item
[A6] = [COUNTIF(C5:C8,">5")]     ' nombre d'item si valeur >5
End Sub


Sub InsereFct()

'Alors que de cette façon c'est la formule qui est insèrée

[A10] = "=SUM(C5:C8)"                ' somme de C5:C8
[A11] = "=SUMIF(C5:C8,"">5"")"      ' somme si valeur >5
End Sub

Comment écrire une fonction matricielle avec VBA ?

Cherche la plus grande valeur d'une plage nommée "Qt"

Sub InsereFonctionMaricielle()
Selection.FormulaArray = "=LARGE(Qt,1)"
End Sub

Comment ne pas afficher les valeurs d'erreur dans le résultat d'une formule ?

1ère méthode

A partir d'excel 2000 vous pouvez utiliser la mise en forme conditionnelle !
Sélectionner la cellule qui contient la formule
Dans le menu FORMAT => MISE EN FORME CONDITIONNELLE
=> CONDITION 1 =>LA FORMULE EST
Taper : =ESTERREUR(réf_cellule)
où réf_cellule est la référence relative de la cellule active dans la sélection.
=>Puis FORMAT =>FORMAT DE CELLULE sélectionner la couleur blanche.

2ème méthode

Au lieu d'écrire la formule ainsi:
=a1/a2
Ecrivez comme cela:
=SI(ESTERREUR(a1/a2);"";a1/a2)
Si une valeur d'erreur est calculée
(a2 est vide ou contient du texte par exemple) la fonction n'affiche rien!

Comment créer un "pseudo" graphique avec la fonction REPT ?

rept.zip 
  32 ko  Téléchargez ce classeur.
[top]

 

     
 ©Conception et Graphisme. Daniel Josserand . Novembre 2000