Bonjour à tous,
je viens encore vous embêter avec mes histoires de recherches...
J'ai tenter d'adapter comme je peux une maccro que l'on m'a aider à construire ici et de corriger au fur et à mesure des erreurs mais la je sèche...
J'ai une erreur "Bloc If sans end If"
Je pense que je vais en faire pleurer plus d'un avec mon code et j'en suis sincèrement désolé, l'idée de ce code est aussi qu'il soit très facilement adaptable pour queulqu'un qui passerait derrière moi (c'est pas gagné...):
SI vous savez m'aider je vous en serez très reconnaissant.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 Sub Tri() ' Ici on supprime les lignes où il y a des résultats de recherche Dim derlig As Long derlig = Sheets("Recherche auto").Range("A" & Rows.Count).End(xlUp).Row Sheets("Recherche auto").Range("A15:AZ" & derlig).ClearContents Dim w As Worksheet ' Ici on définit la valeur L qui permet de dire où les résultats de recherche vont être écrit ( pour L=10 on écrit à partir de la ligne 10 par exemple) Dim derlig2 As Long Dim L As Long Dim flag As Boolean L = 15 ' On définit les onglets dans lesquelles la maccro doit chercher. ATTENTION A LA FORME D'ECRITURE If Worksheets("Recherche auto").Range("AG4") = "Non Soudée" Then For Each w In ThisWorkbook.Worksheets Select Case w.Name Case "Tôles planes": flag = True Case Else: flag = False End Select Next If Worksheets("Recherche auto").Range("AG4") = "Soudée" Then For Each w In ThisWorkbook.Worksheets Select Case w.Name Case "Tôles soudées": flag = True Case Else: flag = False End Select Next If Range("AG4") = "" Then For Each w In ThisWorkbook.Worksheets Select Case w.Name Case "Tôles soudées": flag = True Case "Tôles planes": flag = True Case Else: flag = False End Select ' Là c'est pour le tri, on théorie il n'y aura que le critère w.range qui devra être changé, si quelqu'un écrit plus de 2000 lignes par exemple et que l'on souhaite chercher sur 2200 lignes: w.Range("A2:Q2200") If flag Then w.Range("A2:AE1200").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Sheets("Recherche auto").Range("A2:AE4"), CopyToRange:=Sheets("Recherche auto").Range("A" & L), Unique:=False L = Sheets("Recherche auto").Range("A" & Rows.Count).End(xlUp).Row + 1 End If Next w Sheets("Recherche auto").Select End Sub
Encore une fois désolé si c'est vraiment pas beau comme code.
Bonne journée,
Bastien
Partager