[VBA] Plage utile dans sélection

Bonjour le forum

Principe : le code permet d'identifier une plage utile dans une sélection (le "UsedRange" au sein meme d'une sélection)

Ma démarche : Je vous partage aujourd'hui un code qui m'est très utile et qui le sera surement si vous utilisez des bases de données. Sur mes bases, je suis souvent amené à analyser des plages de données, par reflexe (mais surtout par feignantise) je sélectionne directement les colonnes. Malheureusement cela augmente considérablement le nombre de cellule à analyser et par conséquent fait exploser le temps de traitement de mon code qui se trouve derrière !

Exemple : Dans le cas où je veux analyser les données se trouvant sur la plage F5:I12 , je sélectionne cette plage et le code me dit qu'une plage utile à été trouvée en G5:H10.

image

J'ai poussé le code pour qu'il fonctionne dans n'importe quel cas de figure de sélection (enfin je crois ).

J'espère que mon fichier vous seras autant utile qu'à moi, je le partage pour pouvoir échanger dessus et recevoir des critiques constructives afin d'améliorer tout ça ! Enjoy

EDIT : Nouvelle version V2.1 du 09/12/2020

Application d'un correctif sur la fonction personnalisée de gestion des erreurs liée aux formules et aux validation de données.

EDIT : Nouvelle version V2.0 du 01/12/2020

  1. Ajout d'un correctif lié à une erreur d'execution dans un cas particulier où des cellules sont en erreurs.
  2. Ajout d'un système de qui vérifie la présence ou non d'erreurs dans la plage sélectionnée.

TAG : vba ; plage ; plage utile ; usedrange ; detection ; detection automatique ; detection plage ; cellules ; plage utile ; range ; plage dans plage ; cellules dans plage ; colonnes ; colonne ; optimisation ; plage optimale ; sélection

Salut GGautier !

Belle macro...
Je n'ai encore jamais éprouvé le besoin de trouver la plage utile dans une plage donnée, mais lorsque ça viendra je me souviendra de ta petite appli. Merci !

Merci @Baboutz 😊

Perso, j'ai fait cette macro car je fais beaucoup d'extraction et d'analyse de données sur des plages variables. Par facilité je sélectionne toujours les colonnes au lieu de prendre le temps de choisir vraiment la plage utile. Donc voilà ☺️

Cette macro pourrait aussi servir aux personnes désireuses de voir comment j'ai fait pour manipuler un range sur une feuille (question très récurrentes sur les forums) 😉

Salut !

Oui je vois. C'est vrai que moi au contraire je n'ai jamais eu à faire d'extractions et d'analyses de données c'est pour ça
Mais c'est intéressant, moi par exemple je n'utilise jamais UsedRange, il faudrait que j'essaie de l'utiliser un peu plus

Si cela intéresse voilà dans quel cas j'utilise le redimensionnement de plage. Dans mon cas c'est indispensable de trouver la plage utile si je ne veux pas que la macro s'execute pendant de longues minutes (même si j'ai réussis à faire quelque chose de relativement rapide )

1analysev3-6.xlsm (81.28 Ko)

Ah oui je vois, très intéressant !
Je me demande dans quel cadre d'amélioration continue on peut effectuer un pareto sur un % de mot

Sinon, je te conseille d'utiliser les expressions régulières pour enlever les caractères spéciaux ! Ça sera (je pense) plus efficace (et rapide !) qu'un array + boucle + replace !

Peux tu m'en dire plus sur les "expressions régulières" ? ☺️

Pour la petite histoire, le bute de l'opération est d'identifier des taches récurrentes. Ces taches en questions sont des opérations qui ne sont pas sous procédure. Par exemple l'opérateur à besoin de nettoyer un équipement, il n'existe aucuns standard, il remplis donc un petit document sur lequel il décrit son action. Il écrira par exemple "Nettoyage de la ligne".

Mon programme va donc analyser un ensemble de terme dans une chaine de caractères (la chaine de caractère est la petite description que l'opérateur a fait) pour identifier les taches récurrentes qui mériterait de mettre en place un standard opérationnel. Dans mon exemple le mot "Nettoyage" va ressortir très régulièrement, mettre en place un standard sur les nettoyages de lignes serait donc plus que pertinent !

Le Pareto est là pour me "justifier" devant mon responsible

Moi après derrière, ça me permet aussi de classer toutes ces fiches et de sortir un ensemble d'indicateurs, comme par exemple les secteurs du site où il y a le plus de d'actions réalisées qui ne sont pas sous standard, etc, etc...

Salut !

Les expressions régulières (ou regex) est une façon universelle à pleins de langage de traiter des chaînes de caractères. C'est la méthode la plus efficace (je crois).
Le principe est simple : tu définis un 'pattern' (c'est le plus gros du travail), puis tu traites. Il y a trois manières de traiter :

  1. Le test : est-ce que ma chaîne de caractère match avec le pattern ?
  2. L'exploration : à l'aide du pattern, renvoie une donnée de la chaine de caractère
  3. Le remplacement : remplace le motif du pattern dans la chaîne de caractère par un/des caractère(s)

Pour plus d'infos regarde ici, ça sera sûrement mieux expliqué !
Et ici, j'ai fait il n'y a pas longtemps un fichier pour une personne, qui devrait t'intéresser, puisque je remplace tous les caractères spéciaux par rien !

Ah oui je vois, super intéressant ! Et très malin
Et bien en espérant que les regex puissent accélérer ton processus d'identification de tâches à standardiser !

Merci bien pour les deux liens, je vais creuser tout ça, je ne connaissais pas et je trouve ça intéressant

Bon courage ! C'est pas facile à "entrer" dedans je trouve. Mais effectivement très intéressant

Cela pourrait te servir aussi pour ton fichier "extraction intuitive" !

Rechercher des sujets similaires à "vba plage utile selection"