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 : 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
    ....
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 : 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" !!!
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