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

job75

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

Bonjour Chri8Ed, le forum,

Je disais qu'on croit toujours que c'est fini :confused:

Si l'on veut limiter la MFC des lignes et colonnes au tableau, nommer celui-ci Tableau.

Pas besoin de modifier les conditions des MFC, juste 2 modifs sur la macro.

Fichier (9) joint.

A+
 

Fichiers joints

Vilain

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

Bonjour à tous et aux deux principaux protagonistes en particulier.

Ce fil est passionant est les macros proposées sont d'une réelle utilité. Pourquoi ne pas ajouter ce fichier dans les téléchargements ?
J'ai moi aussi envie de mettre des étoiles et des "like" à tous va !

A plus et merci à vous deux d'avoir rendu ce fil si intéressant.

A plus
 

job75

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

Bonjour Gillus69 :)

Encore une précision...

Le nom Tableau étant défini, limiter dans la macro Efface la suppression des MFC :

Code:
[Tableau].FormatConditions.Delete
Ainsi on conserve les autres MFC de la feuille s'il y en a.

Fichier (10).

A+
 

Fichiers joints

Chri8Ed

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

Bonjour Job75, Bonjour Gellus69

Évidement, bien plus simple et cela règle le problème dans son intégralité puisque les MFC deviennent ainsi dynamiques. :)

Je disais qu'on croit toujours que c'est fini
Maintenant que la macro fonctionne à merveille
On peaufine la présentation :cool:
 

indy2lyon

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

Merci pour cette macro super utile.
Pouvez-vous me dire comment l'installer par défaut sur tous les fichiers que j'ouvre SVP ?
Merci d'avance,
 

job75

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

Bonjour (on aime bien se dire bonjour sur XLD),

Installer du VBA par défaut ?? A priori cette question n'a guère de sens.

Sur le fichier qui vous intéresse copiez-collez les macros de mon fichier (10).

Après avoir compris comment elles fonctionnent.

A+
 

anthoYS

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

bonjour le fil,


ce code m'intéresse mais j'aimerai mieux qu'on m'explique en détail, ce qu'il veux dire et ce qu'il fait pour l'adapter à certains de mes tableaux.

or, j'ai tenté, mais en vain, ça marche mais ça ne clignotte pas ni colore en rouge les entêtes, bref, c'est une cata.

j'aimerai bien svp, savoir à quoi correspondent certains chiffres codés du code, à quelles lignes et/ou colonnes ? quelles cellules du tableau ?

Code:
Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim flag As Boolean, zone As Range, cel As Range
If Intersect(Target, [Tableau]) Is Nothing Then Exit Sub
Cancel = True
Efface
If IsError([Inter]) Then
  flag = True '=> pas d'annulation
  Set zone = Target
Else
  flag = Intersect(Target, [Inter]) Is Nothing 'True => pas d'annulation
  Set zone = Union(Target, [Inter])
  ThisWorkbook.Names("Inter").Delete
  If zone.Count = 1 Then Exit Sub
End If
For Each cel In zone
  If cel.Address <> Target.Address Or flag Then
    If IsError([Sel]) Then Set zone = cel Else Set zone = [Sel]
    Intersect([Tableau], Union(zone, cel.EntireRow, cel.EntireColumn)).Name = "Sel"
    If IsError([Inter]) Then Set zone = cel Else Set zone = [Inter]
    Union(zone, cel).Name = "Inter"
  End If
Next
With [Sel]
  .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
With [Inter]
  .FormatConditions.Delete
  .FormatConditions.Add xlCellValue, xlEqual, "="""""
  .FormatConditions(1).Interior.ColorIndex = 16 'gris foncé
  .FormatConditions.Add xlExpression, Formula1:=True
  .FormatConditions(2).Font.Bold = True 'gras
  '---clignotement---
  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
Efface
ThisWorkbook.Names("Inter").Delete
End Sub


Private Sub Efface()
Application.ScreenUpdating = False
[Tableau].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...
If Not IsError([Sel]) Then ThisWorkbook.Names("Sel").Delete
End Sub

ce qui m'interpelle, ce que je ne comprends pas c'est :

> comment créer la plage "Inter" et "Sel" ?

en gros je m'y perds totalement.

merci par avance ;

à
 

job75

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

Bonjour anthoYs,

Comme vous pouvez le voir les macros de ce fichier sont assez compliquées, il a fallu pas mal de temps pour arriver au résultat final.

Il n'est pas question que je vous en explique le principe, et encore moins le code.

Je vous conseille de reprendre le fil dès le début, de tester chaque fichier, et de ne passer au suivant que quand vous l'avez bien compris.

Cela prendra malheureusement pas mal de temps.

A+
 

Discussions similaires


Haut Bas