XL pour MAC Sélection plage de cellules avec variable dans macro

CM1090

XLDnaute Nouveau
Bonjour,

Dans une macro, je souhaiterai sélectionner une plage de cellules (une ligne à vrai dire) avec un numéro de ligne variable.

Pour sélectionner une cellule (R8), j'ai par exemple : Range("R8").Select
Pour une plage, j'aurai Range("R8:T12").Select
Avec une variable dans une autre feuille (Devis), j'ai : Range("=@INDIRECT('Devis'!AM$11&'Devis'!$R$11)").Select (où AM11 correspond à la valeur S, et R11, à la valeur 25; Soit ici la sélection de la cellule S25 de la feuille Devis).

Ma question concerne la sélection des cellules I12 à P12, avec 12 pouvant varier.
J'ai fait plusieurs tentatives mais je ne trouve pas ....
Je suis parti de : Range("=@INDIRECT((AA$11&$R$13):=@INDIRECT(DI$11&$R$13)").Select
I12 est déterminé par AA11=I, R13=12, et P12, par P=DI11, et R13=12
J'ai fait des essais avec des ", des ', des ( entre autres ...

Merci pour votre aide !

Christophe
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour CM,
Difficile de comprendre, vous devriez être plus clair.
D'après ce que j'ai compris de cette question :
Ma question concerne la sélection des cellules I12 à P12, avec 12 pouvant varier.
...
I12 est déterminé par AA11=I, R13=12, et P12, par P=DI11, et R13=12
VB:
Sub Essai()
    Range([AA11] & [R13] & ":" & [DI11] & [R13]).Select
End Sub
Et si vous réutilisez ultérieurement cette plage, autant faire :
VB:
Sub Essai3()
    Dim Plage As Range
    Set Plage = Range([AA11] & [R13] & ":" & [DI11] & [R13])
    ' Travail sur Plage par ex :
    Plage.Interior.Color = RGB(Int(255 * Rnd), Int(255 * Rnd), Int(255 * Rnd))
End Sub
Voir PJ
 

Pièces jointes

  • CM.xlsm
    15.1 KB · Affichages: 3
Dernière édition:

CM1090

XLDnaute Nouveau
Bonjour CM,
Difficile de comprendre, vous devriez être plus clair.
D'après ce que j'ai compris de cette question :

VB:
Sub Essai()
    Range([AA11] & [R13] & ":" & [DI11] & [R13]).Select
End Sub
Et si vous réutilisez ultérieurement cette plage, autant faire :
VB:
Sub Essai3()
    Dim Plage As Range
    Set Plage = Range([AA11] & [R13] & ":" & [DI11] & [R13])
    ' Travail sur Plage par ex :
    Plage.Interior.Color = RGB(Int(255 * Rnd), Int(255 * Rnd), Int(255 * Rnd))
End Sub
Voir PJ
Super !!!!!
Ca fonctionne très bien, c'était exactement ça !
Merci beaucoup. Bon Weekend
Christophe
 

Staple1600

XLDnaute Barbatruc
Bonsoir

Pour le plaisir de recroiser sylvanu
Et pour le plaisir de faire l'idiot dans mon VBE
(tout en apportant un petit complément, ou plutôt une variante syntaxique)
;)
NB: ce sont les mots bleus (salut Christophe ;)), qui compte dans mon fatras vbaistique.
Si j'ai bien compris de quoi il retourne dans ce fil, ma syntaxe renvoie la même plage que sylvanu.
Maintenant, on est libre d'en faire ce qu'on veut (c'est juste une variante syntaxique)
Enrichi (BBcode):
Sub test()
For i = 1 To 7
Call rogation_nocturne
Next
End Sub
Private Sub rogation_nocturne()
Dim sylvanu As Range, UmmaGumma As Range
Randomize 1600
[R13] = Application.RandBetween(1, 12)
[AA11] = "I"
[DI11] = "P"

Set sylvanu = _
                Range([AA11] & [R13] & ":" & [DI11] & [R13]) ' syntaxe sylvanienne
Set UmmaGumma = _
                Cells([R13], CStr([AA11])).Resize(, 8) ' syntaxe staplienne

MsgBox _
        sylvanu.Address(0, 0) & "=" & UmmaGumma.Address(0, 0) & _
        vbCr & vbCr & vbTab & (sylvanu.Address = UmmaGumma.Address), _
        vbExclamation, "La vérité n'est pas ailleurs, comme disait Fox."

UmmaGumma.Interior.Color = QBColor(9)

End Sub
 

Discussions similaires

Réponses
26
Affichages
377

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16