Matérialisé une cellule aux croisement d'une ligne et d'une colonne

Chri8Ed

XLDnaute Occasionnel
Bonjour

Lorsque l’on clique sur N° de ligne cela permet de bien matérialiser cette ligne dans toute sa longueur

Si on clique sur une lettre, cela permet de faire la même chose avec les colonnes
Comme j’ai un tableau avec des colonnes étroites, j’aurais souhaité pouvoir faire les 2 en même temps.

Cela me permettrait au croisement la ligne et de la colonne de pouvoir rapidement localiser la cellule et surtout de ne pas faire d’erreur.

Ce n’est évidement pas possible de base, mais avec une macro ???

Je joins un petit tableau pour l’exemple

Merci si quelqu’un à une idée
 

Pièces jointes

  • Tableau.xls
    29 KB · Affichages: 174
  • Tableau.xls
    29 KB · Affichages: 178
  • Tableau.xls
    29 KB · Affichages: 176

Chri8Ed

XLDnaute Occasionnel
Re : Matérialisé une cellule aux croisement d'une ligne et d'une colonne

Bonjour Thri, Bonjour Hasco (Dont je n'ai pas encore approfondi sa dernière version)

et bonjour à tous

Je rejoins un peu Job dans son analyse, c'est un peu logique, puisque c'est que je demandais dès le départ.

Cependant, je trouve que dans certains cas, cela peut-être intéressant.
Le principe d'activer une colonne et une ligne a partir d'une cellule
Comme les propositions de Hasco, ou comme celle de Gaetan Mourmant proposé par Thri
pourraient avoir leur avantage, mais il faudrait alors que cette macro ne soit pas permanente

Il faudrait que la procédure soit appelée en cliquant sur la cellule conjointement avec la touche Alt par exemple
 

job75

XLDnaute Barbatruc
Re : Matérialisé une cellule aux croisement d'une ligne et d'une colonne

Re,

Appuyer sur la touche Alt ne crée pas d'événement.

Mieux vaut un bon vieux double-clic :

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
Union(Target.EntireRow, Target.EntireColumn).Select
Target.Activate
End Sub
Fichier joint.

A+
 

Pièces jointes

  • Sélection par double-clic(1).xls
    34 KB · Affichages: 94

job75

XLDnaute Barbatruc
Re : Matérialisé une cellule aux croisement d'une ligne et d'une colonne

Re,

Avec des MFC voyez que donne le double-clic sur le fichier que nous connaissons bien.

A+
 

Pièces jointes

  • MFC sur sélection lignes et colonnes par double-clic(1).xls
    74.5 KB · Affichages: 97

Chri8Ed

XLDnaute Occasionnel
Re : Matérialisé une cellule aux croisement d'une ligne et d'une colonne

Bonsoir

Alors là !
Une idée, et hop, aussitôt fait :p

C’est bien, mais il est dommage que l’on perde la technique d’avant
Car elle bien ses avantages
Notamment la possibilité de matérialiser plusieurs lignes et plusieurs colonnes

L’idéale serait de pouvoir combiner les 2 techniques :rolleyes:
 

job75

XLDnaute Barbatruc
Re : Matérialisé une cellule aux croisement d'une ligne et d'une colonne

Bonjour Chri8Ed, le forum,

A chaque fois on croit ce fil terminé mais non, pas du tout :cool:

Avec cette version (2) on peut faire autant de double-clics qu'on veut.

Et on repart à zéro par un clic droit :

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim zone As Range
Cancel = True
If IsError([Sel]) Then Set zone = Target Else Set zone = [Sel]
Union(zone, Target.EntireRow, Target.EntireColumn).Name = "Sel"
If Target <> "" Then
  If IsError([Inter]) Then Set zone = Target Else Set zone = [Inter]
  Union(zone, Target).Name = "Inter"
End If
With [Sel]
  Application.ScreenUpdating = False
  .FormatConditions.Delete
  .FormatConditions.Add xlExpression, Formula1:="=OU(LIGNE()=1;COLONNE()=28)"
  .FormatConditions(1).Interior.ColorIndex = 3 'rouge
  .FormatConditions(1).Font.ColorIndex = 2 'blanc
  .FormatConditions(1).Font.Bold = True 'gras
  .FormatConditions.Add xlExpression, Formula1:="=OU(LIGNE()=2;COLONNE()=30)"
  .FormatConditions(2).Interior.ColorIndex = 5 'bleu
  .FormatConditions(2).Font.ColorIndex = 2 'blanc
  .FormatConditions(2).Font.Bold = True 'gras
  .FormatConditions.Add xlExpression, Formula1:=True
  .FormatConditions(3).Interior.ColorIndex = 1 'noir
  .FormatConditions(3).Font.ColorIndex = 2 'blanc
  .FormatConditions(3).Font.Bold = True 'gras
End With
If IsError([Inter]) Then Exit Sub 'si la zone n'existe pas
With [Inter]
  .FormatConditions.Delete '2 lignes inutiles sur Excel 2003
  .FormatConditions.Add xlExpression, Formula1:=True
  .FormatConditions(1).Font.Bold = True 'gras
  '---clignotement---
  If t Then Application.OnTime t, "Clignote", , False 'RAZ du processus s'il existe
  affiche = False
  Clignote
End With
End Sub

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If IsError([Sel]) Then Exit Sub
Cancel = True
ThisWorkbook.Names("Sel").Delete
If Not IsError([Inter]) Then ThisWorkbook.Names("Inter").Delete
t = 0
Application.ScreenUpdating = False
Cells.FormatConditions.Delete
[A1:AA1].FormatConditions.Add xlCellValue, xlGreater, 1
[A1:AA1].FormatConditions(1).Font.ColorIndex = 3 'rouge
'[A1:AA1].FormatConditions(1).Font.Bold = True 'gras 'inutile...
End Sub
Voyez aussi les macros dans Module1 et ThisWorkbook.

Noter en passant que les macros ne "sélectionnent" rien du tout :cool:

Les zones sont mémorisées maintenant dans les noms définis Sel et Inter.

Ce qui permet éventuellement de continuer le processus si l'on rouvre le fichier après l'avoir fermé.

Je trouve cette solution bien plus belle (et plus agréable) que la solution qui consiste à sélectionner effectivement des lignes et des colonnes.

Edit : à cause de Application.OnTime, enregistrez d'abord le fichier joint sur le bureau.

A+
 

Pièces jointes

  • MFC sur sélection lignes et colonnes par double-clic(2).xls
    73 KB · Affichages: 101
Dernière édition:

job75

XLDnaute Barbatruc
Re : Matérialisé une cellule aux croisement d'une ligne et d'une colonne

Re,

J'avais laissé le commentaire 2 lignes inutiles sur Excel 2003.

Retirez-le car c'est faux, ces 2 lignes sont toujours nécessaires (pour les 2 méthodes).

A+
 

job75

XLDnaute Barbatruc
Re : Matérialisé une cellule aux croisement d'une ligne et d'une colonne

Bonjour Chri8Ed,

C'était presque parfait, mais il manquait le cas où l'on active un autre classeur puis revient au premier...

Il faut dans ThisWorkbook :

Code:
Private Sub Workbook_Activate()
Clignote
End Sub

Private Sub Workbook_Deactivate()
On Error Resume Next
Application.OnTime t, "Clignote", , False 'arrête le processus
End Sub
et la remise à zéro doit être dans Module1 :

Code:
Sub Clignote()
If IsError([Inter]) Then Exit Sub
affiche = Not affiche
[Inter].FormatConditions(1).Interior.ColorIndex = IIf(affiche, xlNone, 1)
[Inter].FormatConditions(1).Font.ColorIndex = IIf(affiche, 1, 2)
On Error Resume Next
Application.OnTime t, "Clignote", , False 'RAZ si autre instance
On Error GoTo 0
t = Now + 1 / 86400
Application.OnTime t, "Clignote"
End Sub
Edit : voir aussi le cas où le fichier étant ouvert on le rouvre (boîte de dialogue Ouvrir).

Fichier (3).

A+
 

Pièces jointes

  • MFC sur sélection lignes et colonnes par double-clic(3).xls
    76 KB · Affichages: 105
Dernière édition:

Chri8Ed

XLDnaute Occasionnel
Re : Matérialisé une cellule aux croisement d'une ligne et d'une colonne

Bonjour Job75

Après utilisation
Cela est vraiment intéressant, puisque maintenant comme auparavant on peut matérialiser plusieurs colonnes et lignes ;)

