XL 2016 Insertion de colonnes sur plusieurs feuilles en Vba

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 !

halecs93

XLDnaute Impliqué
Bonjour à tout le monde,

J'ai écrit (très modestement) ce code

Sub AJOUT_COLONNE()
For i = 1 To Range("A1")
Sheets(Array("Feuil1", "Feuil2")).Select
Columns("F:F").Insert Shift:=xlDown
Sheets("Feuil1").Select
Next i
End Sub

Il a pour but d'insérer un certains nombres (défini en A1) de colonnes (arbitrairement à partir de F:F). Je sélectionne les deux feuilles, toujours en vba, mais l'ajout des colonnes ne se fait que sur la feuil1

Quelqu'un pourrait me conseiller ?

Merci
 
bonjour,

Entre autres possibles et parceque VBA ne sait pas travailler en groupe de feuilles je vous propose ceci, avec un parcours de chaque feuille du tableau.
Vous remarquerez que je qualifie pleinement les réferences aux classeurs et feuilles et déclare toutes les variables.

Les SELECT sont rarement nécessaires ou utiles

VB:
Sub AJOUT_COLONNE()
    Dim nbCols As Integer
    Dim ws As Worksheet
    '
    ' Indiquer à la macro sur quel classeur elle travaille
    With ThisWorkbook
        'Récupérer le nombre de colonnes à insérer
        nbCols = .Sheets("Feuil1").Range("A1")
        ' Parcourir les feuilles du tableau
        For Each ws In .Sheets(Array("Feuil1", "Feuil2"))
            ' insérer NbCols à partir de F
            ws.Columns("F:F").Resize(, nbCols).Insert xlShiftToRight
        Next
    End With
End Sub

cordialement
 
bonjour,

Entre autres possibles et parceque VBA ne sait pas travailler en groupe de feuilles je vous propose ceci, avec un parcours de chaque feuille du tableau.
Vous remarquerez que je qualifie pleinement les réferences aux classeurs et feuilles et déclare toutes les variables.

Les SELECT sont rarement nécessaires ou utiles

VB:
Sub AJOUT_COLONNE()
    Dim nbCols As Integer
    Dim ws As Worksheet
    '
    ' Indiquer à la macro sur quel classeur elle travaille
    With ThisWorkbook
        'Récupérer le nombre de colonnes à insérer
        nbCols = .Sheets("Feuil1").Range("A1")
        ' Parcourir les feuilles du tableau
        For Each ws In .Sheets(Array("Feuil1", "Feuil2"))
            ' insérer NbCols à partir de F
            ws.Columns("F:F").Resize(, nbCols).Insert xlShiftToRight
        Next
    End With
End Sub

cordialement
Merci.... je vais tenter de décrypter tout ceci 😉
 
- 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

Réponses
3
Affichages
518
Réponses
5
Affichages
379
Réponses
13
Affichages
2 K
Retour