Double filtre sur feuille vba, copier valeurs affichées

Résolu/Fermé
Stephxx Messages postés 26 Date d'inscription mercredi 17 juin 2015 Statut Membre Dernière intervention 31 août 2015 - Modifié par Stephxx le 24/06/2015 à 15:46
Stephxx Messages postés 26 Date d'inscription mercredi 17 juin 2015 Statut Membre Dernière intervention 31 août 2015 - 24 juin 2015 à 17:21
Bonjour,

Après quelques heures de recherche et quelques milliers de neurones grillés je me résous à publier mes soucis de macro.

étape 1:
je souhaiterais appliquer deux filtres avec un code vba, un sur une colonne et l'autre sur une seconde colonne (ex: sur colonne "R", filtre: cellule non vide, sur colonne "AL", filtre: ="x").
soucis1: malgré de nombreuses lectures, je n'arrive pas à déterminer quoi écrire après critere1:= pour signifier que je ne veux pas afficher les lignes dont la cellule dans la colonne R est vide.
soucis2: je ne sais pas quoi entrer pour reset toutes les filtres déjà appliqué avant d'appliquer les deux filtres voulus.

étape 2:
Ensuite je souhaite copier les lignes visibles (filtrées) de 20 colonnes non toutes consécutives de cette feuille vers un nouveau classeur à créer (ex: fichier1 colonnes A/B/C/D/E/F/H/R/S/T/AA/AB/AC/AD/AE/AG/AM/BA/BS/BT vers le fichier créé 2 respectivement dans les colonnes E/F/G/H/S/T/U/V/W/X/Y/Z/AA/AB/AC/AD/AE/AF/P/Q).

étape 3:
j'ai déjà écrit des formule que je souhaiterai appliquer à tel ou telle colonne ( ex: =SI(NON(ESTNA(RECHERCHEV(E3;RF1.xlsx!Tableau1[#Tout;[Article]:[Fournisseur_lib]];8;0)));RECHERCHEV(E3;RF1.xlsx!Tableau1[#Tout;[Article]:[Fournisseur_lib]];8;0);RECHERCHEV(E3;[RF2.xlsx]Feuil1!$A$108;3;0)) dans la colonne J ). Ai je besoin de "traduire" en vba assez proche me direz vous ou puis je préciser à travers une macro "appliquer cette formule: "=SI(NON(ESTNA(... ) )".

Un grand merci à tous ceux qui pourront écrire des bouts de code pour une ou l'autre des étapes, m'aiguiller, me conseiller. Je continue mes recherches, je trouve beaucoup de choses mais j'essai de combiner des bouts de codes depuis déjà trop d'heures pour mes pti méninges fatigués.

Bonne aprem
A voir également:

1 réponse

Stephxx Messages postés 26 Date d'inscription mercredi 17 juin 2015 Statut Membre Dernière intervention 31 août 2015
24 juin 2015 à 17:21
Pour l'étape deux, avez vous plus sexy que ça ? :) avec Array peut être ?

Sub Macro1()

With Workbooks("Stock0.xlsx").Worksheets("Référentiel Sxx+Projection").Range("A1:A65000").Copy
End With
Range("E1").PasteSpecial

With Workbooks("Stock0.xlsx").Worksheets("Référentiel Sxx+Projection").Range("B1:B65000").Copy
End With
Range("F1").PasteSpecial

With Workbooks("Stock0.xlsx").Worksheets("Référentiel Sxx+Projection").Range("C1:C65000").Copy
End With
Range("G1").PasteSpecial

With Workbooks("Stock0.xlsx").Worksheets("Référentiel Sxx+Projection").Range("D1:D65000").Copy
End With
Range("H1").PasteSpecial

With Workbooks("Stock0.xlsx").Worksheets("Référentiel Sxx+Projection").Range("E1:E65000").Copy
End With
Range("S1").PasteSpecial

With Workbooks("Stock0.xlsx").Worksheets("Référentiel Sxx+Projection").Range("F1:F65000").Copy
End With
Range("T1").PasteSpecial

With Workbooks("Stock0.xlsx").Worksheets("Référentiel Sxx+Projection").Range("H1:H65000").Copy
End With
Range("U1").PasteSpecial

With Workbooks("Stock0.xlsx").Worksheets("Référentiel Sxx+Projection").Range("R1:R65000").Copy
End With
Range("V1").PasteSpecial

With Workbooks("Stock0.xlsx").Worksheets("Référentiel Sxx+Projection").Range("S1:S65000").Copy
End With
Range("W1").PasteSpecial

With Workbooks("Stock0.xlsx").Worksheets("Référentiel Sxx+Projection").Range("T1:T65000").Copy
End With
Range("X1").PasteSpecial

With Workbooks("Stock0.xlsx").Worksheets("Référentiel Sxx+Projection").Range("AA1:AA65000").Copy
End With
Range("Y1").PasteSpecial

With Workbooks("Stock0.xlsx").Worksheets("Référentiel Sxx+Projection").Range("AB1:AB65000").Copy
End With
Range("Z1").PasteSpecial

With Workbooks("Stock0.xlsx").Worksheets("Référentiel Sxx+Projection").Range("AC1:AC65000").Copy
End With
Range("AA1").PasteSpecial

With Workbooks("Stock0.xlsx").Worksheets("Référentiel Sxx+Projection").Range("AD1:AD65000").Copy
End With
Range("AB1").PasteSpecial

With Workbooks("Stock0.xlsx").Worksheets("Référentiel Sxx+Projection").Range("AE1:AE65000").Copy
End With
Range("AC1").PasteSpecial

With Workbooks("Stock0.xlsx").Worksheets("Référentiel Sxx+Projection").Range("AG1:AG65000").Copy
End With
Range("AD1").PasteSpecial

With Workbooks("Stock0.xlsx").Worksheets("Référentiel Sxx+Projection").Range("AM1:AM65000").Copy
End With
Range("AE1").PasteSpecial

With Workbooks("Stock0.xlsx").Worksheets("Référentiel Sxx+Projection").Range("BA1:BA65000").Copy
End With
Range("AF1").PasteSpecial

With Workbooks("Stock0.xlsx").Worksheets("Référentiel Sxx+Projection").Range("BS1:BS65000").Copy
End With
Range("P1").PasteSpecial

With Workbooks("Stock0.xlsx").Worksheets("Référentiel Sxx+Projection").Range("BT1:BT65000").Copy
End With
Range("Q1").PasteSpecial

End Sub


merci
0