Exportation conditionnelle

Bonjour à tous,

j'ai un code qui permet d'exporter tout les onglets du classeur sauf la feuille RECAP,

je cherche à rectifier le code pour vider pendant l'exportation toutes les donnes qui sont entre les colonne B et M, et ne garder que les données du mois concerné qui correspond à K1 de la feuille RECAP.

Exemple:

1-pour la feuille DT le code exportera toute les données sauf les données des colonnes E & G en gardant celles de J puisque K1 de la feuille recap correspond au même mois de la colonne J

2-pour la feuille DP le code exportera toute les données sauf les données des colonnes H & L en gardant celles de J puisque K1 de la feuille recap correspond au même mois de la colonne J

Merci d'avance

12fg.xlsm (53.79 Ko)

Slt an@s,

tu veux deux macros différentes?

je cherche à rectifier le code pour vider pendant l'exportation toutes les donnes qui sont entre les colonne B et M, et ne garder que les données du mois concerné qui correspond à K1 de la feuille RECAP.

Exemple:

1-pour la feuille DT le code exportera toute les données sauf les données des colonnes E & G en gardant celles de J puisque K1 de la feuille recap correspond au même mois de la colonne J

Ce code réalise la première, à tester

Sub Exporter()
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    xChemin = ThisWorkbook.Path
    mois = Format(Worksheets("RECAP").Cells(1, 11).Value, "MMMM") ' il faut faire attention au Format
    For Each xOnglet In ActiveWorkbook.Sheets
        If xOnglet.Name <> "RECAP" Then
            Sheets(xOnglet.Name).Copy
            ActiveWorkbook.SaveAs Filename:=xChemin & "\" & xOnglet.Name & ".xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
                ActiveWindow.Close
                With Worksheets(xOnglet.Name)
                dl = Cells(Rows.Count, 1).End(xlUp).Rows.Row
                    For c = 2 To 13
                        If Cells(2, c).Value <> mois Then
                        Range(.Cells(3, c), .Cells(dl, c)).ClearContents
                        End If
                    Next c
                End With

        End If
    Next xOnglet
    Application.ScreenUpdating = True
   'MsgBox "TERMINE", vbInformation, "TRANSFERT"
End Sub

Bonjour m3ellem1, le forum

merci pour votre réponse mais votre code après l'exportation garde toujours les données entre les colonnes B & M

Re,

Sub Exporter()
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    xChemin = ThisWorkbook.Path
    mois = Format(Worksheets("RECAP").Cells(1, 11).Value, "MMMM") ' il faut faire attention au Format
    For Each xOnglet In ActiveWorkbook.Sheets
        If xOnglet.Name <> "RECAP" Then
            Sheets(xOnglet.Name).Copy
            ActiveWorkbook.SaveAs Filename:=xChemin & "\" & xOnglet.Name & ".xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False

                With Worksheets(xOnglet.Name)
                dl = Cells(Rows.Count, 1).End(xlUp).Rows.Row
                    For c = 2 To 13
                        If Cells(2, c).Value <> mois Then
                        .Range(.Cells(3, c), .Cells(dl, c)).ClearContents
                        End If
                    Next c
                End With

            ActiveWindow.Close SaveChanges:=True

        End If
    Next xOnglet
    Application.ScreenUpdating = True
   'MsgBox "TERMINE", vbInformation, "TRANSFERT"
End Sub
Rechercher des sujets similaires à "exportation conditionnelle"