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
    3
    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
      2
      1. petite precision:
        les colonnes sont elles fixes?
        0
        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
          0