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


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

 

titre


Les Tests

Pas plus de 10 caractères dans la cellule

Sub testNbCaractere()
CellTest = Range("a1").Value
If Len(CellTest) > 10 Then
MsgBox "Pas plus de 10 caractères", vbOKOnly, "Erreur de caractères"
Exit Sub
End If
End Sub

Pas de caractères spéciaux dans la cellule

Sub testCaractereSpeciaux()
CellTest = Range("B1").Value
For x = 1 To Len(CellTest)
Car = Mid(CellTest, x, 1)
If Car = ":" Or Car = "!" Or Car = "-" Or Car = "/" Or Car = " " _
Or Car = "." Or Car = ";" Or Car = "," Or Car = "\" Then
MsgBox "Pas de caractères spéciaux", vbOKOnly, "Erreur de caractères"
Exit Sub
End If
Next
End Sub

Selon la valeur du nombre

Sub SelonCas()
Nombre = ActiveCell.Value
Select Case Nombre

Case 1 To 5
Range("A1").Value = 0

Case 6, 7, 8, 9, 10
Range("A1").Value = 1

Case Else
Range("A1").Value = 1000

End Select
End Sub

Teste la saisie dans une InputBox

Sub testSaisie()
Dim saisie As String
Do While saisie = ""
saisie = InputBox("Entrez une valeur")
Loop
End Sub

Teste si une touche a été tapée pendant l'éxecution d'une macro.

Lors de l'exécution d'une macro Excel ne teste pas l'utilisation du clavier(sauf Echap)

Declare Function GetAsyncKeyState Lib "User32" _
(ByVal vKey As Integer) As Integer

'GetAsyncKeyState est asynchrone - La touche est mémorisée

Sub testToucheA()
For y = 1 To 10000
Application.StatusBar = y
Next

If (GetAsyncKeyState(65) <> 0) Then
MsgBox "Touche A frappée."
End If
End Sub

a ou A = 65
b ou B = 66 ...etc jusqu'à z ou Z = 90
Espace =32

Teste une valeur avec IsNumeric, IsDate et IsEmpty

Utilise la fonction IsNumeric pour tester si une valeur est numérique ou non.

Sub Valeurnum()
Dim MaValeur, MaValeur2, MonTest, MonTest2

MaValeur = "4578"
MonTest = IsNumeric(MaValeur) 'Retourne Vrai
MsgBox MonTest

MaValeur = "4578,456"
MonTest = IsNumeric(MaValeur) 'Retourne Vrai
MsgBox MonTest

MaValeur2 = "daniel"
MonTest2 = IsNumeric(MaValeur2) 'Retourne Faux
MsgBox MonTest2
End Sub

Utilise la fonction IsDate pour tester si une valeur est une date.

Sub ValeurDate()
Dim MaDate, NonDate, TestDate, TestDate2

MaDate = "02 Mai 2002": NonDate = "Daniel"
TestDate = IsDate(MaDate) 'Retourne Vrai
MsgBox TestDate

TestDate2 = IsDate(NonDate) 'Retourne Faux
MsgBox TestDate2
End Sub

Utilise la fonction IsEmpty pour tester si une valeur est vide ou non vide.

Sub TestValeurVide()
Dim MaValeur, MonTest

MaValeur = Empty 'il y a une valeur
MonTest = IsEmpty(MaValeur) ' Test si ma valeur est vide
MsgBox MonTest 'Retourne Vrai

MaValeur = Null 'il n'y a pas de valeur
MonTest = IsEmpty(MaValeur)' Test si ma valeur est vide (EstVide)
MsgBox MonTest 'Retourne Faux

MaValeur = Null 'il n'y a pas de valeur
MonTest = Not IsEmpty(MaValeur) ' Test si ma valeur n'est pas vide (Non EstVide)
MsgBox MonTest 'Retourne Vrai
End Sub

Teste si une macro complémentaire est installée ou non

Ici l'utilitaire d'analyse

Sub testUtilitAnalyse()
If AddIns("Utilitaire d'analyse").Installed = True Then
MsgBox "Utilitaire d'analyse installé"
Else

