Copier-coller conditionnel sur feuille différente
Bonjour cher forum,
À l'onglet Sélection, je fais une sélection en "E2" pour en suite générer un tirage et filtrer le résultat, et je souhaiterais récupérer uniquement la sélection du filtre à partir de "B5:H" jusqu'à la dernière cellule non vide de H, et le copier dans la feuille en "A5:G" correspondant à la condition sélectionné en "E2".
Condition : Neuf pour la feuille Valeur-Sap, Existant pour la feuille Valeur-Existant.
Pour l'heure, j'ai commencé sur une feuille test, le copier-coller fonctionne bien, mais le code sélectionne au delà de la dernière ligne de H. Disons que rendu là, je peine à aller plus loin.
Bref, merci de votre temps et votre générosité.
Tentative de code
Sub Coller()
'
'Coller-copier selon une condition dans la feuille dédiée à la condition
'Test à l'aide d'un bouton
'
'
'
'If ("E2" = "Existant") Then
Sheets("Sélection").Range("B5:H" & Range("H" & Rows.Count).End(xlUp).Row).Copy
With Sheets("test")
.Range("A5:H" & Range("H" & Rows.Count).End(xlUp).Row).PasteSpecial Paste:=xlPasteValues
.Range("A5:H" & Range("H" & Rows.Count).End(xlUp).Row).PasteSpecial Paste:=xlPasteFormats
End With
'Else
'End If
Application.CutCopyMode = False
End Sub
Bonjour Jean-Éric,
Merci pour votre proposition.
Sauf qu'il y a un petit souci avec le code. Ce dernier colle bien dans la feuille test, mais ne tient pas compte des mêmes chiffres de la colonne A (Aléatoire).
D'un autre côté, je n'ai pas besoin de coller les informations de la colonne A, je souhaiterais plutôt copier-coller de la colonne B:H dans la feuille test en A:G.
Éventuellement, j'aimerais que le copier-coller fonctionne avec le bouton Filtrer_selection et colle dans la feuille correspondante selon E2 (choisi au préalable), si je sélectionne Neuf colle dans la feuille Valeur_SAP, si je sélectionne Existant colle dans la feuille Valeur-Existant.
Merci pour votre aide.
A+
Bonjour Jean-Éric,
Que pensez-vous de ce code :
Sub Filtre()
'
' Filtre Macro
' Trie et filtre
' mise à jour :ulangzx 2019-08-08
'
Application.Goto Reference:="R5C3"
Range("C5").AutoFill Destination:=Range("C5:C" & Range("C" & Rows.Count).End(xlUp).Row), Type:=xlFillDefault
Range("C4").AutoFilter
ActiveSheet.Range("A5:C" & Range("C" & Rows.Count).End(xlUp).Row).AutoFilter Field:=3, Criteria1:="<>"
Dim ws As Worksheet, ws2 As Worksheet, ws3 As Worksheet
Dim n As Double
Dim rng As Range
Const XLMax As Double = 9.99999999999999E+307
Set ws = Worksheets("Sélection")
Set ws2 = Worksheets("Valeur-SAP")
Set ws3 = Worksheets("Valeur-Existant")
'ws2.Cells(5, 1).CurrentRegion.ClearContents
With ws
n = Application.Match(XLMax, .Columns(8), 1)
Set rng = .Cells(5, 2).Resize(n - 4, 8)
End With
If Range("E2") = "Neuf" Then
rng.Copy
ws2.Cells(5, 1).PasteSpecial xlPasteValuesAndNumberFormats
ElseIf Range("E2") = "Existant" Then
rng.Copy
ws3.Cells(5, 1).PasteSpecial xlPasteValuesAndNumberFormats
End If
Application.CutCopyMode = False
End Sub