Bonjour à tous,
Voici mon problème :
1 - Dans mon processus je suis amené à réinitialiser une feuille de travail (wsFeuilleSortie) sans effacer la ligne n°1 afin de conserver les titres de colonnes.
Pour cela je récupère le n° (X) de la dernière ligne de la plage de données figurant dans cette feuille et je supprime les lignes correspondantes de la ligne 2 incluse à la ligne X incluse.
Voir le code ci-dessous :
2 - Ensuite dans mon processus, je compile des données venant d'autres feuilles en plaçant les lignes de données les unes à la suite des autres.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 .... wsFeuilleSortie.Activate lDerniereLigneWbS = wsFeuilleSortie.Range("A1").SpecialCells(xlCellTypeLastCell).Row + 1 MsgBox lDerniereLigneWbS ' --> = wsFeuilleSortie.Rows("2:" & lDerniereLigneWbS).EntireRow.Delete ....
Voir le code ci-dessous :
Cela "coince"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 For Each vfichier In stLstfichiers Set wbEntree = Workbooks.Open(vfichier, ReadOnly:=True) ' Pour chacune des feuilles du fichier d'entrée For Each wsFeuilleEntree In wbEntree.Worksheets ' On récupère l'adresse de la dernière ligne du fichier de compilation _ que l'on incrémente pour se positionner sur la ligne suivante (libre) lDerniereLigneWbS = wsFeuilleSortie.Range("A1").SpecialCells(xlCellTypeLastCell).Row + 1 .... ET c'est là que cela "coince" !!!car lors de la première passe dans la 1ère boucle FOR et la suivante, le n° de dernière ligne (lDerniereLigneWbS) récupéré est le même que celui récupéré à l'étape 1 soit 'X' alors qu'après la suppression des lignes de données il aurait du être égal à '2' puisqu'il n'existe plus de données dans la feuille.
J'ai bien essayé de modifier ma méthode de suppression de lignes en utilisant d'autres méthodes de sélection de lignes mais rien y fait, lors de l'appel à '.SpecialCells(xlCellTypeLastCell)' au premier passage dans l'étape 2 je récupère toujours le n° de la dernière ligne de données présentes avant l'effacement. Pour les passages suivants, pas de problèmes, tout est OK, ma recopie de lignes de données s'effectue bien à la suite des précédentes.
Si avec ces quelques explications, qq'un peut SVP m'aider à corriger ce problème, il sera le bienvenu.
D'avance MERCI de vos réponses.
Cordialement
oracle7![]()
Partager