Figer une ligne en plus de certaines cellules
Bonjour,
Je réalise un fichier qui contient actuellement des cellules figées.
La ligne A1 est en partie figée (de A1 à D1), mais je souhaite qu’elle soit entièrement figée, sans que les lignes du dessous le soit.
Je ne trouve pas la solution, pouvez-vous m’aider ?
Autre problème :
La feuille "PLANNING" contient 3 lignes de couleurs différentes :
JAUNE pour ATELIER DEPART COMPETITION (ligne 5)
VERT POUR ATELIER DEPART LOISIR (ligne 23)
ORANGE POUR ATELIER POSEURS. (ligne 41)
Quand je suis sur la page « DEPART COMPETITION », à la journée du DIMANCHE, et que je clique sur le bouton « POSEURS » ou « DEPART LOISIR » en haut à gauche, ça me ramène sur la page voulue mais du SAMEDI alors que je voudrais être à cette page, mais rester sur la journée du DIMANCHE.
Y a-t-il une solution pour cette fonction ?
Merci par avance de votre aide
Francis.
Bonjour
Inutile de créer un second fil (https://forum.excel-pratique.com/excel/probleme-de-redirection-de-cellule-par-un-bouton-200840)
Le second problème exposé dans cet autre fil n'a pas reçu de réponse car il n'existe par de page (onglet) DEPART COMPETITION avec une journée du DIMANCHE... dans le classeur fourni.
Il serait mieux de préciser "plage du planning" avec ses coordonnées. Le code VBA indique Range("E41") donc cela renvoit vers cette cellule quelle que soit la position de la cellule active.
Il te faut tenir compte dans l'Offset (2ème ligne de ton code) de la position de la cellule active et du contenu de la cellule de ligne 2 correspondante...
Quand aux volets : on peut figer n lignes et/ou et colonnes entières pas des portions.
Merci Chris pour tes précisions.
Pour la ligne A1 à figer, je comprends que lorsque l'on a des volets dans un fichier, on ne peut pas figer des portions de ligne.
Est-ce que dans mon fichier, tu vois une autre solution que ce que j'ai fait comme volet pour que la ligne A1 soit figée ?
Pour mon 2ème problème de renvoi de cellule, je me débrouille avec Excel, mais dans les macros, je suis novice.
Est-ce que tu peux me donner le code de la 2ème ligne dans l'offset, qui me permettra de comprendre le codage, et que je pourrai appliquer aux autre cellules ?
Merci de ton retour.
Francis
re,
c'était une reprise de cette question https://forum.excel-pratique.com/excel/position-cellule-avec-bandeau-fixe-200820 et je pensais que j'avair répondu ...
Ces "shapes" dans la colonne A, je ne sais pas pourquoi vous les avez ajouté. Votre problème est devenu plus complexe à résoudre, 2 cellules fusionnées seraient moins difficile.
Bonjour
Je n'ai pas compris la même chose que BSAlv qui regarde les jour en colonne et moi en ligne 2
Sub M_Poseurs()
Dim J As Range
Set J = Cells(2, (ActiveCell.Column))
If J.MergeCells Then Col = J.MergeArea.Cells(1, 1).Column
Application.Goto Sheets("planning").Cells(42, Col)
End SubMerci de votre aide Chris et Bart.
J’ai enregistré le codage de Chris, mais le résultat attendu n’est pas là !!
Attention, c’est peut-être parce que j’ai mal enregistré le codage.
Je mets en pièce jointe une capture d’écran de ce que j’ai enregistré et également mon fichier qui a évolué, mais j’ai adapté en conséquence la numérotation des lignes dans le codage de Chris.
Francis
RE
Pourquoi as-tu ajouté des lignes au dessus de mon code ? C'est normal que cela ne marche pas...
Etant donné que nous ne comprenons pas la même chose, il serait bien de donner un cas concret : je suis sur telle cellule, je cliques sur Poseurs : dans quelle cellule doit-il aller...
Chris,
Dans un 1er temps je n’ai pas rajouté de ligne, mais enregistré ton code sous les autres.
En faisant cela, regarde la 2ème capture d’écran dans mon document en pièce jointe. Un message apparait disant « erreur de compilation ».
C’est pour cela que j’ai mis ton code, sous le code déjà existant pour « M_Poseurs »
Voilà ma demande avec un exemple concret :
Je clique sur le bouton en haut à gauche « ATELIER DEPART » puis sur la journée « LUNDI 19 ».
Je suis bien à la section "ATELIER DEPART" et à la page du LUNDI 19, (Cellule BS2), donc c'est parfait.
Ensuite je clique sur le bouton « POSEURS ».
Le renvoi se fait bien sur la ligne « POSEURS » (ligne 23) mais je me retrouve dans la cellule E24 qui est la cellule du SAMEDI 17, alors que j’aurai voulu être sur la cellule BS2 qui correspond au LUNDI 19.
En fait, quand je suis sur une journée et que je clique sur un des 4 boutons en haut à gauche, je veux rester sur la même journée où j'était avant de cliquer, et non me retrouver par défaut au samedi.
Mon autre demande concerne la ligne A1que j’aurai aimé qu’elle soit figée.
Un exemple concret :
Le bouton appelé « XXXX », que j'ai mis en bleu pour l'identifier, comme les autres boutons "X", sont appelés à être des boutons actifs comme les 4 premiers.
Lorsque je clique sur « SAMEDI », le bouton « XXXX » reste visible car la ligne A1 n’a pas lieu de bouger.
Quand je clique sur « DIMANCHE », le bouton « XXXX » disparaît puisqu’il bouge avec la ligne A1.
J’aurai aimé que ces boutons restent figés pour qu’ils apparaissent en permanence.
Merci de ton aide.
RE
Quand on pose le code complet d'une sub c'est que cela constitue l'intégralité de la SUB... et elle doit remplacer toute autre Sub de même nom.
Ensuite je clique sur le bouton « POSEURS ».
C'est bien ce que fait mon code : il analyse dan quelle colonne est la cellule active, récupère la date correspondante et se décale en ligne 42 (à adapter puisque c'est 24 maintenant) et 1ère colonne de cette plage de date.
Les colonnes A à D étant figées, soit tu déplaces ton bouton bleu dans une de ces colonnes soit tu figes aussi les colonnes EFG....
C'est le principe des volets, non modifiable
Chris,
Ok, j’ai donc mis ton codage à la place de celui existant.
En passant du bouton ATELIER DEPART puis LUNDI 19, au bouton POSEURS, je reste bien au LUNDI 19, ce que je voulais.
Par contre, l’affichage « ascenseur » est décalé.
Il faudrait que la cellule BS23 soit juste sous la cellule BS4, comme c’était juste avant l’enregistrement de ton code pour que l’affichage soit parfait.
RE
Sub M_Poseurs()
Dim J As Range
Set J = Cells(2, (ActiveCell.Column))
If J.MergeCells Then Col = J.MergeArea.Cells(1, 1).Column
Application.Goto Sheets("planning").Cells(24, Col), 1
Application.Goto ActiveCell.Offset(-1)
End SubChris,
J'ai mis en place vos codages en ajustant les numéros de cellules pour chaque Sub et ça marche exactement comme je veux.
Un grand merci de votre aide et merci également à Bart de son aide précédente.