Bonjour à tous,
Je suis actuellement en stage de fin d'études, je suis novice en VBA mais plus que désireux de persévérer et d’acquérir de nouvelles compétences dans ce domaine.
Mon problème : Je dois analyser plusieurs données d’usinages issus de fichiers textes.
Chaque jour, j’ai un usinage à analyser soit 92 fichiers textes (de qques Mo jusqu'à 100Mo). Mais d’ici la fin du mois de Mai, je vais avoir 9*92 fichiers par jour à analyser car j’ai bien avancé dans mon travail (déjà que pour un usinage c’est assez fastidieux, alors pour 9 fois plus, j’essaie de trouver une automatisation pour mes manipulations...)
Pour chaque fichier .txt, j’effectue qques modifications via des macros que j’ai développées pour calculer automatiquement diverses données. J’enregistre le fichier sous le format .xlsm, sous le même nom (extension différente bien sûr) et sous le même répertoire.
Pour une de mes macro, j'ai besoin de transformer un groupe de cellules en un tableau. Mon problème est que le nombre de lignes et le nombre de colonnes varient pour chaque fichier. J'ai réussi à calculer la dernière ligne du tableau pour chaque fichier. Mais pour la dernière colonne je n'ai pas réussi ; malgré une longue prise de tête ...
Pour contourner le problème, j'ai repéré le maximum et l'ai inséré dans mon code (colonne "CFP") . Bien entendu ce code n'est pas optimisé et lors de l’enregistrement, cela augmente la taille de mes fichiers, pour au final pas grand chose.
Voici le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 Sub MacroTestTableau() ' ' MacroTestTableau Macro ' ' Touche de raccourci du clavier: Ctrl+b ' 'derniere ligne cellule non vide Dim derlig As Long derlig = Range("A" & Rows.Count).End(xlUp).Row Range("A6").Select ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$6:CFP" & derlig), , xlYes).Name _ = "Tableau1" Range("Tableau1[#All]").Select ActiveSheet.ListObjects("Tableau1").TableStyle = "TableStyleLight1" ActiveWindow.SmallScroll Down:=-21 End Sub
Pourriez vous je vous prie m'éclairer quant à propos de mon soucis. J'ai essayé d'insérer deux variables dans la fonction Range, mais sans succès.
Je vous remercie par avance de l'attention que vous porterez à mon post.
Bonne fin de (long) w-e à tous.
Guillaume
P.S : Je peux transmettre des exemples de fichiers textes bruts si vous le désirez.
Partager