Fixer une cellule active d'un tableau excel

Résolu/Fermé
mic13710 Messages postés 1087 Date d'inscription samedi 26 novembre 2005 Statut Membre Dernière intervention 13 mai 2021 - 23 févr. 2009 à 13:47
mic13710 Messages postés 1087 Date d'inscription samedi 26 novembre 2005 Statut Membre Dernière intervention 13 mai 2021 - 13 mars 2009 à 09:17
Bonjour,

J'ai un petit tableau Excel vide avec des titres de lignes et de colonnes.
Je voudrais à l'intérieur de ce tableau et uniquement dans la zone vide (hors titres)
1. que la cellule active change de couleur,
2. que je puisse récupérer les titres de ligne et de colonne correspondants pour effectuer des recherches sur d'autres tableaux,
3. qu'une nouvelle sélection invalide la sélection précédente,
4. que la couleur de la cellule sélectionnée soit conservée si je sors de ce tableau pour activer une autre cellule à l'extérieur du tableau.

Je suis sûr que c'est possible mais ne sais pas comment ni par quoi commencer. en VB peut-être, mais je suis ignare et ne demande qu'à apprendre.

Peut-être que cette question a été posée sur le forum, mais mes recherches n'ont rien donné.

Merci pour votre aide

5 réponses

pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 643
23 févr. 2009 à 14:42
Bonjour,

J'ai réalisé un petit exemple.
Pour comprendre le fonctionnement il faut regarder le code VBA en cliquant bouton droit sur le nom de l'onglet "EXEMPLE" et "visualiser le code"

http://www.cijoint.fr/cjlink.php?file=cj200902/cijuUKPYfA.xls

pour commencer selectionner la 1° case jaune...

Pour plus de précision ne pas hésiter à me demander.

A+
0
mic13710 Messages postés 1087 Date d'inscription samedi 26 novembre 2005 Statut Membre Dernière intervention 13 mai 2021 355
23 févr. 2009 à 15:29
Super Pilas, c'est exactement ce que je cherchais. Merci beaucoup.

Par contre, j'ai un problème sur des cellules qui ont un format conditionnel actif.
Je m'explique, mes lignes sont les années (2009 à 2013) et mes colonnes les mois.
J'ai un format conditionnel sur tout le tableau qui colore en jaune la ligne de l'année en cours (2009 en l'occurrence).
J'ai bien entendu changé le ColorIndex du fichier VBA à 3 (rouge).
Ca fonctionne nickel pour les cellules 2010 à 2013 (conditionnel faux) mais pas pour 2009 (conditionnel vrai) qui restent jaune. Le renvoi d'info des titres se fait bien, mais ça c'est normal.

Y'a t'il un moyen de contourner le format conditionnel ou bien est-ce que je dois le supprimer?
0
pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 643 > mic13710 Messages postés 1087 Date d'inscription samedi 26 novembre 2005 Statut Membre Dernière intervention 13 mai 2021
23 févr. 2009 à 16:05
Oui, je viens de tester avec la mise en forme conditionnelle cela ne fonctionne pas.
Apparemment Il n' y a pas d'autre solution que de l'enlever.

A+
0
mic13710 Messages postés 1087 Date d'inscription samedi 26 novembre 2005 Statut Membre Dernière intervention 13 mai 2021 355 > pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020
23 févr. 2009 à 16:14
Je crois que le problème est incontournable car le format conditionnel est prioritaire sur les autres formats.
Je l'ai donc supprimé et je l'ai conservé seulement sur les lignes de titre en mettant en jaune l'année et le mois en cours.

Merci encore pour ton aide qui m'a été d'un grand secours.
0
mic13710 Messages postés 1087 Date d'inscription samedi 26 novembre 2005 Statut Membre Dernière intervention 13 mai 2021 355
12 mars 2009 à 19:19
Salut Pilas,

Après plusieurs jour d'essai, le code marche bien, mais il y a un problème d'affichage lors de la première sélection.
En effet, lorsqu'on ouvre le fichier, ILIG_SELECT et ICOL_SELECT n'ont aucune valeur attribuée et donc si je sélectionne une autre cellule, la dernière sélection sauvegardée reste colorée donnant ainsi 2 cellules colorées au lieu d'une.
Pour éviter ça, il faut d'abord commencer par cliquer sur la cellule colorée pour affecter les valeurs correctes aux 2 variables, et après ça marche sans pb. Mais c'est pas glop.

J'ai bien essayé de remplacer Cells(ILIG_SELECT, ICOL_SELECT).Interior.ColorIndex = x1None
par: Range("C3:N7").Interior.ColorIndex = x1None, mais ça ne change rien.

As-tu une idée pour contourner le problème?

D'avance merci.
0
pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 643
12 mars 2009 à 21:41
Bonsoir,

Oui je comprends le problème, je te propose de le résoudre à l'ouverture ou à la fermeture du classeur pour celà du mets le code suivant dans le dossier macros de "ThisWorkbook" :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Sheets("EXEMPLE").Range("C2:J20").Interior.ColorIndex = x1None
End Sub


dans cet exemple quand tu fermes ton classeur, il enlève la couleur de ta plage (dans mon exemple c'est la plage C2:J20 de la feuille "EXEMPLE")

A+
0
mic13710 Messages postés 1087 Date d'inscription samedi 26 novembre 2005 Statut Membre Dernière intervention 13 mai 2021 355
12 mars 2009 à 22:52
Merci Pilas.

Ton code fonctionne bien. Cependant, comme j'ai déjà une routine Private Sub Workbook_Open() dans mon Workbook, j'y ai inséré le code qu'il me fallait pour mon application et ça marche aussi.

L'avantage, c'est qu'il ne me demande pas de sauvegarder avant de fermer. Par contre, ça ralenti un petit peu l'ouverture du fichier. Mais je ne suis pas pressé.

Je ne sais pas si le (Cancel As Boolean) de ton Private Sub Workbook a de l'importance. En tout cas, ça marche sans.
0
pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 643
12 mars 2009 à 23:16
Oui, tu peux sans problème le mettre à l'open. Quant à Cancel c'est un booléen qui ne sert que dans la fonction close éventuellement a faire un test pour empécher la fermerture du classeur si des conditions ne sont pas remplies...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mic13710 Messages postés 1087 Date d'inscription samedi 26 novembre 2005 Statut Membre Dernière intervention 13 mai 2021 355
13 mars 2009 à 09:17
Bon donc je n 'ai rien oublié dans mon code.
Merci pour tout pilas.
Va falloir que je creuse un peu VBA si je veux progresser.
0