VBA Problème avec .SpecialCells(xlCellTypeLastCell)
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 :
Code:
1 2 3 4 5 6
| ....
wsFeuilleSortie.Activate
lDerniereLigneWbS = wsFeuilleSortie.Range("A1").SpecialCells(xlCellTypeLastCell).Row + 1
MsgBox lDerniereLigneWbS ' --> =
wsFeuilleSortie.Rows("2:" & lDerniereLigneWbS).EntireRow.Delete
.... |
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.
Voir le code ci-dessous :
Code:
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" !!! |
Cela "coince" :cry: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 ;););)