IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Repérage dans un tableau


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert

    Homme Profil pro
    Technicien Métrologie R&D
    Inscrit en
    Janvier 2007
    Messages
    1 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Métrologie R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 610
    Billets dans le blog
    1
    Par défaut Repérage dans un tableau
    Un petit truc avec une macro évènementielle :

    dans le code de la feuille sur sélection change
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Cells(5, 2).Value = ActiveCell.Row
    Cells(6, 2).Value = ActiveCell.Column
    End Sub
    dans la mise en forme conditionnelle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    La formule est :=LIGNE()=$B$5 mettre en format la ligne supérieur et inférieur en rouge 
    La formule est :=COLONNE()=$B$6 mettre en format le coté droit et le coté gauche en rouge
    recopier le format sur l'ensemble du tableau
    la cellule active sera pointée par une croix
    d'autre mise en évidence sont possible pour la cellule ciblée on peut mettre un format gras ou/et un fond beige la seule chose a se rappeler : c'est de mettre en premier la condition qui regroupe ligne et colonne
    dans une formule du type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    la formule est : =ET(LIGNE()=$B$5;COLONNE()=$B$6

  2. #2
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour Daranc,

    apparemment, une petite erreur ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =ET(LIGNE()=$B$5.COLONNE()=$B$6
    que je corrigerais comme ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =ET(LIGNE()=$B$5;COLONNE()=$B$6)
    à moins que je n'ai rien compris

    bonne journée
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  3. #3
    Membre Expert

    Homme Profil pro
    Technicien Métrologie R&D
    Inscrit en
    Janvier 2007
    Messages
    1 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Métrologie R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 610
    Billets dans le blog
    1
    Par défaut
    OUPS!
    (P.... de touche clapload)

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Juste pour le fun, pisk tu as Target et que Target est la cellule active, pourquoi ne pas l'utiliser ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Cells(5, 2).Value = Target.Row
    Cells(6, 2).Value = Target.Column
    End Sub

    Par contre j'ajouterais un test afin de savoir si tu as une ou plusieurs cellules sélectionnées car dans le second cas tu n'auras les coordonnées que de la première cellule de ta plage.
    Je complique ? Bon, je ne dis plus rien

  5. #5
    Membre Expert Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Par défaut
    Salut,
    Je me permets d'ajouter mon grain de sel... voici deux possibilités que j'ai utilisées dans certains de mes fichiers.

    La première avec un "Interior"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     
    Cells.Interior.ColorIndex = xlNone
     
        With Range(Cells(Target.Row, 1), Cells(Target.Row, Target.Column)).Interior
            .Pattern = xlGray8
            .PatternColorIndex = 3
        End With
     
        With Range(Cells(1, Target.Column), Cells(Target.Row, Target.Column)).Interior
            .Pattern = xlGray8
            .PatternColorIndex = 3
        End With
     
    End Sub
    Ou avec des shapes, ce qui correspond plus au Post initial
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        If ActiveCell.Count > 1 Then GoTo fin
        '*** Définition des variables ***
        H = ActiveCell.Height
        w2 = ActiveCell.Width
        T = ActiveCell.Top
        W = ActiveCell.Left
     
        'Supprime les rectangles si existent déjà.
        On Error Resume Next
        ActiveSheet.Shapes("RectangleV").Delete
        On Error Resume Next
        ActiveSheet.Shapes("RectangleH").Delete
     
        'Ajoute les rectangles
        ActiveSheet.Shapes.AddShape(msoShapeRectangle, 0, T, W, H).Name = "RectangleV"
        With ActiveSheet.Shapes("RectangleV")
            .Fill.Visible = msoFalse
            .Fill.Transparency = 0#
            .Line.Weight = 3#
            .Line.ForeColor.SchemeColor = 10
            .PrintObject = False
     
        End With
     
        ActiveSheet.Shapes.AddShape(msoShapeRectangle, W, 0, w2, T).Name = "RectangleH"
     
        With ActiveSheet.Shapes("RectangleH")
            .Fill.Visible = msoFalse
            .Fill.Transparency = 0#
            .Line.Weight = 3#
            .Line.ForeColor.SchemeColor = 10
            .PrintObject = False
        End With
    fin:
     
    End Sub
    A+

Discussions similaires

  1. alterner les couleurs dans un tableau avec xsl
    Par Eithelgul dans le forum XSL/XSLT/XPATH
    Réponses: 14
    Dernier message: 04/05/2015, 00h29
  2. Décaler des valeurs dans un tableau
    Par sh2003 dans le forum Langage
    Réponses: 6
    Dernier message: 20/03/2004, 17h01
  3. Réponses: 2
    Dernier message: 23/11/2003, 19h44
  4. Réponses: 4
    Dernier message: 10/10/2003, 19h04
  5. verification de doublons dans un tableau
    Par bohemianvirtual dans le forum C
    Réponses: 11
    Dernier message: 25/05/2002, 13h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo