Syntaxe de sélection de plage dynamique en VBA

Bonjour à tous

Je dois sélectionner une plage de cellules de N colonnes par N lignes. Le nombre' et l position des lignes dans les colonnes sont variables.

Voici mon code :

Sub sélection()

'Range("$CT$6").End(xlDown).Select'Cellule d'angle en haut à droite OK

'Range("$CJ$5").Offset(Range("$D$3"), 0).Select 'Cellule d'angle en bas à gauche OK

'Range("Range("$CT$6").End(xlDown):Range("$CJ$5").Offset(Range("$D$3"), 0)").Select 'Ca ne fonctionne pas. Quelle est la syntaxe correcte ?

End Sub

Les 2 premières lignes me permettent de vérifier que je suis bien sur les bonnes cellules.

La 3ème ligne doit sélectionner toute la plage. C'est là que je cale sur la syntaxe correste.

Si quelqu'un peut m'éclairer ce sera super.

En attendant et vu l'heure bon appétit à tous

Bonjour,

Pourquoi ne pas nous envoyer un petit fichier exemple, sans nous parler des colonnes CJ, CT, de la valeur de D3?

Je n'ai pas envie de créer un classeur vide qui reprend tes hypothèses.

Et je pense que le forum sera d'accord pour dire que si tu veux de l'aide, il faut nous aider

Cdlt

Bonjour Jean-Eric

Je n'avais pas inclus le fichier dont j'ai extrait le code qui me pose problème car c'est un peu l'usine à gaz et que je croyais naïvement que la lecture du code était assez explicite. Méa culpa.

Voici donc un fichier simplifié contenant la macro. Les références de cellules sont évidemment différentes de celles du fichier d'origine, mais la syntaxe du code est la même.

La plage à sélectionner sur la feuille de calculs est écrite en rouge.

Merci d'avance

138selection1.zip (9.46 Ko)

Re,

Un test mais pas convaincu

A te relire certainement.

Public Sub test()
Dim Ws As Worksheet
Dim derLigne As Long
Dim fin_Plage As Long
Dim Plage As Range
    Application.ScreenUpdating = False
    Set Ws = Worksheets("Feuil1")
    With Ws
        fin_Plage = .[B5]
        derLigne = .Range("F" & Rows.Count).End(xlUp).Row
        Set Plage = .Range(.Cells(5 + fin_Plage, "D"), .Cells(derLigne, "F"))
        Plage.Select
        MsgBox Plage.Address
    End With
    Set Ws = Nothing: Set Plage = Nothing
End Sub
152selection1.zip (15.75 Ko)

Rebonsoir à tous

Comme tu t'en doutais Jean-Eric je reviens, mais avec une solution cette fois, que j'ai enfin trouvée après avoir cherché un peu partout.

Dans le fichier que j'avais joint, la syntaxe que je cherchais est la suivante : (Voir nouveau fichier)

Range(Range("$F$6").End(xlDown), Range("$D$5").Offset(Range("$B$5"), 0)).Select

Et dans mon fichier réel : (Voir ma première question)

Range(Range("$CT$6").End(xlDown), Range("$CJ$5").Offset(Range("$D$3"), 0)).Select

Merci d'avoir cherché une solution. Même si je ne l'ai pas retenue je garde le code sous le coude, on ne sait jamais...

A+

Wwill

270selection1b.zip (15.59 Ko)
Rechercher des sujets similaires à "syntaxe selection plage dynamique vba"