Excel macro vba

sagrada Messages postés 66 Statut Membre -  
 TunsianO -
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. TunsianO
     
    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
  2. baborge Messages postés 93 Date d'inscription   Statut Membre Dernière intervention   33
     
    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
  3. baborge Messages postés 93 Date d'inscription   Statut Membre Dernière intervention   33
     
    petite precision:
    les colonnes sont elles fixes?
    0
  4. eli
     
    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