XL 2016 Insertion de colonnes sur plusieurs feuilles en Vba

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
 

Hasco

XLDnaute Barbatruc
Repose en paix
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
 

halecs93

XLDnaute Impliqué
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 ;)
 

Discussions similaires

Statistiques des forums

Discussions
314 719
Messages
2 112 181
Membres
111 452
dernier inscrit
christine64