Excel macro vba

Bonjour à tous!

Je viens vous demander de l'aide concernant un petit prog en macro vba, je souhaite créer une macro qui sera utilisable pour plusieurs fichiers excel autant qu'on veut à partir d'une seule macro.

Le but du programme est de supprimer automatiquement toutes les colonnes qui ne me servent pas. En résumé, une macro (un seul prog en vba) pour plusieurs fichiers.

Je vous montre mon petit prog:

sub test ( )

Workbook. Activate
Range ("G:G, I:Z, AA:AA, AU:BK").delete

end sub

Je vous remercie d'avance de votre infatiguable collaboration

4 réponses

  1. Bonjour mes fréres
    je cherche une formation sur les macro excel..qui peut m aider svp par un fichier ou un cours ?? j ai des notions de base sur l VB..merci d avance
    1. je souhaite copier le contenu des information d une feuille demarrant en case b8 et se terminant en case n200 dun fichier xls vers un autre fichier en VBA.
      je nai aucne notion du VBA.

      puis trier avec comme base la colonne B et reorganiser toutes les donnees recues
      qui peut m aider sur ce simple programme
      1. Si la(les) colonne(s) sont fixes:
        Sub supp_col_fixe()
            Dim CHEMIN As String
            Dim FICHIER As String
            Dim COMPIL As String
            Dim NBCARACT As Integer
            Dim LONGUEUR As Integer
            Application.ScreenUpdating = True
            COMPIL = ActiveWorkbook.Name
            NBCARACT = Len(COMPIL)
            CHEMIN = Left(ActiveWorkbook.FullName, Len(ActiveWorkbook.FullName) - NBCARACT)
            ChDir CHEMIN
            FICHIER = Dir(CHEMIN & "*.*")
            Do While FICHIER <> ""
                If FICHIER <> "." And FICHIER <> ".." And FICHIER <> COMPIL Then
                    Workbooks.Open Filename:=CHEMIN & FICHIER
                    nj = (WorksheetFunction.CountA(Columns("a:a")))
                    
                    If nj = 0 Then
                        Range("A:A").Delete
                    End If
                End If
                FICHIER = Dir
            Loop
        End Sub


        si les colonnes sont parametrables (lister les colonnes dans la colonnes G du fichier modele à partir de la ligne 2):
        Sub supp_liste_col_G()
            Dim CHEMIN As String
            Dim FICHIER As String
            Dim COMPIL As String
            Dim NBCARACT As Integer
            Dim LONGUEUR As Integer
            Dim COLONNE As String
            
            Application.ScreenUpdating = True
            nb = (WorksheetFunction.CountA(Columns("G:G")))
            For i = 2 To nb
                If Range("G" & i).Value <> "" Then
                       COLONNE = Range("G" & i).Value & ":" & Range("G" & i).Value
                        COMPIL = ActiveWorkbook.Name
                        NBCARACT = Len(COMPIL)
                        CHEMIN = Left(ActiveWorkbook.FullName, Len(ActiveWorkbook.FullName) - NBCARACT)
                        ChDir CHEMIN
                        FICHIER = Dir(CHEMIN & "*.xls")
                        Do While FICHIER <> ""
                            If FICHIER <> "." And FICHIER <> ".." And FICHIER <> COMPIL Then
                                Workbooks.Open Filename:=CHEMIN & FICHIER
                                nj = (WorksheetFunction.CountA(Columns(COLONNE)))
                                
                                If nj = 0 Then
                                    Range(COLONNE).Delete
                                End If
                                
                                ActiveWorkbook.Close SaveChanges:=yes
                            End If
                            FICHIER = Dir
                        Loop
                End If
            Next
        End Sub