définir une plage sans activate

  • Initiateur de la discussion Initiateur de la discussion jhofman
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

jhofman

XLDnaute Occasionnel
Bonjour,

je cherche à définir une plage. dans mon classeur pour un onglet appelé ONglet.
avec la première méthode ça marche bien mais je souhaite ne pas utiliser la fonction Activate

Code:
ThisWorkbook.Sheets(ONglet).Activate
L = ThisWorkbook.Sheets(ONglet).Cells(65536, Colonne).End(xlUp).Row 'dernière ligne du tableau
Set MaPlage = ActiveWorkbook.Sheets(ONglet).Range(Cells(2, Colonne), Cells(L, Colonne))

avec cette méthode ça marche aussi mais le nom de la colonne est figée.

Code:
L = ThisWorkbook.Sheets(ONglet).Cells(65536, Colonne).End(xlUp).Row 'dernière ligne du tableau
 Set MaPlage = ThisWorkbook.Worksheets(ONglet).Range("B2:B" & L)

je souhaite utiliser ce code mais cela ne fonctionne pas :
- ni activation de l'onglet
- ni écriture en dur de la colonne.
.... mais cela ne fonctionne pas.
🙂

Code:
L = ThisWorkbook.Sheets(ONglet).Cells(65536, Colonne).End(xlUp).Row 'dernière ligne du tableau
Set MaPlage = ThisWorkbook.Worksheets(ONglet).Range(Cells(2, Colonne), Cells(L, Colonne))
 
Re : définir une plage sans activate

Bonjour jhofman,

essaye :

Code:
L = ThisWorkbook.Sheets(ONglet).Cells(65536, Colonne).End(xlUp).Row 'dernière ligne du tableau
With ThisWorkbook.Worksheets(ONglet)
Set MaPlage = .Range(.Cells(2, Colonne), .Cells(L, Colonne))
End with

les Cells dans le Range doivent pointer sur la même feuille, par défaut ils font référence à la feuille active
 
Re : définir une plage sans activate

une petite explication complémentaire :

si tu mets la ligne

Range("A1").select

VBA part du principe que tu veux sélectionner la cellule A1 de la feuille Active

si tu mets

Worksheets("Feuil1").range(cells(1,1), cells(5,1)).value
le Range pointe sur la feuil1 mais les Cells pointent sur la feuille active, ce qui peut poser des problèmes
avec
With Worksheets("Feuil1")
.range(.cells(1,1), .cells(5,1)).value
end with
tout pointe sur la Feuil1
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
917
Retour