J'ai simplement besoin d'un code pour sélectionner une cellule, mais cette cellule pour sélectionner des modifications. J'ai une cellule dans le classeur qui identifiera quelle cellule elle devrait être. La cellule A1 contient le numéro de cellule à sélectionner.
Dans cet exemple, la cellule A1 contient le mot "P25". Par conséquent, je souhaite que le code ci-dessous fasse référence à A1 pour la référence de cellule indirecte à P25; sélectionnez donc la cellule P25.
J'ai essayé ces deux lignes séparément:
Sub IndirectCellSelect()
Sheet.Range(INDIRECT(A1)).Select
Range(INDIRECT(A1)).Select
End Sub
J'obtiens l'erreur Sub ou Function n'est pas défini, quand il arrive au mot INDIRECT
Une légère modification du code affiché fonctionne:
Range([indirect("a1")]).Select
mais je conseillerais d'essayer l'un ou l'autre à la place:
Sheet.Range(Sheet.Range("A1").Value).Select
Range(Range("A1")).Select
le premier étant plus explicite et recommandé dans le code de production.
Worksheets("list").Sort.SortFields.Add Key:=Range(INDIRECT("I16" & "3" & ":" & "I16" & "5002")) _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With Worksheets("list").Sort
.SetRange Range("B2:K5002")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
Vous pouvez procéder différemment, mais si vous souhaitez utiliser une fonction de feuille de calcul Excel native dans votre code VBA, procédez comme suit (notez que j'ai également ajusté la façon dont vous faites référence à A1):
Application.WorksheetFunction.Indirect(Sheets(1).Range("A1"))
Edit Excuses - Je n'avais pas testé cela. Il semble que la fonction indirecte ne soit pas disponible dans ce contexte. Au lieu de cela, essayez quelque chose comme ceci:
Dim rng as Range
Set rng = sheets(1).Range("A1")
sheets(1).Range(rng.text).Select