Bonjour à tous;

Je travaille sur une base de données qui nécessite beacoup de traitement. Ce que j'aimerais faire, c'est dans un premier temps, de remplacer dans les colonnes (AO, AP, AQ) les points par des virgules. Ensuite, j'aimerais supprimer toutes les lignes de la table pour lesquelles dans la colonne (AQ) il y a des valeurs inferieur à 50000. Ensuite j'aimerais ajouter ( insérer) deux colonnes à partir de la colonne (AQ) sachant qu'il y a plein de colonnes aprés.
Dans la premiere j'aimerais que ça m'affiche la somme des cellules (AP+AO). et dans la deuxiéme colonne j'aimerais introduire la formule suivante :=SI(ET((AR2=AR1);OU((X2="SWAP");(X2="EXOTIC")));"";AR2).

Je vous remercie par avance pour votre aide.

j'ai un code ici si il y a moyen de l'améliorer :



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
Sub Macro1()
 
'Déclaration des variables
Dim oRng As Range
Dim i, j, t As Integer
 
Application.ScreenUpdating = False
Columns("AO:AQ").Select
    Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
 
 
'Avec "échantillon"
With Worksheets("EXTRACT")
 
    Set oRng = .Range("AQ1")
 
    'On boucle de i = dernière ligne non vide de la colonne 43 à 1 (décroissant)
    For i = .Cells(.Cells.Rows.Count, 43).End(xlUp).Row - 1 To 1 Step -1
            'Si cette valeur  est < à 50000
            If oRng.Offset(i, 0) < 50000 Then
                'On supprime la ligne
                oRng.Offset(i, 0).EntireRow.Delete
            End If
    Next i
    End With
 
    Columns("AR:AR").Select
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("AR1").Select
    ActiveCell.FormulaR1C1 = "PNL1"
    Range("AS1").Select
    ActiveCell.FormulaR1C1 = "PNL2"
    Range("AR2").Select
    ActiveCell.FormulaR1C1 = "=RC[-2]+RC[-3]"
    Range("AR2").Select
    Selection.FillDown
 
    Range("AS2").Select
 
    ActiveCell.FormulaR1C1 = _
        "=IF(AND((RC[-1]=R[-1]C[-1]),OR((RC[-21]=""SWAP""),(RC[-21]=""EXOTIC""))),"""",RC[-1])"
 
    Range("AS2").Select
    Selection.FillDown
    Application.ScreenUpdating = True
 
End Sub
Aussi sur la partie de la supression des lignes, ça dure trop longtenmps, vous aurez une autre idée; le but et de travailler sur les lignes qui ont dans la colonne AQ une valeur supérieure a 50000.


Cordialement,
Freudsw