Souci avec une macro

Bonjour,

Je sens que cela va être "énorme" tellement que cela doit être simple !

En cliquant que Affichage Trésorier ou Affichage Secretaire....la feuille masque des colonnes ou au contraire.

J'ai enregistré une macro1 en cliquant sur E7 et l'ai fermé.... mais en voulant le lancer... rien ne se passe ????

Visiblement la macro n'enregistre pas ou ne déclenche pas l'affichage par simple clic.

Cordialement

Bonjour

Tonthon a écrit :

J'ai enregistré une macro1 en cliquant sur E7

Cette macro existe déjà et c'est une procédure événementielle :SelectionChange

Effaces(ou neutralises) les 2 macros que tu as déjà dans le module de la feuille, et copie celle-ci à la place

La macro se déclenchera lors lorsque tu cliqueras sur E7 ou E8

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Range("E7,E8"), Target) Is Nothing Then

  Application.ScreenUpdating = False
  Columns.Hidden = False

    If Target = Range("E7") Then
      Range("H:L,Y:AC,AD:AX").EntireColumn.Hidden = True     'affichage TRESORIER
      Rows("10").EntireRow.Hidden = True                     'masque la ligne 10 concernant le secrétaire
      Rows("9").EntireRow.Hidden = False                     'affiche la ligne 9 concernant le trésorier
    Else
      Range("AA:AX,Q:U").EntireColumn.Hidden = True          'affichage SECRETAIRE soit TOUT sauf les colonnes "trésorier & de contrôles"
      Rows("9").EntireRow.Hidden = True                      'masque la ligne 9 concernant le trésorier
      Rows("10").EntireRow.Hidden = False                     'affiche la ligne 9 concernant le secrétaire
    End If
  End If
End Sub

Bonjour,

A tester

Amicalement

Pierrot

Bonsoir

Merci pour vos réponses.

J'ai "compris" l'origine du conflit et en passant par la neutralisation des macros existantes puis l'introduction du code proposé =

Bien entendu, j'ai également essayé la dernière proposition qui part avec une autre idée mais comment le dire, cela n'est pas probant.

Maintenant, je vais lancer un test dans mon tableur réel qui est "un peu plus complexe" et si c'est ok, je clorai ce post sinon je reviendrai ici.

Excellente soirée

Bonjour,

Je n'ai pas boosté au maximum les tests mais cela semble être OK.

J'essaie de comprendre les codes pour "apprendre" et si j'ai bien compris le "Else" évite d'avoir à saisir le "E8"

donc si j'avais

(Range("E7,E8,F10")

il suffirait de rajouter "Else" pour le F10 puis les colonnes et/ou lignes que l'on veut soit masquer soit afficher.

C'est bien cela ?

Excellente journée

Cordialement

Re

Nous avons trouvé la solution d'avoir un affichage selon le choix Secrétaire ou Trésorier à partir d'une cellule et qui est compatible avec une macro.

Avec l'affichage Trésorier, je souhaite "protéger" toutes les cellules sauf ...ce que je peux faire manuellement en protégeant la feuille.

Est-ce qu'il est possible via le choix par exemple Trésorier

- retrouver l'affichage des colonnes/lignes comme actuellement PLUS avoir automatiquement TOUT protégé sauf "Q12:S281"

c'est à dire par un ajout dans le code ?

Pour la protection de la feuille, je vous propose de ne pas mettre de mot de passe, ce que je ferai plus tard.

Si la solution existe, cela serait super car transposable au choix Secrétaire avec d'autres critères bien entendu.

S'il faut mieux ouvrir un nouveau post... dis le moi !

Cordialement

Bonjour

Et pour l'affichage secrétaire tout va être verrouillé ?

Banzai64 a écrit :

Bonjour

Et pour l'affichage secrétaire tout va être verrouillé ?

NON et pour rester dans la même démarche

Est-ce qu'il est possible via le choix par exemple SECRETAIRE

- retrouver l'affichage des colonnes/lignes comme actuellement PLUS avoir automatiquement TOUT protégé sauf "A12:P281" et "V12:Z281" c'est logique puisque l'on masque et on veut interdire la partie "Trésorier".

Je me lance = comme j'ai trouvé ici que "Cells.Locked = True" verrouille toutes les cellules, j'ai bon espoir qu'il doit y avoir un "Cells.Locked = False" dans lequel on peut indiquer les cellules qui doivent rester déverrouiller....

Cordialement

Bonjour

A tester

Re

Nous sommes dans la dernière ligne droite...... et avons franchi la ligne d'arrivée

J'ai testé et regardé le code..... (je commence à comprendre un peu) et tu avais laissé E7et E8 déverouillés.

En pratique le lancement de l'affichage TRESORIER ou SECRETAIRE correspond parfaitement à l'affichage souhaitée et avec le verrouillage prévu.

Mais le seul petit détail ... est que le Trésorier peut du coup cliquer sur Secrétaire et vis versa= ce qui laisse apparaitre ce que je cherche à rendre inaccessible.

J'ai modifié le code en supprimant dans le choix E7....le déverrouillage de E8

et dans le choix E8 .... le déverrouillage de E7

Comme dans mon véritable tableur, l'accès à certaines feuilles se fait à partir d'une page d'accueil avec demande d'un mdp....la seule solution que j'ai trouvé est de lancer la macro Secrétaire pour le choix Secrétaire et la macro Trésorier pour le choix Trésorier.

Je suis content, satisfait d'avoir appris plein de choses... je ne pense pas qu'il y ait une autre solution, mais je suis toujours preneur.

Excellente soirée

Tonthon

Rechercher des sujets similaires à "souci macro"