Je n'ai pas encore vu cela, mais je pense que c'est peut-être parce que je ne sais pas comment exprimer mon problème de façon concise. Voici un exemple de ce que je voudrais essayer:VBA Excel Remplissage des cellules basé sur l'existence précédente
Étant donné une colonne qui contient des initiales d'état, vérifiez la feuille de sortie si cet état a déjà été trouvé. Si ce n'est pas le cas, remplissez une nouvelle cellule avec les initiales de cet état et initialisez le nombre (nombre de fois où l'état a été trouvé) à un. Si les initiales de l'état sont trouvées dans une cellule de la feuille de sortie, incrémentez le compte d'une unité. Avec ceci, si nous avons une feuille d'Excel doublée de 50 000 (ou plusieurs) qui a des états dans un ordre aléatoire (les états peuvent être répétés ou pas) nous pourrons créer une table propre qui produira les états qui sont dans la fiche de données brute et combien de fois ils sont apparus. Une autre façon d'y penser est de coder un tableau croisé dynamique, mais avec moins d'informations.
Il y a plusieurs façons que j'ai pensé à la façon de compléter cela, je pense personnellement qu'aucun d'entre eux sont de très bonnes idées mais nous verrons.
algorithme 1, les 50 états:
- création de 50 variables de chaîne pour chaque état, créer 50 variables longues pour les comptes
- boucle par feuille de données brutes, si l'état spécifique trouvé alors incrémenter le nombre approprié (cela nécessiterait 50 si-ELSE)
- résultats de sortie
Dans l'ensemble ..... idée terrible
algorithme 2, la bascule:
- Ne créez pas des variables
- Si un état se trouve dans la feuille de données brutes, consultez la feuille de sortie pour vérifier si l'état a été trouvé avant
- Si l'état a été trouvé avant, incrémenter cellule adjacente par un
- Si l'état n'a pas été trouvé avant, changer de cellule disponible suivant vide pour indiquer les initiales et initialiser cellule adjacente à une
- Retour à la fiche de données brutes
Dans l'ensemble ... cela pourrait fonctionner, mais j'ai l'impression que cela prendrait une éternité, même avec des feuilles de données brutes qui ne sont pas très grandes mais qui ont l'avantage de ne pas gaspiller de mémoire En bas des lignes de code
Sur une note de côté, est-il possible d'accéder aux cellules d'un classeur (ou feuille de calcul) sans activer ce classeur? Je demande parce que cela rendrait le deuxième algorithme beaucoup plus rapide.
Merci,
Jesse Smothermon
Êtes-vous autorisé à trier les données? – mellamokb
Je vais dire non, je ne pense pas que ce soit trop important (pour le moment) de le trier –
Un tableau croisé dynamique semble résoudre votre problème de façon directe. Pourquoi ne veux-tu pas y aller? –