[Catégorie modifiée VB6 --> VBA] Déselectionner plage de cellules

Résolu
Moustike31 Messages postés 19 Date d'inscription mardi 2 octobre 2012 Statut Membre Dernière intervention 2 octobre 2012 - 23 juin 2010 à 16:20
Moustike31 Messages postés 19 Date d'inscription mardi 2 octobre 2012 Statut Membre Dernière intervention 2 octobre 2012 - 24 juin 2010 à 11:19
Bonjour,

Mon problème est que j'ai une macro pour afficher ou masquer des lignes cependant quand je continu de travailler sur cette meme feuille dès que je fais une entrée je retourne sur les dernières cellules selectionnées(afficher) et je voudrai que cela ne s'apercoive pas que les cellules s'affichent ou se masquent tant que je suis pas arrivé à ma fin de page.

Voici mon code :

If Range("D8") = "non" Then
Rows("210:214").Select
Selection.EntireRow.Hidden = False
ElseIf Range("D8") = "oui" Then
Rows("10:14").Select
Selection.EntireRow.Hidden = True
End If

Est ce que quelqu'un aurait une solution svp??

Nat

6 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
24 juin 2010 à 10:06
C'est exactement ce que je te proposais :
- Début du code : mémo position
- Exécution du code
- Fin de code : on se remet sur la position initiale

Si les lignes se sélectionnent, c'est que tu fais un Select dans ton code - Lapalisse (1470-1525).
Normalement, tu peux t'en passer --> change ta méthode
Si tu as fait un truc du genre :
Rows("210:214").Select
Selection.EntireRow.Hidden = False
cela peut très bien être remplacé par
Rows("210:214").EntireRow.Hidden = False
qui ne sélectionnera pas les lignes
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
23 juin 2010 à 16:43
Salut

Pense à mettre de la ponctuation dans tes phrases, c'est vraiment pénible à lire.

"j'ai une macro pour afficher ou masquer des lignes"
Bon, et quand déclenches-tu son exécution ?
S'agit-il des lignes de code que tu as donné à la fin ?

"quand (...) je fais une entrée"
une entrée ? une salade composée ?
C'est quoi une entrée pour toi ?

"je retourne sur les dernières cellules selectionnées(afficher)"
Sélectionnées ? Tu ne nous as pas dit ce que tu faisais avant ...
Sélectionnées par qui, par quoi ?

"je voudrai que cela ne s'apercoive pas que les cellules s'affichent ou se masquent ..."
Difficile de savoir ce que tu veux dire ...
On n'est pas tes potes, essaye de parler un français à peu près correct pour pouvoir communiquer avec un plus grand nombre.

"tant que je suis pas arrivé à ma fin de page"
Faudrait que tu nous dises ce qu'est une page.

En gros, on n'a rien compris à ton problème.
Pense toujours qu'on n'a pas ton écran sous les yeux et qu'il faut bien décrire ce que tu fais, ce que tu vois ...

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
Moustike31 Messages postés 19 Date d'inscription mardi 2 octobre 2012 Statut Membre Dernière intervention 2 octobre 2012
23 juin 2010 à 17:17
Alors je vais essayer de parler un peu plus Français !

Sur une feuille Excel, les premières lignes contiennent des cellules a remplir par des listes déroulantes.
Ces cellules à remplir sont mes conditions (disons qu'il y a 5 conditions), pour afficher ou masquer des lignes(beaucoup plus bas sur ma feuille Excel) sont à afficher ou à masquer.

Disons Cellule A1 : Condition 1
Cellule A2 : Condition 2 etc....

Quand je remplis ma cellule A1, les lignes 200 à 300 doivent se masquer ou s'afficher (selon ce que j'ai choisi pour ma cellule A1)

Donc ma macro s'exécute lors de la sélection sur la cellule A1.
Au lieu de passer à la cellule A2 en appuyant sur la touche entrée, se sont les ligne A200 à A300 qui reste sélectionnées, je suis donc obligé a chaque fois que j'appuie sur la touche ENTRÉE de remonter en haut de la feuille.

Comment puis-je faire pour éviter cela???

Plus précisement je souhaite qu'au lieu des lignes 200 à 300 reste sélectionner, je souhaite rester là où j'ai laisser mon curseur.

Est ce plus clair???????

Nat
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
24 juin 2010 à 00:37
Ô oui, beaucoup plus clair. Merci d'avoir fait cet effort qui simplifie tout.
Dans ta macro actuelle, pourquoi ne pas ajouter, en fin de procédure, une sélection de ta cellule A1 ou A2 ?
Tu remontrais ainsi en haut de la feuille.
En plus, quand ta macro s'exécute, elle doit savoir sur quelle cellule tu te trouves avant de commencer. Donc il te suffit de mémoriser cette adresse en début de procédure et de refaire un Select de cette mémoire à la fin.
0

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

Posez votre question
Moustike31 Messages postés 19 Date d'inscription mardi 2 octobre 2012 Statut Membre Dernière intervention 2 octobre 2012
24 juin 2010 à 08:09
Je ne souhaite pas revenir systèmatique en cellule A1, je souhaite réellement rester là ou je suis, je veux juste à ma macro actuelle rajouter un morceau de code qui me permette de déselectionner les lignes qui s'affichent ou se masquent.
0
Moustike31 Messages postés 19 Date d'inscription mardi 2 octobre 2012 Statut Membre Dernière intervention 2 octobre 2012
24 juin 2010 à 11:19
Merci beaucoup, avec ta proposition j'ai obtenu exactement ce que je souhaitais.

Bonne journée.
0
Rejoignez-nous