Bonjour
Je me suis donné pour challenge de trouver les dimensions d'une plage que je sélectionne de façon aléatoire sur ma feuille de calcul , ( plage choisie pour des colonnes allant de A à Z et pas de limite pour les lignes )pour cela, j'ai pensé à travailler sur la valeur "string" qui est
selection.address
j'ai donc écris ceci , ca marche mais bon c'est pas élégant.. code à partir duquel j'en tire pour la sélection la ligne de début et de fin , la colonne de début et de fin .
Function dimensions(x As Range)
For i = 1 To Len(x.Address)
If Mid(x.Address, i, 1) = ":" Then
For j = 1 To i - 1
If IsNumeric(Mid(x.Address, j, 1)) Then
w = w & Mid(x.Address, j, 1) 'ligne début
End If
Next
ligne_début = w
For k = 1 To i - 1
If Not IsNumeric(Mid(x.Address, k, 1)) And Mid(x.Address, k, 1) <> "$" Then
alpha = alpha & Mid(x.Address, k, 1) 'colonne début
End If
Next
'conversion lettre -->valeur :
For u = 0 To 25
If Chr(u + 65) = alpha Then
colonne_début = u + 1
End If
Next
For j = i + 1 To Len(x.Address)
If IsNumeric(Mid(x.Address, j, 1)) Then
q = q & Mid(x.Address, j, 1) 'ligne début
End If
Next
ligne_fin = q
For k = i + 1 To Len(x.Address)
If Not IsNumeric(Mid(x.Address, k, 1)) And Mid(x.Address, k, 1) <> "$" Then
beta = beta & Mid(x.Address, k, 1) 'colonne début
End If
Next
'conversion lettre -->valeur :
For v = 0 To 25
If Chr(v + 65) = beta Then
colonne_fin = v + 1
End If
Next
End If
Next
dimensions = ligne_début & Chr(10) & ligne_fin & Chr(10) & colonne_début & Chr(10) & colonne_fin
End Function
puis ensuite je teste tout ca , comme suit
Sub test()
MsgBox dimensions(selection)
End Sub
peut on l'ameliorer en longueur ? ou existe t il un autre moyen que je ne connais surement pas ?
En vous remerciant pour vos réponses , Cordialement .