Macro WorkSheet
augustinhio
Messages postés
10
Statut
Membre
-
michel_m Messages postés 18903 Statut Contributeur -
michel_m Messages postés 18903 Statut Contributeur -
Bonjour,
j'ai un tableau bien fourni et j'aimerai mettre en surbrillance toute une ligne et toute une colonne dès que je clique dans une cellule. pour ce faire je saisi la macro suivante:
"' Highlight the entire row and column for the ActiveCell.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Cells.Interior.ColorIndex = xlColorIndexNone
ActiveCell.EntireRow.Interior.ColorIndex = 22
ActiveCell.EntireColumn.Interior.ColorIndex = 36
End Sub"
mais mon problème est que çà efface toute les mise en forme que j'ai faite avant et après la saisie de la macro; et cela m'empêche de verrouiller la feuille pour empêcher ceux qui vont utiliser le classeur de changer les formules par inadvertance.
je viens humblement solliciter votre aide pour résoudre ce casse-tête chinois!
merci
j'ai un tableau bien fourni et j'aimerai mettre en surbrillance toute une ligne et toute une colonne dès que je clique dans une cellule. pour ce faire je saisi la macro suivante:
"' Highlight the entire row and column for the ActiveCell.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Cells.Interior.ColorIndex = xlColorIndexNone
ActiveCell.EntireRow.Interior.ColorIndex = 22
ActiveCell.EntireColumn.Interior.ColorIndex = 36
End Sub"
mais mon problème est que çà efface toute les mise en forme que j'ai faite avant et après la saisie de la macro; et cela m'empêche de verrouiller la feuille pour empêcher ceux qui vont utiliser le classeur de changer les formules par inadvertance.
je viens humblement solliciter votre aide pour résoudre ce casse-tête chinois!
merci
A voir également:
- Macro WorkSheet
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Jitbit macro recorder - Télécharger - Confidentialité
- Macro maker - Télécharger - Divers Utilitaires
- Macro word - Guide
3 réponses
Bonjour
les coordonnées de la sélection précédente sont inscrites dans 2 cellules AA1 et AA2 avec la colonne AA masquée (AA ou autre suivant ta configuration)
Nota(edit à 8:16): on peut aussi mémoriser la ligne et la colonne dans la base de registre (plus discret) si les utilisateurs disposent chacun du classeur sur leur ordi...
Michel
les coordonnées de la sélection précédente sont inscrites dans 2 cellules AA1 et AA2 avec la colonne AA masquée (AA ou autre suivant ta configuration)
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Lig As Long, Col As Integer
ActiveSheet.Unprotect
'détruit la mise en évidence précédente
Lig = Range("AA1")
Col = Range("AA2")
'lig=0 et Col=0 1° utilisation
If Lig > 0 Then Rows(Lig).Interior.ColorIndex = xlColorIndexNone
If Col > 0 Then Columns(Col).Interior.ColorIndex = xlColorIndexNone
'mémorise la ligne et colonne de la cellule active
Lig = Target.Row
Col = Target.Column
' et les range dans 2 cellules (masquer la colonne AA1)
Range("AA1") = Lig
Range("AA2") = Col
'met en évidence la sélection
Rows(Lig).Interior.ColorIndex = 22
Columns(Col).Interior.ColorIndex = 36
ActiveSheet.Protect
End Sub
Nota(edit à 8:16): on peut aussi mémoriser la ligne et la colonne dans la base de registre (plus discret) si les utilisateurs disposent chacun du classeur sur leur ordi...
Michel
bonjour,
par rapport à mon problème, je constate que dès que je ferme mon classeur et que je l'ouvre de nouveau, ma macro ne marche n'est plus prise en compte!
je rappelle ma procédure:
"mettre la plage concernée en surbrillance exemple A1 à O50
Mise en forme conditionnelle
Format/Mise en forme conditionnelle
la formule est
=LIGNE()=CELLULE("ligne")
format et choisir une couleur
clic droit sur l'onglet de ta feuille et coller ce code
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Calculate
End Sub "
je suis en attente de vos suggestions!
merci!
par rapport à mon problème, je constate que dès que je ferme mon classeur et que je l'ouvre de nouveau, ma macro ne marche n'est plus prise en compte!
je rappelle ma procédure:
"mettre la plage concernée en surbrillance exemple A1 à O50
Mise en forme conditionnelle
Format/Mise en forme conditionnelle
la formule est
=LIGNE()=CELLULE("ligne")
format et choisir une couleur
clic droit sur l'onglet de ta feuille et coller ce code
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Calculate
End Sub "
je suis en attente de vos suggestions!
merci!
bonjour,
"Je rappelle ma procédure: "
Tu crois? relis ton 1° message compare avec ce dernier et évite ce ton autoritaire qui semble dire "vous avez rien compris": un bénévole n'est pas ton domestique
autrement , je ne t'ai jamais parlé de:
- d'écriture de formule dans le code: A EVITER AU MAXIMUM EN VBA
-de "calculate"- inutile puisqu'on écrit pas de formule
mettre la plage concernée en surbrillance exemple A1 à O50 --
c'est nouveau ?... voir 1° message de plus,mettre en surbrillance est inutile
pour limiter l'action à A1:O50
La procédure doit être située dans le module feuille de la page concernée
Michel
"Je rappelle ma procédure: "
Tu crois? relis ton 1° message compare avec ce dernier et évite ce ton autoritaire qui semble dire "vous avez rien compris": un bénévole n'est pas ton domestique
autrement , je ne t'ai jamais parlé de:
- d'écriture de formule dans le code: A EVITER AU MAXIMUM EN VBA
-de "calculate"- inutile puisqu'on écrit pas de formule
mettre la plage concernée en surbrillance exemple A1 à O50 --
c'est nouveau ?... voir 1° message de plus,mettre en surbrillance est inutile
pour limiter l'action à A1:O50
Private Sub Worksheet_selectionChange(ByVal Target As Range)Au cas où:
Dim Lig As Long, Col As Integer
If not intersect(target, range("A1:O50") is nothing then
ActiveSheet.Unprotect
......la procèdure
End if
End sub
La procédure doit être située dans le module feuille de la page concernée
Michel