Bonjour,
je m'entraine avec le livre VBA pour les Nuls et 3 petites macro me posent soucis avec comme points communs un problème de compteur.
La première est une simple boucle For Next pour incrémenter sur une une colonne les valeurs 1,2,3...jusqu'à 10, mais les résultats donnés ne sont pas bon. Par défaut le calcul s'effectue directement en colonne A. Dois-je définir un objet range pour choisir où le calcul a lieu?
La seconde macro est une procédure d'évènement d'ouverture du classeur. Un classique du genre : il s'agit de dire combien de fois le classeur a été ouvert. Ici le compteur répète 1 constamment, qu'importe le nombre de fois que ce dernier a été ouvert.
Enfin, la dernière macro est censé effectuer une boucle à travers chaque cellule de la plage utilisée, et ce pour chaque feuille de chaque classeur ouvert et dire le nombre de cellule qui contient des caractères gras. Pareil ici, elle affiche 0.
Merci à ceux qui ont envie de regarder. Cordialement.
je m'entraine avec le livre VBA pour les Nuls et 3 petites macro me posent soucis avec comme points communs un problème de compteur.
La première est une simple boucle For Next pour incrémenter sur une une colonne les valeurs 1,2,3...jusqu'à 10, mais les résultats donnés ne sont pas bon. Par défaut le calcul s'effectue directement en colonne A. Dois-je définir un objet range pour choisir où le calcul a lieu?
Code:
'Problème : le calcul s'effectue mais donne d'autre valeur.
Sub ForNextImbriqué()
Dim Col As Long
Dim Lign As Long
Dim Cnt As Integer
Dim x As Integer
x = 0
For Col = 1 To 1
For Lign = 1 To 10
For Cnt = 1 To 10
x = x + Cnt
Cells(Lign, Col) = x
Next Cnt
Next Lign
Next Col
End Sub
La seconde macro est une procédure d'évènement d'ouverture du classeur. Un classique du genre : il s'agit de dire combien de fois le classeur a été ouvert. Ici le compteur répète 1 constamment, qu'importe le nombre de fois que ce dernier a été ouvert.
Code:
Private Sub Workbook_Open()
Dim Cnt As Long
Cnt = GetSetting("MyApp", "Settings", "Open", 0)
Cnt = Cnt + 1
SaveSetting "My app", "Settings", "Open", Cnt
MsgBox "Ce classeur a été ouvert" & Cnt & " fois."
End Sub
Enfin, la dernière macro est censé effectuer une boucle à travers chaque cellule de la plage utilisée, et ce pour chaque feuille de chaque classeur ouvert et dire le nombre de cellule qui contient des caractères gras. Pareil ici, elle affiche 0.
Code:
Sub CompteGras()
Dim Classeur As Workbook
Dim Feuille As Worksheet
Dim Cellule As Range
Dim compte As Long
For Each Classeur In Workbooks
For Each Feuille In Classeur.Worksheets
For Each Cellule In Feuille.UsedRange
If Cells.Font.Bold = True Then
compte = compte + 1
End If
Next Cellule
Next Feuille
Next Classeur
MsgBox compte & "Cellules en caractères gras trouvées"
End Sub
Merci à ceux qui ont envie de regarder. Cordialement.