Suppresion lignes d'un tableau situé dans un autre classeur

Bonjour,

J'aimerais si c'est possible utiliser une macro pour pouvoir supprimer toutes les lignes (à part l’entête) d'un tableau situé dans un classeur Numéro 1, car ce tableau a besoin d’être réactualisé chaque jour.

Est-il possible d'effectuer cette macro à partir d'un classeur Numéro 2 (et si possible, sans avoir besoin d'ouvrir le classeur Numéro 1 ? )

J'ai testé ce code, qui marche uniquement si on se place dans le classeur Numéro 1:

Sub SupprimeLigne()
    Application.ScreenUpdating = False
    lg = Range("D65536").End(xlUp).Row
    'On parcourt toute la colonne D, de 65536 à 3
    For i = lg To 3 Step -1
    'Si la cellule (i,4) n'est pas vide, alors on supprime la ligne i
    If Not Cells(i, 4).Value = "" Then Rows(i).Delete
    Next
    End Sub

Ps: ma ligne d'entête est située sur la 2ème ligne. Je teste si la ligne n'est pas vide en testant chaque cellule de la colonne D...

Merci d'avance !

5exemple.xlsx (204.37 Ko)

Bonjour,

Fais le classeur ouvert, c'est beaucoup plus simple. Et avec screenupdating = false ça passe inaperçu.

Et à moins de n'avoir qu'une seule feuille il vaut mieux adresser son nom aussi. A tester :

Sub SupprimeLigne()
    Application.ScreenUpdating = False
    Workbooks.Open Filename:="D:\tmp\Classeur2.xls"
    With ActiveWorkbook.Sheets("Feuil1")
        lg = .Range("D65536").End(xlUp).Row
        'On parcourt toute la colonne D, de 65536 à 3
        For i = lg To 3 Step -1
            'Si la cellule (i,4) n'est pas vide, alors on supprime la ligne i
            If Not .Cells(i, 4).Value = "" Then .Rows(i).Delete
        Next i
    End With
    ActiveWorkbook.Close True
End Sub

eric

Bonjour,

Fais le classeur ouvert, c'est beaucoup plus simple. Et avec screenupdating = false ça passe inaperçu.

Qu'entend tu par là?

Au final, voici mon code. Je n'ai pas utilisé Workbooks.Open Filename au cas où mon fichier devrait être déplacé, mais ma modification à l'air de tout aussi bien fonctionner. J'arrive à supprimer les lignes de mon tableau situé dans le classeur2, à partir du classeur1.

Sub SupprimeLigne()
Application.ScreenUpdating = False
'Activer un classeur
Workbooks.Open ("Classeur2.xls")
   With ActiveWorkbook.Sheets("Feuil1")
            lg = .Range("D65536").End(xlUp).Row
            'On parcourt toute la colonne D, de 65536 à 3
           For i = lg To 3 Step -1
                'Si la cellule (i,4) n'est pas vide, alors on supprime la ligne i
               If Not .Cells(i, 4).Value = "" Then .Rows(i).Delete
            Next i
        End With
'Fermer le classeur actif
ActiveWorkbook.Close True
End Sub

Merci pour ton aide Eriiic !

Rechercher des sujets similaires à "suppresion lignes tableau situe classeur"