Bonjour,
Je connais Excel et moins Vba, je ne maîtrise pas tout.
Pour faciliter mes traitements, j'ai mis tous les fichiers Excel (format.xlsx) dans le même répertoire et ils ont tous le même nom incrémenté.
On a 2 séries de fichiers : ceux contenant les données : FicData001.xlsx à FicDataxxx.xlsx et 27 fichiers vides qui vont recevoir les données extraites des FicDataxxx.xlsx. Ces 27 fichiers correspondent aux 26 lettres de l'alphabet + 1 pour tous les chiffres de 0 à 9. Ces fichiers vides sont nommés FicTriA.xlsx, FicTriB.xlsx...FicTriZ et enfin FicTri0.xlsx.
Les FicDataxxx ont tous une seule feuille portant toujours le même nom, le même entête de colonne et n'ont qu'une seule colonne A renseignée avec des noms triés de 0 à 9 puis de A à Z (tri normal de Excel).
Les FicTrix.xlsx ont tous aussi une seule Feuille avec une seule colonne et son entête.
C'est volontaire car tout regrouper dans un seul fichier avec des onglets créerait un fichier Excel de plusieurs centaines de Mo, et j'ai déjà plus d'une fois planté Excel avec de gros fichiers !
Ce que je voudrais faire :
1) Lire sans l'ouvrir le premier fichier FicDataxxx
2) Tester le premier caractère de chaque ligne (sans distinction minuscule/majuscule)
3) Extraire le contenu de chaque cellule
4) Tester si le contenu de cette cellule n'existe pas déjà (= sans doublon) dans le fichier FicTrix.xlsx correspondant sans avoir à l'ouvrir. (Ecriture dans la Feuille1 en colonne A à partir de la ligne 2)
ex : le premier enregistrement du fichier FicData001.xlsx est "AlainEtCécile". Premier caractère = "A". Donc j'écris "AlainEtCécile" dans le fichier FicTriA.xlsx si cette valeur n'y est pas déjà, sinon je ne fais rien.
Je boucle sur l'enregistrement suivant jusqu'à la fin puis sur le fichier suivant.
(Le petit plus sera d'ajouter un compteur de contrôle pour vérifier que le nombre d'enregistrements lus correspond bien au nombre d'enregistrements écrits + nombre de doublons)
J'ai bien réussi à trouver différentes portions de codes (notamment avec ADO) mais je n'arrive pas à les imbriquer correctement. Merci d'avance pour vos réponses.
Partager