Microsoft 365 Macro VBA supprimer une colonne

  • Initiateur de la discussion Initiateur de la discussion marie3107
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

marie3107

XLDnaute Nouveau
Bonjour,

J'ai créé une macro me permettant de copier/coller plusieurs feuilles (qui se nomment "RAPPORT DE COMPETENCE", "COLLECTIF" et "REPONSES") d'un fichier dans un autre fichier Excel :

Sub CopieFeuilles_INDIV()

Dim tablo, F As Object, n%, chemin$, test As Boolean, Fichier$, FileFormatNum
Dim NomClasseur As String
Dim MaMessagerie As Object
Dim MonMessage As Object
Dim NomFichier As String

ActiveSheet.Unprotect

Continuer = MsgBox("ATTENTION : Vous êtes sur le point de faire une copie du rapport de compétences. Souhaitez vous continuer ?", vbYesNo)

If Continuer = vbYes Then

tablo = Array("RAPPORT DE COMPETENCES", "COLLECTIF", "REPONSES") 'noms des feuilles à copier

Set F = ThisWorkbook.Sheets(tablo)
With Application
n = .SheetsInNewWorkbook
.SheetsInNewWorkbook = F.Count
Workbooks.Add 'nouveau document
.SheetsInNewWorkbook = n
End With
With ActiveWorkbook
For n = 1 To F.Count
With .Sheets(n)
F(n).Cells.Copy .Cells
.UsedRange = .UsedRange.Value
.Name = F(n).Name
Sheets("RAPPORT DE COMPETENCES").Columns("J:N").Select
Selection.Delete Shift:=xlToLeft
End With
Next

.Sheets(tablo).Select
ActiveWindow.DisplayGridlines = False 'le quadrillage n'est pas affiché
Application.DisplayFormulaBar = True 'Masque la barre de formule
Application.DisplayStatusBar = False
ActiveWindow.DisplayHeadings = False 'Masque les en-têtes


Sheets("RAPPORT DE COMPETENCES").Range("H2").Select

Application.Dialogs(xlDialogSaveAs).Show ("RAPPORT DE COMPETENCE - " & Sheets("RAPPORT DE COMPETENCES").Range("D6") & ".xlsx")
Sheets("RAPPORT DE COMPETENCES").Select
ActiveWorkbook.Protect
ActiveWorkbook.Close

End With
End If

End Sub

La macro marche très bien.
Or, j'arrive à supprimer les colonnes J à N de la feuille "RAPPORT de COMPETENCE" mais pas de celles "COLLECTIFS" ni "REPONSES".

Pourriez-vous m'éclairer SVP ?
 
Bonjour arie,
Si les colonnes J:N sont à supprimer sur toutes les feuilles, essayez de remplacer :
VB:
Sheets("RAPPORT DE COMPETENCES").Columns("J:N").Select
par
VB:
.Columns("J:N").Select
Il utilisera par défaut la feuille nommée par Sheets(n).
 
Testez avec :
Code:
Set F = ThisWorkbook.Sheets(tablo)
With ActiveWorkbook
For n = 1 To F.Count
    With .Sheets(n)
        F(n).Cells.Copy .Cells
        .UsedRange = .UsedRange.Value
        .Name = F(n).Name
        With Sheets(F(n).Name)
            .Select
            .Columns("J:N").Delete Shift:=xlToLeft
        End With
    End With
Next
End With
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
76
Réponses
7
Affichages
97
Réponses
4
Affichages
360
Réponses
3
Affichages
534
Réponses
2
Affichages
422
Retour