Bonjour à tous !

Je suis actuellement dans une impasse!

Je souhaiterai créer une macro qui me semble bien compliquée :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
Sub compare_sup()
Dim v As Variant
Dim var1 As String
Dim var2 As String
With Worksheets("Parametre")
var1 = .Cells(19, 1).Value
var2 = .Cells(19, 3).Value
End With
Sheets.Add.Name = "test"
v = Application.Run("BERT.Call", "compare_sup", var1, var2)
ActiveSheet.Range("A1:K130000").Value = v
End Sub
J'ai plusieurs macro de ce genre en fonction d'une règle appliquée (Bert.Call fait appel à une fonction faite sous pour me dire si par exemple pour une même ligne une variable1 est plus grande qu'une variable 2, cela retourne 1 si oui sinon 0)

Ensuite :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
Sub test()
 If [B19] = "règle1" Then compare_sup
 If [B19] = "règle2" Then compare_inf
 If [B19] = "règle3" Then compare_egal
 If [B19] = "règle4" Then compare_sup_egal
 If [B19] = "règle5" Then compare_inf_egal
 End Sub
Cela fait appel à ma macro précédentes.

Pièce jointe 388471

J'ai une macro reliée lié au bouton ajouter qui permet de copier coller la ligne 19 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
Sub ajouter()
Dim li As Integer
li = ActiveCell.Row + 1
With Worksheets("Parametre")
    'Range("19").EntireRow.Copy
    Range("A19:E19").Copy
    ActiveCell.Offset(1, 0).PasteSpecial _
    Operation:=xlPasteSpecialOperationAdd
    Cells(li, 1).Select
End With
End Sub
Je souhaiterai créer une macro qui me permettent de lancer en même temps les différentes cas
c'est à dire que par exemple s'il l'utilisateur à utiliser deux fois sur ajouter il aura défini 3 règles

If ligne 19+1 n'est pas vide alors je lance compare_sup mais je dois changer la variable de var1 et var2 qui font appel à la ligne 19!

Je veux faire cela autant que fois que j'ai deux règles !

Je souhaiterai donc créer les résultats pour chaque macro sur des feuilles temporaires que je supprimerai par la suite
Sheets.Add.Name = "test_1"
Sheets.Add.Name = "test_2"
Sheets.Add.Name = "test_3"

merci!