Une sélection inattendue

Magic_Doctor

XLDnaute Barbatruc
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

  • Selección.xlsm
    16.9 KB · Affichages: 108

job75

XLDnaute Barbatruc
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+
 

Magic_Doctor

XLDnaute Barbatruc
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+
 

job75

XLDnaute Barbatruc
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+
 

Si...

XLDnaute Barbatruc
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
 

Magic_Doctor

XLDnaute Barbatruc
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

  • Selección3.xlsm
    26.8 KB · Affichages: 25

Si...

XLDnaute Barbatruc
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

  • InsertionTableau.xlsm
    29.7 KB · Affichages: 31

Magic_Doctor

XLDnaute Barbatruc
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:

Magic_Doctor

XLDnaute Barbatruc
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

  • Copia de InsertionTableau3.xlsm
    38.2 KB · Affichages: 23

Si...

XLDnaute Barbatruc
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

  • Copie de Copia de InsertionTableau3.xlsm
    152.7 KB · Affichages: 33

Discussions similaires

Réponses
1
Affichages
280
Réponses
1
Affichages
179
Compte Supprimé 979
C

Statistiques des forums

Discussions
312 845
Messages
2 092 764
Membres
105 529
dernier inscrit
StarExcel