Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Une sélection inattendue

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 !

Magic_Doctor

XLDnaute Barbatruc
Supporter XLD
Bonjour,

J'ai un tableau de 3 colonnes.
Quand je sélectionne une cellule de la colonne du milieu, je voudrais que toutes les cellules se situant au-dessous soient sélectionnées. J'y suis presque arrivé mais avec un problème. Sur la feuille jointe, le problème est très clair.

Merci pour me dire où je me suis planté.
 

Pièces jointes

Re : Une sélection inattendue

Bonjour Magic_Doctor,

Essaye ceci :

Code:
Sub Seleccion()
If Not Intersect(ActiveCell, [Tablo].Resize([Tablo].Rows.Count - 1)) Is Nothing Then _
Intersect(Rows(ActiveCell.Row + 1 & ":" & Rows.Count), [Tablo].Offset(, -1).Resize(, 3)).Select
End Sub
A+
 
Re : Une sélection inattendue

Buenos días job,

Et bien merci, c'est bref et ça marche.

Mais (eh ! eh !) je me demande toujours pourquoi mon raisonnement foirait.

Bonne journée à toi et aux autres.
 
Re : Une sélection inattendue

Re

En regardant de plus près ta solution, je me suis demandé pourquoi tu avais écrit :
VB:
Sub Seleccion()
If Not Intersect(ActiveCell, [Tablo].Resize([Tablo].Rows.Count - 1)) Is Nothing Then _
Intersect(Rows(ActiveCell.Row + 1 & ":" & Rows.Count), [Tablo].Offset(, -1).Resize(, 3)).Select
End Sub
VB:
If Not Intersect(ActiveCell, [Tablo]) Is Nothing Then _
Intersect(Rows(ActiveCell.Row + 1 & ":" & Rows.Count), [Tablo].Offset(, -1).Resize(, 3)).Select
End Sub
marche très bien aussi.

A+
 
Re : Une sélection inattendue

Re,

Ton code foire ici :

Code:
ad2 = Range(ad1).Offset(1, 1).Address
Il faut écrire :

Code:
ad2 = Range(ad1).Offset(1).Address
Et ceci est plus simple :

Code:
ad3 = [tablo].Offset([tablo].Rows.Count - 1).Resize(1).Address
A+
 
Re : Une sélection inattendue

salut

Si... je peux me permettre,
avec ton code tu as une colonne de trop pour ad2. Tu peux donc y remédier avec

ad1 = Selection.Offset(, -1).Resize(, 2).Address
ou mieux
ad1 = Selection.Offset(, -1).Address
ou

ad2 = Range(ad1).Offset(1).Address (solution de Job 😉)

Tu peux aussi essayer (un peu plus court)
Code:
Sub Seleccion()
  If Not Intersect(ActiveCell, [Tablo].Resize([Tablo].Rows.Count - 1)) Is Nothing Then _
     ActiveCell(2, 0).Resize([Tablo].Rows.Count - ActiveCell.Row + 3, 3).Select
End Sub

à noter: ActiveCell = ActiveCell(1,1) donc ActiveCell(2,0) = 1 ligne en dessous,1 colonne à gauche
 
Re : Une sélection inattendue

Bonjour job, Si...,

Pas pu répondre avant.
Effectivement, job, tu as raison si l'on choisit le dernier item du tableau. En revanche, si ça ne plante pas, je ne parviens pas à l'éliminer.
En fait, concernant mon projet, ce n'est pas grave, puisque certaines cellules (les vides et les 2 dernières) seront exclues de cette possibilité.
Si..., en fait le tableau ne se balladera pas (quoique, si l'on devait modifier la feuille...) mais se redimensionnera.
Ci-joint où je voulais en venir.

Hasta la vista.
 

Pièces jointes

Re : Une sélection inattendue

salut

Il me semble t’avoir déjà proposé « la ballade des tableaux* » (outils tableau avec Insertion--> Tableau).
Le tableau n’étant pas baladeur (mais on peut y pourvoir), la ballade est codée plus simplement ainSi… non ?

*un plus à partir de la version 2007
 

Pièces jointes

Re : Une sélection inattendue

Buenas tardes Si...,

D'abord merci pour tes interventions.
En effet, ta solution est nettement plus concise et mérite -de ma part- réflexion.
Tu utilises l'"énigmatique" "ListObject" que j'avais déjà rencontré, mais qui demeure encore obscur pour moi. Il faut dire que l'aide d'Excel me fait doucement rigoler. Elle ne sert que pour celui qui a déjà compris, autrement dit, dans l'immense majorité des cas, elle ne sert strictement à rien !
Enfin, si je ne nomme que les colonnes du milieu ("Tablo1" & "Tablo2"), c'est que dans mon application je travaille essentiellement sur celles-ci et non pas sur l'ensemble (colonne du milieu + colonnes contiguës qui l'encadrent).
Autre chose, seule la colonne du milieu m'intéresse. Celle qui est à sa gauche (Nº de codes couleurs) sera occultée, et celle qui est à sa droite, elle, ne recevra que le nombre d'items appartenant à la famille correspondante. En conséquence, la suppression d'une famille ne pourra se faire qu'en double-cliquant sur la famille concernée et non, disons, sur ses attributs.

Encore merci y muy buenas noches.

PS : je ne me souviens plus de cette "Ballade des tableaux"
 
Dernière édition:
Re : Une sélection inattendue

Buenos días,

Si..., j'ai bien étudié ta solution et commencé à comprendre. Il y a en effet plein d'avantages (pas besoin de redéfinir la plage nommée...). En revanche, on se retrouve avec une foule de "fléchettes" dont je me passerais bien. Il y aurait-il un moyen de ne pas les faire apparaître ?
 

Pièces jointes

Re : Une sélection inattendue

salut
Buenos días,
... on se retrouve avec une foule de "fléchettes" dont je me passerais bien. Il y aurait-il un moyen de ne pas les faire apparaître ?
de quoi parles-tu ? Avec mon interprétation j'ai ajouté une image explicative.
Attention aux "noms" !
 

Pièces jointes

- 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
14
Affichages
484
  • Question Question
Microsoft 365 Lecture vocale USF
Réponses
5
Affichages
286
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…