Je souhaite que mon programme commence un comptage à un emplacement spécifique défini par une variable. Je sais que vous pouvez utiliser rn = sh.Cells(9, 1)
par exemple, et la variable rn
tient maintenant l'emplacement de cells(9,1)
. Mais quand j'utilise la rn
variable dans ma commande de compte, je reçois l'erreur suivante:VBA Plage utilisant une variable pour définir un emplacement
Method 'Range' of object' _worksheet' failed
Voici mon code:
Option Explicit
Sub Struc_Equa()
Dim n As Integer
End sub
Sub countN(n)
Dim sh As Worksheet
Dim rn As Range
Dim SheNa As String
SheNa = ActiveSheet.Name
Set sh = ThisWorkbook.Sheets(SheNa)
Set rn = sh.Cells(9, 1)
' The command below does not work
'n = sh.Range(rn, sh.Range(rn).End(xlToRight)).Columns.Count
' I am able to do what I want but in a inefficient way (shown below)
'n = sh.Range("A9", sh.Range("A9").End(xlToRight)).Columns.Count
rn.Activate
MsgBox (n)
End Sub
Pourquoi cette erreur se passe?
C'était exactement le problème. Pouvez-vous expliquer plus loin ce qui n'allait pas avec le code original? –
@MaxHollander Voir ma mise à jour. J'espère que c'est plus clair maintenant. ;) – L42
Avez-vous beaucoup d'expérience avec C++ j'ai quelques questions concernant sa capacité etc –