Code VBA
Aucun objet Row ou Column
Il n’y a pas d’objets Row ou Column et il n’y a pas de collections Rows ou Columns.
Il est cependant possible d’utiliser les propriétés de l’objet activesheet
ActiveSheet.Columns(icolumn)
Ceci renvoie un objet Range qui fait référence à une colonne particulière.
Range("C1").ColumnWidth = Range("A1").ColumnWidth
icount = Selection.Columns.Count - returns the number of columns currently selected
ActiveSheet.Rows
ActiveSheet.UsedRange.Rows.Count
ActiveSheet.Rows(10).Cells(6).Select
Les propriétés EntireColumn et EntireRow renvoient les colonnes ou les lignes dans lesquelles se trouve la plage donnée.
Ils sont alors traités comme des plages normales de cellules.
ActiveSheet.Outlines.ShowLevels RowLevels:=2
Range("B2:B10").EntireColumn.Interior.ColorIndex = 27
Application.Intersect(Activesheet.Rows(2).Cells, Activesheet.Columns(4).Cells)
Colonnes
ActiveSheet.Columns
ActiveSheet.UsedRange.Columns.Count
ActiveSheet.Columns("A:C").Delete
Range("A1:E10").Columns("C").Insert
Nombre de lignes actuellement sélectionnées
lcount = Selection.Rows.Count
Nombre de colonnes dans une sélection multiple
Dim iareacount As Integer
Dim itotal as Integer
itotal = 0
For iareacount = 1 to Selection.Areas.Count
itotal = itotal + Selection.Areas(iareacount).Columns.Count
Next iareacount
Call MsgBox(itotal)
ActiveSheet.UsedRange.Row
Aussi appelé GetColumnName, ColumnNumberToLetter
ColumnNumberToNa,e
Question
Je voudrais masquer une ligne si certaines valeurs sont saisies dans trois cellules. Par exemple, si le Royaume-Uni est sélectionné dans les cellules C3 et C5 et que CI est sélectionné dans la cellule C10, j’aurais alors la rangée 16 masquée. Je voudrais que cela soit dynamique, c’est-à-dire mis à jour à chaque fois que la valeur dans la cellule change.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range
Set rng = Me.Range("C3,C5,C10")
If Not Intersect(rng, Target) Is Nothing Then
Rows(16).EntireRow.Hidden = Range("C3").Value = _
"United Kingdom" And Range("C5").Value = _
"United Kingdom" And Range("C10") = "C1"
End If
End Sub
.