![]() |
|
Forum
|
|
|
#1 (permalink) |
|
Guest
Messages: n/a
|
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 |
| ANNONCES | |||
|
|
|
|
#2 (permalink) |
|
Guest
Messages: n/a
|
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 )) |
|
|
#4 (permalink) |
|
Guest
Messages: n/a
|
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 |
|
|
#5 (permalink) |
|
Guest
Messages: n/a
|
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 |
| Liens sociaux |
| Outils de la discussion | |
|
|