Juste une petite remarque par rapport au système d’avant
Lorsque que l’on clique sur une colonne ou une ligne, on ne peut évidement pas se tromper

En revanche dans un grand tableau, lorsque l’on clique sur une cellule en rapport avec une ligne ou une colonne, là, le risque existe, surtout si les colonnes ou les lignes sont très étroites.

Si on commet une erreur dans la 1ère sélection, on recommence et c’est tout, en revanche si on commet cette erreur dans la 3ème ou plus de sélection, il faut tout recommencer

D’où une idée, si elle est éventuellement et facilement réalisable :
Pouvoir avoir la possibilité en redouble-cliquant sur la cellule cliquée par erreur de revenir donc en arrière et de la dé-sélectionner celle-ci tout en gardant les sélections précédentes activées :confused:



mais il manquait le cas où l'on active un autre classeur puis revient au premier...

Vous voulez parler d'un classeur qui comporterait la même macro ?
 

job75

XLDnaute Barbatruc
Re : Matérialisé une cellule aux croisement d'une ligne et d'une colonne

Re,

Encore un Like Chri8Ed, car c'est vraiment une excellente idée, mais pas facile à réaliser, je vais voir.

PS : mon fichier (3) a été fait pour le cas où l'on navigue sur plusieurs classeurs (quelconques) ouverts.

