VBA/EXCEL : DÉTERMINATION D'UNE PLAGE DES LIGNES MASQUÉES

Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
- - Dernière réponse : ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
- 29 juin 2015 à 10:44
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/53606-vba-excel-determination-d-une-plage-des-lignes-masquees

Afficher la suite 
ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
212 -
Bonjour Eric (je ne pensais pas te retrouver là et suis très heureux de te retrouver).

Mille merci pour ce rapport de test, qui fait que je vais enfin pourvoir cesser de surveiller cette discussion.

Bon ===>> marche donc pour toutes les versions supérieures ou égales à 97
pijaku
Messages postés
12253
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
19 juillet 2019
6 > ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
-
Bonjour,

Je relance après quelques années. Un test sur Excel 2010 révèle deux choses :
- Pas de souci d'exécution, en moins de 8 secondes la plage est correctement déterminée,
- Il n'existe plus de limitation de 16384 "areas".
Je suppose, Jacques, que tu as intégré un traitement par "tranches" de 15000 en raison de cette limitation. Cela n'a plus lieu d'être depuis Excel 2010 (j'ai testé en ne touchant pas au code mais en modifiant par : Dim tranche As Long et tranche = 60000).
ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
212 > pijaku
Messages postés
12253
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
19 juillet 2019
-
Bonjour, Franck,
Je n'ai pas Excel2010 (je n'ai que la version 2007).
Le rapport de ton observation est donc bienvenu.
Reste que si l'on à l'intention de distribuer le projet et que l'on veut "bénéficier" de tranches plus importantes, il va tout simplement falloir spécifier la taille de ces tranches en fonction de la version.(extractible par Application.Version).
Merci.
cs_Frederic45
Messages postés
60
Date d'inscription
vendredi 26 octobre 2007
Statut
Membre
Dernière intervention
30 mars 2010
-
Bonsoir à tous

J'ai retrouvé un excel 97 au fond d'un tiroir.

Pour VIKING30 :
" Quoique pour la version 1997 il risque d'y avoir un souci car je ne me rappelle pas si elle gérait déjà 65536 lignes ou 32768 lignes ! ? "
si, si, il y a bien 65536 lignes

Pour UCFOUTU :
Merci pour ce code : 6,16 (sous win7)

Eric (edelweisseric)
ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
212 -
salut, VIKING30

"autant je ne suis pas certain d'en comprendre toute l'utilité puisque il est possible de sélectionner toutes les lignes et de faire clic droit ==> afficher"

l'affichage n'est dans la démo que pour permettre de contrôler que la plage a bien été constituée et qu'on peut s'en servir comme on l'entend ! Ici, pour le démontrer, on a attribué une couleur (qu'elle n'avait pas) aux lignes de la plage. Ce n'est qu'un exemple et ce n'est pas un but.
VIKING30
Messages postés
11
Date d'inscription
dimanche 24 juillet 2011
Statut
Membre
Dernière intervention
14 août 2013
-
...
Quoique pour la version 1997 il risque d'y avoir un souci car je ne me rappelle pas si elle gérait déjà 65536 lignes ou 32768 lignes ! ?
VIKING30
Messages postés
11
Date d'inscription
dimanche 24 juillet 2011
Statut
Membre
Dernière intervention
14 août 2013
-
Bonjour UCFOUTU
Désolé de t'avoir occasionné une fausse joie !
Autant cette macro marche vite et bien autant je ne suis pas certain d'en comprendre toute l'utilité puisque il est possible de sélectionner toutes les lignes et de faire clic droit ==> afficher !
On attend tous le test sur version 1997 ;=)
ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
212 -
Merci MICHELMJN34 pour ce compte rendu.
Je t'en remercie d'autant que j'ignorais (j'ai honte) l'existence d'une version 2002.
Récapitulatif, donc :
Marche pour 2000, 2002, 2003, 2007
Nous manque un essai sur version 1997.
MichelMJN34
Messages postés
1
Date d'inscription
mardi 21 octobre 2008
Statut
Membre
Dernière intervention
28 septembre 2011
-
Bonjour,

Pour info, cela fonctionne aussi avec un Excel 2002 SP3
7s avec méthode rapide et comme je suis maso, j'ai testé la méthode lente soit 6h30 sur un Dell Inspiron avec processeur Intel I5 760 4 cores. En effet, il n'y a pas photo.
BunoCS
Messages postés
14636
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
9 octobre 2019
90 -
Ce n'est pas comme si c'était toi l'auteur :P
ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
212 -
Ah zut, alors !
Merci Buno! j'étais probablement mal réveillé et, attendant un test sur 1997 (le dernier encore manquant) je n'ai vu que le 7 final !
Me voilà donc condamné à continuer de surveiller encore ce topic. Sniff !
BunoCS
Messages postés
14636
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
9 octobre 2019
90 -
Euh...il est où ton retour sur Excel97? Le viking dit qu'il a testé sur la version 2007...et il ne faut pas faire dire à un viking ce qu'il n'a pas dit... ;)
ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
212 -
Merci beaucoup, VIKING30 pour ton test et son résultat.

