Suppression colonnes

Bonjour à tous,

Je cherche à supprimer les colonnes (à partir de la colonne 30), dont la date (qui se trouve en ligne 2) ne correspond pas à la date du jour (se trouvant en D2).

J'ai écrit ce code avec une boucle, mais rien ne se passe...

Sub file_attente()
Dim fichier_dest As Variant
Dim der_col As Long, ligne As Long, date_jour As Date 
Dim j As Long

date_jour = Sheets("File d'attente").Range("D2").Value 

'4. Ne garder que la dernière colonne et les données du jour
    For j = 30 To 150
        If fichier_dest.Cells(2, j).Value <> date_jour Then fichier_dest.Cells(2, j).EntireColumn.Delete 'supprimer les colonnes qui sont différentes de la date du jour
    Next j

Si vous avez des solutions je suis preneur !!

Merci d'avance !

Bonjour,

À première vu, il n'y aurait que la boucle de suppression de colonnes qu'il faut inverser ... de la fin en remontant vers le début ...

Un essai ...

Sub file_attente()
Dim fichier_dest As Variant
Dim der_col As Long, ligne As Long, date_jour As Date 
Dim j As Long

date_jour = Sheets("File d'attente").Range("D2").Value 

'4. Ne garder que la dernière colonne et les données du jour
    For j = 150 to 30 step -1      '' modification de cette ligne
        If fichier_dest.Cells(2, j).Value <> date_jour Then fichier_dest.Cells(2, j).EntireColumn.Delete 'supprimer les colonnes qui sont différentes de la date du jour
    Next j

ric

Bonjour,

Sinon ... en n'oubliant pas de conserver la dernière colonne ...

Sub file_attente()
    Dim fichier_dest As Variant
    Dim der_col As Long, ligne As Long, date_jour As Date
    Dim j As Long

    date_jour = Sheets("File d'attente").Range("D2").Value

    '4. Ne garder que la dernière colonne et les données du jour
    With fichier_dest

        der_col = .Cells(2, .Columns.Count).End(xlToLeft).Column

        For j = der_col - 1 To 30 Step -1    '' modification de cette ligne
            If CDate(fichier_dest).Cells(2, j).Value) <> date_jour Then
                .Range(.Cells(2, j), .Cells(2, j)).EntireColumn.Delete 'supprimer les colonnes qui sont différentes de la date du jour
            End If
        Next j

    End With
End Sub

ric

Bonjour Ric,

Merci pour les réponses ! Sur la première solution, la macro ne me supprime aucune colonne...

J'ai essayé la deuxième solution, et j'ai cette erreur qui apparait (je ne la connaissais pas?)

image

Merci de ton aide ! :)

Re,

Avec un peu de modifications dans mon code notamment sur le numéro des colonnes, la première solution fonctionne parfaitement !!

Merci pour ton aide

Rechercher des sujets similaires à "suppression colonnes"