MsgBox "Utilitaire d'analyse non installé"
End If
End Sub

affiche la liste des compléments

Sub afficheComplement()
For Each a In AddIns
MsgBox a.FullName
Next a
End Sub

Teste si une cellule est vide ou non vide

Teste et sélectionne les cellules vides de la zone A1:A10

Sub testCelluleVide()
[A1:A10].SpecialCells(xlCellTypeBlanks).Select
End Sub

Teste et sélectionne les cellules contenant une formule

Sub testCelluleformule()
[A1:A10].SpecialCells(xlCellTypeFormulas).Select
End Sub

Teste et sélectionne les cellules contenant un nombre

Sub testCellule3()
[A1:A10].SpecialCells(xlCellTypeConstants, 1).Select
' 2 ème argument =1 (nombre)
End Sub

Teste et sélectionne les cellules contenant du texte

Sub testCelluleText()
[A1:A10].SpecialCells(xlCellTypeConstants, 2).Select
' 2 ème argument =2 (texte)
End Sub

Teste et sélectionne les cellules contenant soit du texte soit une valeur

Sub testCellule()
[A1:A10].SpecialCells(xlCellTypeConstants, 3).Select
' 2 ème argument =3 (texte+nombre)
End Sub

Teste et sélectionne les cellules contenant un commentaire

Sub testCelluleText()
[A1:A10].SpecialCells(xlCellTypeComments).Select
End Sub

Teste si l'option "Déplacement après validation est cochée"
Outils>Options>Modifications : "Deplace la sélection après validation"

Sub testDeplacementValidation()
If Application.MoveAfterReturn = True Then
MsgBox "Le déplacement après validation est activé"
Else
MsgBox "Le déplacement après validation est désactivé"
End If
End Sub

Sub testDeplacementValidationDroite()
Application.MoveAfterReturn = True
If Application.MoveAfterReturnDirection = xlToRight Then
MsgBox "Déplacement à droite"
End If
End Sub

xlToLeft= gauche, xlToRight= droit, xlUp= en haut, ou xlDown= en bas

Exemple d'utilisation:

Sub TestValeurCell()
With ActiveCell

Teste si une chaine de caractere a été saisie dans la cellule active

If Application.IsNumber(.Value) = False Then
.Clear

teste si le déplacement après validation est cochée
dans ce cas il faut remonter d'une cellule pour retourner sur la même cellule

If Application.MoveAfterReturn = True Then
ActiveCell.Offset(-1).Select
End If
End If
End With
'Retour au test
ActiveSheet.OnEntry = "TestValeurCell"
End Sub

Teste la version d'excel et de l'OS

Sub TestVersionXL()

versionXL = Val(Application.Version)

Select Case versionXL

Case 8
MsgBox "Excel (97) version " & Application.Version
MsgBox "Excel Version: " & Application.Version & " Build " & Application.Build _
& vbCrLf & vbCrLf & Application.OperatingSystem

Case 9
MsgBox "Excel (2000) version " & Application.Version
MsgBox "Excel Version: " & Application.Version & " Build " & Application.Build _
& vbCrLf & vbCrLf & Application.OperatingSystem

Case 10
MsgBox "Excel (2002) version " & Application.Version
MsgBox "Excel Version: " & Application.Version & " Build " & Application.Build _
& vbCrLf & vbCrLf & Application.OperatingSystem

Case 11
MsgBox "Excel (2003) version " & Application.Version
MsgBox "Excel Version: " & Application.Version & " Build " & Application.Build _
& vbCrLf & vbCrLf & Application.OperatingSystem

Case 12 MsgBox "Excel (2007) version " & Application.Version
MsgBox "Excel Version: " & Application.Version & " Build " & Application.Build _
& vbCrLf & vbCrLf & Application.OperatingSystem

Case Else
MsgBox "Autre version"
End Select
End Sub

 

[top]

 

     
 ©Conception et Graphisme. Daniel Josserand . Novembre 2000