Salut à tous,



Comme ma question intitulé « Sélection automatique cellule après tri » n'a pas connu de succès, j'ai finalement essayé de faire d'une autre façon, un peu plus rustique mais l'essentiel est que ça fonctionne

Dans un classeur excel, et dans la Feuil3, je rentre toutes mes données.

Je fais ensuite un filtre automatique selon un critère et je copie la sélection dans une autre feuille (feuil2).

Dans cette feuil2, j'aimerais que, dans la première colonne vide à droite de ces données copiées, qu'une formule se mette de la première à la dernière cellule (la dernière cellule variant selon le filtre et doit correspondre au même nombre de lignes)

J'arrive seulement à renvoyer la formule dans la première cellule.

J'espère ne pas être trop confus.

Voilà un bout de mon code sur lequel j'ai un problème :


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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
 Case Is = "CROISSANCE ECONOMIQUE"
 
Liste1.Hide
 
Selection.AutoFilter Field:=23, Criteria1:="CROISSANCE ECONOMIQUE"
 
Columns("A:AH").Select
 
Selection.Copy
 
Sheets("Feuil2").Select
 
Range("A1").Select
 
ActiveSheet.Paste
 
DerniereLigne = ActiveCell.CurrentRegion.End(xlDown).Row
 
Set tabl = Range(Worksheets("Feuil2").Cells(2, 36), Worksheets("Feuil2").Cells(DerniereLigne, 36))
 
tabl.Select
 
 
 
For Each cell In tabl
 
ActiveCell.FormulaR1C1 = _
 
        "=IF(ISERROR(VLOOKUP(RC[-32],'Feuil1'!R2C1:R26C2,2,FALSE)=TRUE),""Non trouvé"",(VLOOKUP(RC[-32], 'Feuil1'!R2C1:R26C2,2,FALSE)-RC[-24]))"
 
    If IsNumeric(cell.Value) = True Then
 
        If Abs(cell.Value) > a Then
 
        cell.Interior.ColorIndex = 3
 
        titi = False
 
        Else
 
        cell.Interior.ColorIndex = 0
 
        End If
 
    Else
 
    cell.Interior.ColorIndex = 3
 
    titi2 = False
 
    End If
 
Next cell
 
 
 
If titi = True And titi2 = False Then
 
MsgBox ("blabla1")
 
End If
 
 
 
If titi = False And titi2 = True Then
 
MsgBox ("blabla2")
 
End If
 
 
 
If titi = True And titi2 = True Then
 
MsgBox ("blabla3")
 
End If
 
 
 
If titi = False And titi2 = False Then
 
MsgBox ("blabla4")
 
End If

Merci pour votre aide.
Michel