Re : Insertion conditionnelle de colonnes
Oui effectivement Job75, je viens de me rendre compte que je n'utilise pas du tout le bon objet.
En fait ce qu'il faudrait que j'arrive a faire c'est de rajouter la colonne à une sélection l'idée est d'utiliser plusieurs fois la procédure Ajout dans la macro principale pour sélectionner plusieurs colonnes distinctes et ensuite copier la sélection pour la coller dans une autre feuille. Je sais pas si ça vous parait plus clair. Voici la macro principale, elle n'est pas encore complète...
Sub Ajout(donnée As String)
Dim i As Integer
Dim u As Range, col As Range
Set u = ActiveWorkbook.Sheets(1).Range("A1:Z1").Find(what:=donnée, lookat:=xlPart)
If Not u Is Nothing Then i = u.Column
col = Column(i)
SEL.Add col
Else
SEL.Add emptycolumn
End Sub
Sub Tableau()
Dim A As String, B As String, C As String, D As String, E As String, F As String, G As String, H As String
Dim ActB As Boolean, ActC As Boolean, ActD As Boolean, ActE As Boolean, ActF As Boolean, ActG As Boolean, ActH As Boolean
Dim i As Integer, x As Integer
Dim Chemin As Variant, fs As Variant
Dim nomfichier As String, Fichierlu As String, Fenêtrelu As String
Chemin = ThisWorkbook.Path & "\Données\"
nomfichier = ActiveWorkbook.Name
A = "ISIN"
B = "LIB"
C = "%"
D = "DEV"
E = "PAYS"
F = "ZONE"
G = "SecteurN1"
H = "SecteurN2"
Set fs = Application.FileSearch
With fs
.LookIn = Chemin
If .Execute(SortBy:=msoSortByFileName, SortOrder:=msoSortOrderAscending) > 0 Then
For i = 1 To .FoundFiles.Count
Fichierlu = .FoundFiles(i)
'fenêtrelue = ActiveWorkbook.Name
x = recherche(A, Fichierlu) 'Fonction qui ouvre le classeur et rend le numéro de la colonne contenant A sous forme d'entier
If x <> 0 Then
Cells(1, x).Column.Select
If ActB = True Then Ajout (B)
End If
If ActC = True Then Ajout (C)
End If
If ActD = True Then Ajout (D)
End If
If ActE = True Then Ajout (E)
End If
If ActF = True Then Ajout (F)
End If
If ActG = True Then Ajout (G)
End If
If ActH = True Then Ajout (H)
End If
Selection.Copy
Windows(nomfichier).Activate
Range("a65536").Select
Selection.End(x1Up).Select
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste 'On colle la selection à la suite du reste dans le tableau principal
Else
ActiveSheet.Range("A" & i) = "pas trouvé, dans " & Fichierlu & _
". Veuillez formater ce fichier de nouveau."
End If
Next i
End If
End With
End Sub