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 Boucles et Compteurs

Installe un compteur en A3

Sub Compteur1()
For compteur = 1 To 200
Range("A3").Formula = compteur
Next
End Sub

Ajoute une valeur

Ajoute 100 aux valeurs de la colonne A dans la colonne B
et ceci pour les 10 premières cellules

Sub AjoutVAl()
Dim MaValeur, nbcell
For nbcell = 1 To 10
Range("A" & nbcell).Select
MaValeur = ActiveCell.Value
Range("B" & nbcell).Select
ActiveCell.Value = MaValeur + 100
Next
End Sub

Incrémente un compteur

'Le mot clé Step permet d'incrémenter ou de décrémenter

Sub Total()
For i = 2 To 10 Step 2
Next i
MsgBox "Le total est de " & i
End Sub

Compte les valeurs identiques

Sub ValeursIdentiques()
Spinner = 0
Set plageCherche = Application.InputBox(Prompt:="Sélectionner la plage de recherche", Type:=8)
ValCherchée = Application.InputBox(Prompt:="Quelle valeur cherchez-vous?", Type:=1)
For Each Item In plageCherche
If Item.Value = ValCherchée Then Spinner = Spinner + 1
Next Item
MsgBox "Il y a " & CStr(Spinner) & " valeurs identiques"
End Sub

Compte le nombre de cellules vides de la sélection.

Sub CountCellvide()
numBlanks = 0
For Each c In Selection
If c.Value = "" Then
numBlanks = numBlanks + 1
End If
Next c
MsgBox "Il y a " & numBlanks & " cellules vides dans cette plage."
End Sub

Boucle pour parcourir une plage de cellules

'Utilise une boucle For Each...Next pour parcourir toutes les cellules d'une plage.
'Arrondi à zéro tout nombre dont la valeur absolue est inférieure à 0,05.

Sub Zero()
For Each Cellule In Range("A1:B10")
If Abs(Cellule.Value) < 0.05 Then
Cellule.Value = 0
End If
Next
End Sub

Affecte une largeur de 5 points à une colonne sur deux de la sélection sur la Feuil1.

Sub LargeurColonne()
For Each col In Selection.Columns
If col.Column Mod 2 = 0 Then
col.ColumnWidth = 5
End If
Next col
End Sub

Et pour une ligne (Toutes les 6 lignes):

Sub Ligne()
Range("D1:D20").Select     'Exemple de sélection possible
For Each col In Selection.Rows
If col.Row Mod 6 = 0 Then
col.RowHeight = 5
End If
Next col
End Sub

Cherche une valeur non numérique

Sub Test()

'Dès qu'une valeur non numérique est trouvée,
'un message s'affiche et sort de la boucle.

For Each Cellule In Range("A1:B5")
If IsNumeric(Cellule.Value) = False Then
MsgBox "La plage contient une valeur non numérique."
Exit For
End If
Next
End Sub

Modifie la valeur des cellules d'une plage nommée "MaPlage"

Sub Modifie()
Dim MaCellule As Object
For Each MaCellule In Range("MaPlage")
If MaCellule > 50 Then
MaCellule.Value = 1000
End If
Next MaCellule
End Sub

Et pour finir un compte à rebours qui déclenche l'exécution d'une macro

Sub CompteARebours()
compteur = 5

'pour décrementer le compteur

For compteur = 5 To 0 Step -1
Range("b3").Formula = compteur

'Pour exécuter la macro dans 5 secondes!!!

nouvHeure = Hour(Now())
nouvMinute = Minute(Now())
nouvSeconde = Second(Now()) + 1
Reprise = TimeSerial(nouvHeure, nouvMinute, nouvSeconde)
Application.Wait Reprise
Next
If Range("b3").Value = 0 Then

'Exécution de la macro ici

Call Macro1
End If
End Sub

 

[top]

 

     
 ©Conception et Graphisme. Daniel Josserand . Novembre 2000