J'ai une boucle qui met la police en gras sur chaque 10ème entrée dans une feuille Excel, mais je veux une police en gras à chaque 20ème entrée. Comment puis-je résoudre ce problème? Toute aide est grandement appréciée.VBA: Rendre chaque 20ème cellule en gras
Voici le code que je travaille avec:
'insert xxxx9 after xxxx8 if needed
For i = 3 To counter - 1
If Cells(i, 1).Value Mod 10 = 8 Then
' counter = counter + 1
If Cells(i + 1, 1) <> Cells(i, 1) + 1 Then
i = i + 1
Rows(i & ":" & i).Select
Selection.Insert Shift:=xlDown
Cells(i, 1) = Cells(i - 1, 1) + 1
Range("A" & 20).Select
Selection.Font.Bold = True
Cells(i, 2) = "900"
Range("B" & i).Select
Selection.Font.Bold = True
Cells(i, 3) = "chk"
Range("C" & i).Select
Selection.Font.Bold = True
Cells(i, 6) = "1"
Range("F" & i).Select
Selection.Font.Bold = True
Else
i = i + 1
Rows(i & ":" & i).Select
Range("A" & i).Select
Selection.Font.Bold = True
End If
End If
Next
'count number of entries
counter = 2
While (Cells(counter, 1).Value <> "" Or Cells(counter, 1).Value <> Null)
counter = counter + 1
Wend
'insert xxxx9 after xxxx8 if needed
For i = 3 To counter - 1
If Cells(i, 1).Value Mod 10 = 8 Then
' counter = counter + 1
If Cells(i + 1, 1) <> Cells(i, 1) + 1 Then
i = i + 1
Rows(i & ":" & i).Select
Selection.Insert Shift:=xlDown
Cells(i, 1) = Cells(i - 1, 1) + 1
Range("A" & 20).Select
Selection.Font.Bold = True
Cells(i, 2) = "900"
Range("B" & i).Select
Selection.Font.Bold = True
Cells(i, 3) = "chk"
Range("C" & i).Select
Selection.Font.Bold = True
Cells(i, 6) = "1"
Range("F" & i).Select
Selection.Font.Bold = True
Else
i = i + 1
Rows(i & ":" & i).Select
Range("A" & i).Select
Selection.Font.Bold = True
End If
End If
Next
Modifiez la façon dont 'for ... next' itère comme' For i = 3 To counter - 1 Step 20'. Cela permettra d'accélérer la routine en supprimant la nécessité de vérifier que vous êtes sur la bonne rangée. – Jeeped
Merci pour l'aide. Cela a fonctionné d'une certaine manière, mais il a maintenant arrêté de mettre un caractère gras sur la 20ème entrée aussi. –
Je ne suis pas sûr d'avoir bien compris, mais il semble que vous sélectionniez toutes les 10 lignes pour le traitement, c'est-à-dire que vous vous attendez à ce que la première colonne contienne des nombres séquentiels, et donc 'If Cells (i, 1) .Value Mod 10 = 8' sélectionne des rangées avec des valeurs de 8, 18, 28, etc. Ceci pourrait expliquer pourquoi la suggestion de @Jeeped a provoqué l'arrêt du bolding. Je pense que vous devez mieux expliquer votre objectif afin d'obtenir une bonne assistance. – vknowles