Mettre en forme la zone d’un nom

Bonjour à tous,

Voici une petite vidéo et un fichier qui permet de mettre en forme la zone correspondant à un nom.

Le principe :
- utiliser une mise en forme conditionnelle pour tester si la cellule est comprise entre les min et max des lignes et des colonnes du nom.
- La formule est celle-ci. Le min est facultatif, mais je l'ai laissé, car il est assez pédagogique :
=ET(
LIGNE()>=MIN(LIGNE(Nom));
LIGNE()< =MAX(LIGNE(Nom)); COLONNE()>=MIN(COLONNE(Nom));
COLONNE()< =MAX(COLONNE(Nom)))
2 limites :
- la mise en forme conditionnelle est appliquée à l'ensemble de la feuille, et donc des modifications (par exemple, un glisser déplacer d'une zone) peut affecter cette mise en forme conditionnelle.
- le nom doit correspondre à une seule zone rectangulaire (pas de sélections multiples).

Petite variation sur le double clic pour inverser des valeurs

Suite au commentaire de Patrick, voici un petit code qui permet d'inverser les valeurs de la colonne 2 vers la 3 et inversement, en double cliquant sur une des colonnes :

Vous pouvez télécharger le fichier ici

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    'Definition des variables
    Dim arrInverseValeurs As Variant
    ReDim arrInverseValeurs(1 To 1, 1 To 2) As Variant
    'on peut aussi ajouter ici une verification, par exemple
    Dim iColonneGauche As Integer
    Dim iColonneDroite As Integer
    iColonneGauche = 2
    iColonneDroite = 3
    'on verifie qu'on est sur les bonnes colonnes
    If ActiveCell.Column <> iColonneGauche And ActiveCell.Column <> iColonneDroite Then Exit Sub
    'on stocke les valeurs
    arrInverseValeurs(1, 1) = Cells(ActiveCell.Row, iColonneDroite).Value
    arrInverseValeurs(1, 2) = Cells(ActiveCell.Row, iColonneGauche).Value
    'on rapatrie les donnees avec les valeurs inversees
    'l'utilisation du tableau permet de gagner du temps
    'en n'écrivant qu'une seule fois les valeurs dans la feuille
    Range(Cells(ActiveCell.Row, iColonneGauche), Cells(ActiveCell.Row, iColonneDroite)).Value = arrInverseValeurs
    'on sort de la formule
    Cancel = True
End Sub

A bientôt.

Gaetan

Inverser deux valeurs avec un double clic

Bonjour à tous,

Voici un petit code qui permet d'inverser les valeurs de la cellule active avec la cellule à droite de celle-ci.

J'ai du l'utiliser lors d'un traitement semi-automatique d'extrait de compte. Parfois, le débit et le crédit étaient inversés et je voulais rapidement inverser les données. Un autre avantage est que la formule n'est pas perdue. Un couper-coller aurait remplacé la formule par un #REF.

Voici donc un fichier exemple :
cliquez ici pour télécharger

Et le code:
Vous noterez l'utilisation de l'array (variable tableau : arrInverseValeurs) qui permet de ne coller les données qu'une seule fois, et donc d'économiser un recalcul automatique.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    'Definition des variables
    Dim arrInverseValeurs As Variant
    ReDim arrInverseValeurs(1 To 1, 1 To 2) As Variant
    'on peut aussi ajouter ici une verification, par exemple
    If ActiveCell.Column <> 2 Or ActiveCell.Row <= 7 Then Exit Sub
    'on stocke les valeurs
    arrInverseValeurs(1, 1) = Cells(ActiveCell.Row, ActiveCell.Column + 1).Value
    arrInverseValeurs(1, 2) = Cells(ActiveCell.Row, ActiveCell.Column).Value
    'on rapatrie les donnees avec les valeurs inversees
    'l'utilisation du tableau permet de gagner du temps
    'en n'écrivant qu'une seule fois les valeurs dans la feuille
    Range(Cells(ActiveCell.Row, ActiveCell.Column), Cells(ActiveCell.Row, ActiveCell.Column + 1)).Value = arrInverseValeurs
    'on sort de la formule
    Cancel = True
End Sub