Il est absolument normal que la ligne 2 ne s'affiche pas in fine puisque nous avons demandé de recenser les lignes masquées de la plage A4:A60002 et que le test affiche en bleu, quand il termine, les lignes qui étaient masquées sur CETTE plage.

Grâce à toi (tu as fait le dernier test qui manquait encore) nous savons que cette méthode marche donc sur toutes les versions depuis 1997.

Je peux donc maintenant cesser de suivre l'évolution de cette discussion.
Merci à tous.
VIKING30
Messages postés
11
Date d'inscription
dimanche 24 juillet 2011
Statut
Membre
Dernière intervention
14 août 2013
-
Bonjour
J'ai testé chez moi 13,7 secondes (Vista Excel 2007) et ça fonctionne
Mais la ligne 2 ne s'affiche pas !?!?!?

Je compte tester au bureau(XP pro Excel 2003) quand j'aurais le temps (on n'est pas rendus !!!)
ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
212 -
Merci beaucoup, Miloud, pour ce rapport

Marche donc sous 2007, 2003 et 2000
Il ne nous manque qu'une expérience sous 1997, pour clore.
milold
Messages postés
1
Date d'inscription
mercredi 5 décembre 2007
Statut
Membre
Dernière intervention
26 septembre 2011
-
Bonjour,

J'ai effectué le test sous excel 2000, traitement qui s'est bien effectué en moins de 7 secondes (6,69921875 précisément).
ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
212 -
Merci Buno, Mille mercis.
Cela marche donc très bien avec Excel 2003 aussi.

Quant à :

- lignes 4 à 3999: j'ai bien 1 ligne sur 2 en bleu
- lignes 4000 à 14000: j'ai un gros pavé bleu
- lignes 14001 à 60002: 1 ligne sur 2 en bleu
- jusqu'à 65536: lignes blanches

C'est on ne peut plus normal et correspond parfaitement à ce que j'avais masqué en période de "préparation" (c'est exprès, que je n'avais pas masqué de 4000 à 14000, pour vérifier le bon fonctionnement si grande plage non masquée au milieu).
Cela a pris 13,68 secondes chez toi (presque le double de chez moi). La seconde méthode aurait donc, chez toi, pris probablement plus de 3 heures.

Voilà donc qui est bon pour 2003.
J'ai rétrogradé jusqu'à 1997 et serais heureux de savoir si marche également sur 2000 puis sur 1997.
BunoCS
Messages postés
14636
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
9 octobre 2019
90 -
Complément d'information concernant les lignes bleues:
- lignes 4 à 3999: j'ai bien 1 ligne sur 2 en bleu
- lignes 4000 à 14000: j'ai un gros pavé bleu
- lignes 14001 à 60002: 1 ligne sur 2 en bleu
- jusqu'à 65536: lignes blanches
BunoCS
Messages postés
14636
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
9 octobre 2019
90 -
13.68s chez moi (WinXP, Excel 2003).
Je n'ai pas lancé la 2nde méthode ;)
ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
212 -
Voilà qui est fait (normalement "rétrogradé").
Merci Buno
ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
212 -
Bonjour Buno
et Merci.
Oui, c'est même très grave !

Je vais donc essayer de rajouter un fichier "rétrogradé".
A plus .
BunoCS
Messages postés
14636
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
9 octobre 2019
90 -
Hello,
Suite à ton commentaire, et étant donné que je suis avec Excel 2003, j'ai voulu te fournir les infos demandées mais, à l'ouverture - pendant la conversion de format - j'ai le message suivant:
"Ce fichier a été crée avec une version plus récente...[blabla]...les controle ActiveX non initialisés ne seront pas ouverts dans cette version d'Excel"
C'est grave docteur?
ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
212 -
Aucun commentaire.
J'en espérais toutefois. Pourquoi ? ===>> simplement parce que je me demande si la limite en cause du nombre d'"areas" des plages obtenues par l'utilisation de SpecialCells est la même, quelle que soit la version d'Excel.

J'ai ici utilisé la version 2007 et ai pu constater que cette limite était de 16384 "areas". Il se trouve (coincidence ?) que 16384 est également, sous Excel 2007, le nombre maximum de colonnes d'une Feuille de calcul !

J'en suis donc à me demander si mon code fonctionne également parfaitement sur des versions antérieures (et je sais alors ce qu'il conviendrait d'y modifier, bien évidement).

Un gentil forumeur possédant Excel 2003 ou Excel 2000 accepterait-il de me renseigner sur ce point (me dire le résultat obtenu sur SA version) ?
MERCI d'avance (pour tous et pour ce site) ...