Ouvrir et supprimer des lignes d'un fichier en VBA

  • Initiateur de la discussion Initiateur de la discussion joquetino
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

joquetino

XLDnaute Junior
Hello ,

J 'ai un souci qui doit être tout bête. Je cherche en VBA à ouvrir un fichier Excel, et supprimer sur tous les onglets
les lignes d'en tête vides.
Pour l 'ouverture du fichier, pas de souci. Par contre, je n'arrive pas à supprimer la ligne.Voici mon code :

Code:
Dim oXls As Object
Set oXls = CreateObject("Excel.Application")
oXls.Workbooks.Open fileName:=sFile
Dim nomOnglets(13) As String
Dim i As Integer
i = 0
With oXls.ActiveWorkbook
    For Each o In .Worksheets
        .Rows(1).select
        .Selection.Delete Shift:=xlUp
        nomOnglets(i) = o.Name
        i = i + 1
    Next o
    .Close
    Set oXls = Nothing
End With

Il y une erreur sur la ligne ".Rows(1).select", il me dit qu'il ne connait pas la propriété. Quelqu'un aurait-il une idée du problème?
Merci d 'avance.
 
Re : Ouvrir et supprimer des lignes d'un fichier en VBA

bonjour joquetino

A premiere vue !!

tester:

Code:
Dim oXls As Object
Set oXls = CreateObject("Excel.Application")
oXls.Workbooks.Open fileName:=sFile
Dim nomOnglets(13) As String
Dim i As Integer
i = 0
With oXls.ActiveWorkbook
    For Each o In .Worksheets
       [COLOR=blue] o.Rows(1).select
        Selection.Delete Shift:=xlUp
[/COLOR]        nomOnglets(i) = o.Name
        i = i + 1
    Next o
    .Close
    Set oXls = Nothing
End With
 
Re : Ouvrir et supprimer des lignes d'un fichier en VBA

Bonjour,

Tu n'as pas besoin d'écrire Set oXls = CreateObject("Excel.Application") à moins que ton code se trouve sur word par exemple.
Je te propose ce code:

Code:
Dim oXls As Workbook
Dim i As Integer
Set oXls = Workbooks.Open(Filename:=sFile)
With oXls
    For i = 1 To .Worksheets.Count
        .Worksheets(i).Rows(1).Delete Shift:=xlUp
    Next i
    .Close
    Set oXls = Nothing
End With

Edit: arfff, pas rafraichi, salut PierreJean 🙂
 
Re : Ouvrir et supprimer des lignes d'un fichier en VBA

Bonsoir,

J'ai essayé ta proposition Pierre-Jean, et il me met un message d'erreur, sur la ligne : "o.Rows(1).select"

Skoobi, ça marche très bien. Par contre, si je veux une condition supplémentaire (par exemple, supprimer la première ligne si la valeur en case "A1" est égale à "toto"), comment pourrai-je faire?

J'ai essayé le code suivant, mais visiblement il n'aime pas trop ça Excel :
Code:
Dim oXls As Workbook
Dim i As Integer
Set oXls = Workbooks.Open(Filename:=sFile)
With oXls
    For i = 1 To .Worksheets.Count
        if (.Worksheets(i).Rows(1,1).value="toto") Then
        .Worksheets(i).Rows(1).Delete Shift:=xlUp
        end if
    Next i
    .Close
    Set oXls = Nothing
End With

En tout cas, merci à vous deux pour vos réponse.
 
Re : Ouvrir et supprimer des lignes d'un fichier en VBA

Re

ceci devrait fonctionner

Code:
Sub test()
Dim oXls As Workbook
Dim i As Integer
Set oXls = Workbooks.Open(Filename:="essai.xls")
With oXls
    For i = 1 To .Worksheets.Count
     If .Worksheets(i).Range("A1") = "toto" Then .Worksheets(i).Rows(1).Delete Shift:=xlUp
    Next i
    .Close
    Set oXls = Nothing
End With
End Sub

et bravo skoobi 🙂
 
Re : Ouvrir et supprimer des lignes d'un fichier en VBA

Hello,

J'ai testé, ça marche nickel. Par contre, j'aurai une autre question, peut-être la dernière. Dans cette macro, j'essaye de formatter les données de quelques colonnes en type texte, et de copier/coller toutes les données en collage spécial --> valeur.

Pour cela,il me faut sélectionner certaines cellules.

Code:
For i = 1 To .Worksheets.Count
        .Worksheets(i).Columns("A:A").Select
Selection.TextToColumns DataType:=xlDelimited, _
       TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
       Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
        :=Array(1, 2), TrailingMinusNumbers:=True
     If .Worksheets(i).Range("A1") = "toto" Then .Worksheets(i).Rows(1).Delete Shift:=xlUp
    Next i

Et visiblement, il n'aime pas quand je sélectionne la colonne A de cette façon. Une idée peut-être? J'ai le même souci pour sélectionenr l'ensemble des cellules (via un cells.select)

Merci bcp
 
Re : Ouvrir et supprimer des lignes d'un fichier en VBA

Re

Salut Tototiti

A tester (sans garantie !):

Code:
For i = 1 To .Worksheets.Count
        .Worksheets(i).Columns("A:A") Destination:=Range("A1"),TextToColumns DataType:=xlDelimited, _
       TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
       Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
        :=Array(1, 2), TrailingMinusNumbers:=True
     If .Worksheets(i).Range("A1") = "toto" Then .Worksheets(i).Rows(1).Delete Shift:=xlUp
    Next i
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
480
Réponses
8
Affichages
1 K
Réponses
2
Affichages
1 K
Retour