Bonjour bonjour !
Tout d'abord, merci pour votre participation à ce forum, sans m'être inscrit jusqu'à présent, j'ai toujours trouvé les informations que je recherchais, dans les différentes parties.
Aujourd'hui cependant, j'ai besoin de demander quelque chose de plus spécifique. peut-être que pour vous ce sera une partie de plaisir ... Je l'espère en tous cas !
Je reçoit une feuille Excel (Jusques là, tout va bien), sur laquelle, des données (beaucoup, +/- 40k lignes) quotidiennement. Je dois refaire de la mise en forme, et des modifications sur ces données.
Sur cette feuille, j'ai déjà automatisé une partie du process, via l'enregistreur de macro (je sais qu'on peut épurer, mais je verrais ça plus tard).
je me retrouve cependant avec une question que je n'arrives pas à solver.
J'ai deux colonnes de données, une avec des données que je veux harmoniser par rapport aux datas de l'autre.
Vous allez me dire : Le sujet à été abordé 100fois. Oui... certainement...
Mais j'arrive pas, en prennant les macros/ fonctions des autres topics, à l'adapter à mon fichier.
J'ai donc :
Colonne F et G.
F contient les données à modifier
G les données à filtrer pour les modifications.
Je voudrais que toute donnée de G commençant par certains critères ( Exemple : "Alpha*"; "Beta*"; "AA1*" et "AA2*")soit filtrée et que sur la case de F correspondante (à gauche donc), soit modifiée la valeur (
"AL" devient "AA"
"BE" devient "AA" aussi
"AA" en face de "AA1" devient "AA"
"AA" en face de "AA2" devient par contre "BB".
J'ai tenté quelque comme ça, mais je ne pense pas que ce soit la bonne méthode.
ça me semble très limité comme code, car il faudrait que je fasse une autre macro pour chaque "double" filtre. Sachant que j'ai une bonne 10aine de valeurs différentes à filtrer... Il doit y avoir autre chose.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Sub Filter_set() Dim LOC As String Range("G1").Select Selection.AutoFilter ActiveSheet.Range("$A$1:$J$65535").AutoFilter Field:=7, Criteria1:="=Alpha*" _ , Operator:=xlOr, Criteria2:="=Beta*" Range("F1").Select LOC = Range("F2").Value If LOC = "AL;BE" Then ActiveCell.Value = "BA" End If End Sub
Si quelqu'un pouvait m'aiguiller sur la fonction à utiliser, ou n'importe quelle astuce, je lui en serait très reconnaissant !
Par avance, merci.
PS : Cette question est une infime partie d'un projet que je commence à peine auquel je suis affecté et il est presque certain que je vais devoir demander de l'aide et des explications sur les macros dans un futur proche et ... régulièrement![]()
Partager