Exclure première ligne (c'est la ligne n ° 1 dans ma feuille) à partir de USEDRANGE méthode?
J'ai quelques données d'entrée à partir de mon courtier.
J'ai écrit un code pour automatiser les calculs, l'ajout de colonnes et de l'insertion de certaines formules.
En fin de compte, je veux faire la mise en forme conditionnelle (affectant l'ensemble des lignes) afin de déterminer les opérations qui sont rentables (vert ensemble de la ligne) et des opérations qui sont perdus (police rouge toute la ligne).
Pour ce faire, j'ai utilisé USEDRANGE méthode - je sais que c'est une question difficile, par mes données sont cohérentes - il n'y a pas de lignes vides, seulement quelques colonnes vides, donc je pense que USEDRANGE va la traiter. J'ai besoin d'utiliser USEDRANGE parce que je vais avoir plus de lignes la prochaine fois, je vais exécuter ce rapport.
Mais j'ai dans mes données de la première ligne, où je garde les en-têtes 4 de mes colonnes.
Je veux que mes en-têtes noire (de la police), mais j'ai encore envie d'utiliser USEDRANGE méthode.
Comment puis-je exécuter ma mise en forme conditionnelle à l'aide de USEDRANGE méthode, à l'exclusion de la première rangée (de sorte qu'il reste noir, la police).
Option Explicit
Dim RowNumber As Long
Dim LastRow As Long
Dim ColumnNumber As Integer
Dim LastColumn As Integer
Dim VBA As Worksheet
Dim TotalRange As Range
Sub CondicionalFormating_WholeRows()
Set VBA = Workbooks("lista transakcji Dukascopy od October 2015.xlsm").Worksheets("VBA")
Set TotalRange = VBA.UsedRange
LastRow = VBA.Cells(Rows.Count, 1).End(xlUp).Row
LastColumn = VBA.Cells(1, Columns.Count).End(xlToLeft).Column
TotalRange.FormatConditions.Add Type:=xlExpression, Formula1:="=$H1<0"
TotalRange.FormatConditions(TotalRange.FormatConditions.Count).SetFirstPriority
With TotalRange.FormatConditions(1).Font
.Bold = False
.Italic = False
.Strikethrough = False
.Color = -16777024
.TintAndShade = 0
End With
TotalRange.FormatConditions(1).StopIfTrue = False
TotalRange.FormatConditions.Add Type:=xlExpression, Formula1:="=$H1>0"
TotalRange.FormatConditions(TotalRange.FormatConditions.Count).SetFirstPriority
With TotalRange.FormatConditions(1).Font
.Bold = False
.Italic = False
.Strikethrough = False
.ThemeColor = xlThemeColorAccent6
.TintAndShade = -0.499984740745262
End With
TotalRange.FormatConditions(1).StopIfTrue = False
' VBA.Range(Cells(1, 1), Cells(LastRow, LastColumn)).Select
End Sub
- Je vous suggère de ne pas utiliser
.UsedRange
et explicitementTotalRange
..UsedRange
peut causer des maux de tête. - Tout d'abord, je voudrais faire Redimensionner. Et ensuite seulement de Décalage. Sinon, l'erreur 1004 est possible.
Vous devez vous connecter pour publier un commentaire.
Utilisation
.offset(1)
pour déplacer l'ensemble de la gamme de référence de 1 ligne. Cela laisse une ligne vide à la fin de la plage..Resize(VBA.UsedRange.Rows.Count - 1)
va couper les derniers rangs.