Bonjour,
Je sollicite vos compétences pour une solution que je n’arrive pas à trouver. Je voudrais transférer certains champs filtrés d'une feuille "Base" vers une autre "Budget".
J'utilise une userform avec 3 comboboxs pour effectuer des selections, les valeurs des combo s'inscrivent sur la feuille Budget en respectivement en B1, C1 et D1 (il y a possibilité de faire 1 choix ou 2 ou 3). Ces valeurs sont les critères des autofiltres appliqués sur la feuille Base.
Option Explicit
Sub Tx_Bord()
Dim i As Long, NBd As Long, NCr As Long, dl As Long
Dim Departement As String, Centre As String, Responsable As String
Dim ShBd As Worksheet, ShTxB As Worksheet
Dim Plage As Range, C As Range
Application.ScreenUpdating = False
Set ShBd = Worksheets("Base")
ShBd.AutoFilterMode = False
NBd = ShBd.Cells(ShBd.Rows.Count, 1).End(xlUp).Row
Set ShTxB = Worksheets("Budget")
With ShTxB
dl = .Cells(.Rows.Count, 3).End(xlUp).Row
If dl > 1 Then .Range("A2:F" & dl).Rows.Delete
Departement = .Range("B1")
Centre = .Range("C1")
Responsable = .Range("D1")
With ShBd
If Departement <> "" And Centre = "" And Responsable = "" Then
.Range("A1:N" & NBd).AutoFilter Field:=2, Criteria1:=Departement
ElseIf Departement <> "" And Centre <> "" And Responsable = "" Then
.Range("A1:N" & NBd).AutoFilter Field:=2, Criteria1:=Departement
.Range("A1:N" & NBd).AutoFilter Field:=3, Criteria1:=Centre
ElseIf Departement <> "" And Centre <> "" And Responsable <> "" Then
.Range("A1:N" & NBd).AutoFilter Field:=2, Criteria1:=Departement
.Range("A1:N" & NBd).AutoFilter Field:=3, Criteria1:=Centre
.Range("A1:N" & NBd).AutoFilter Field:=3, Criteria1:=Responsable
End If
'TRANFERT DE LA FEUILLE BASE VERS FEUILLE BUDGET
'je voudrais transférer après filtrage:
'colonne B feuille Base vers colonne B feuille Budget
'colonne C feuille Base vers colonne C feuille Budget
'colonne M feuille Base vers colonne D feuille Budget
'colonne E feuille Base vers colonne E feuille Budget
'colonne N feuille Base vers colonne F feuille Budget
.AutoFilterMode = False
End With
End With
Set ShBd = Nothing
Set ShTxB = Nothing
End Sub
Je trouve des difficultés à terminer cette macro. J'ai effectué des tests pour la partie des autofiltres, ça fonctionne bien. Je vous remercie par avance. J'aurais souhaité utiliser des zone de liste activeX, mais je ne les maitrise pas du tout et tous mes tests sont restés vain. Pour avancer j'ai opté pour l'userform que je maitrise mieux (pour lequel j'ai pu trouver pas mal de fichier et d'explication par rapport aux AcitveX).
Encore merci.