une selection de cellules

  • Initiateur de la discussion Initiateur de la discussion Reeaz
  • 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 !

R

Reeaz

Guest
Bonjour,

j'ai un tableau qui fait 4 collonnes mais dont le nombre de lignes est succeptible de varier.
Je voudrai créer une macro qui ne me selectionne que certaines collonnes sachant que je ne veux pas pas prendre le libellé de la collonne.
Par exmple ds mon fichier je ne voudrais selectionner que la plage C4:E18.
Ma macro est la suivante:

Sub selection()

Sheets("TCDBranch").Select
Range("D4").Select
Range(selection, selection.End(xlDown)).Select
Range(selection, selection.Offset(0, -1)).Select

End Sub

Mais ca ne marche pas!
Cela pourrait être très simple mais comme le nombre de lignes de mon tableau n'est pas toujours pareil, parfois il maque des éléments à mon tableau.

Si qqun pouvait m'aider...

Merci
 

Pièces jointes

Salut reeaz,

je te joint ton fichier un peu bricolé...

c'est simple, j'ai défini un nom "maliste" C4:E18 et demandé à la macro d'ouvrir ce nom....même si tu rajoutes des lignes ça marche...

en attendant une solluce de pro..

excellemment votre. syl's le bricolo 🙂))
 

Pièces jointes

  • Fg.zip
    Fg.zip
    7.8 KB · Affichages: 29
Salut Reeaz !

Essaie plutôt ça :


Sub Selection()
Sheets("TCDBranch").Select
Range("C4:e4").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.Offset(1, 0)).Select
End Sub

@ +

Moa
 
Excuse j'ai oublié de te préciser une petite chose :

Quand tu fais un "Offset", tu indiques en premier la ligne et en second la colonne.

Donc dans ta macro, tu avais demandé la même ligne et la colonne d'avant, alors qu'il te fallait juste demander une ligne supplémentaire.

Tu remarqueras que je demande Range(C4:E4).

Donc, soit tu fais comme ça en demandant tout de suite la largeur du tableau que tu veux sélectionner, ou soit, tu utilises :

Range(Selection, Selection.End(xlToRight)).Select

Voilà !

@ +

Moa
 
il y a encore plus simple et plus propre :

Sub Selection()
Dim Plage As Range
With Sheets("TCDBranch")
'en attribuant ta plage à une variable, tu peux ainsi éventuellement la réutiliser
'plus tard sans devoir la requalifier
'si tu ne veux l'utiliser qu'une seule fois, tu peux supprimer la variable Plage
'et écrire simplement :
'.Range("C4", .Range("E4").End(xlDown)).Select

Set Plage = .Range("C4", .Range("E4").End(xlDown))
End With
Plage.Select
End Sub
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
518
Retour