A+
 

job75

XLDnaute Barbatruc
Re : Matérialisé une cellule aux croisement d'une ligne et d'une colonne

Re,

Vraiment superbe ce 2ème double-clic sur la même cellule pour annuler :)

La macro crée les noms définis Dercel DerSel DerInter :

Code:
If Not IsError([Dercel]) Then
  If [Dercel].Address = Target.Address Then
    Efface
    ThisWorkbook.Names.Add "Sel", [DerSel]
    ThisWorkbook.Names.Add "Inter", [DerInter]
    GoTo 1
  End If
End If
ThisWorkbook.Names.Add "Dercel", Target
ThisWorkbook.Names.Add "DerSel", [Sel]
ThisWorkbook.Names.Add "DerInter", [Inter]
Fichier (4).

A+
 

Pièces jointes

  • MFC sur sélection lignes et colonnes par double-clic(4).xls
    81.5 KB · Affichages: 98

Chri8Ed

XLDnaute Occasionnel
Re : Matérialisé une cellule aux croisement d'une ligne et d'une colonne

Re

Là, il n'a plus de mots :p

Sensationnel, mais le mot est faible

Je vais le tester en le retranscrivant sur mon tableau

Quesque l'on va bien pouvoir faire pour l'améliorer maintenant :rolleyes:
 

job75

XLDnaute Barbatruc
Re : Matérialisé une cellule aux croisement d'une ligne et d'une colonne

Bonsoir Chri8Ed,

Quesque l'on va bien pouvoir faire pour l'améliorer maintenant :rolleyes:

Cette version (5).

Un double-clic sur n'importe quelle intersection l'annule.

Là j'ai un peu ramé :)

La macro crée le nom défini ToutInter, ensemble de toutes les intersections.

A+
 

Pièces jointes

  • MFC sur sélection lignes et colonnes par double-clic(5).xls
    88 KB · Affichages: 102

Chri8Ed

XLDnaute Occasionnel
Re : Matérialisé une cellule aux croisement d'une ligne et d'une colonne

Bonsoir

J’avais bien remarqué que l’on pouvait annuler que la dernière cellule double-cliquée.

Je me suis dit qu’une erreur de cellule, on la remarque tout de suite et donc cela suffisait amplement.

De plus, cela paraissait déjà compliquer d’annuler la dernière cellule activée.

Mais alors sur le cul !! :p

On peut donc annuler n’importe quelle cellule activée et cela sans tenir compte de l’ordre d’activation, surprenant :p::cool:
 

Discussions similaires

Statistiques des forums

Discussions
311 711
Messages
2 081 786
Membres
101 817
dernier inscrit
carvajal