Dans Excel vba, obtenir une sortie des hauteurs de ligne est facile à itérer en utilisant la propriété rows.height:
Sub outputRowHeight()
Dim i As Integer
For i = 1 To 50
Debug.Print Rows(i).Address & " is : " & Rows(i).Height
Next i
End Sub
Pour la largeur de la colonne, nous utilisons la propriété columns.width. Il est un peu plus délicat parce que vous ne pouvez pas itérer directement par des lettres de l'alphabet, donc nous avons besoin d'utiliser l'indice à la place:
Sub outputColumnWidths1()
Dim i As Integer
For i = 1 To 26 '26th letter is Z
Debug.Print Columns(i).Address & " is : " & Columns(i).Width
Next i
End Sub
Si vous voulez éviter d'avoir à connaître l'indice d'une lettre, vous pouvez utiliser une instruction if pour sortir une fois que vous êtes hors de portée:
Sub outputColumnWidths2()
Dim i As Integer
For i = 1 To 99 'using 99 as arbitrary high end number
If Columns(i).Address <> "$AA:$AA" Then
Debug.Print Columns(i).Address & " is : " & Columns(i).Width
Else 'once we get outside of A-Z, we want to end.
Exit For
End If
Next i
End Sub
Cela produira les mêmes résultats que le premier exemple, mais vous pouvez l'étendre à autant de colonnes que vous voulez en se cognant le nombre d'itérations et le nom de la première colonne du premier que vous ne voulez pas évaluer.
Espérons que cela aide!
Est-ce que cela donnerait simplement la hauteur/largeur totale? Serait-il possible de connaître le nombre de lignes dans cette plage? Ou peut-être la hauteur/largeur de chaque ligne/colonne? – RocketGoal
Pour une rangée, utiliser Plage ("A1"), Hauteur (ou tout autre nombre) et pour la largeur: Plage ("A"). – CristiC