Bonjour à tous !
Je suis actuellement dans une impasse!
Je souhaiterai créer une macro qui me semble bien compliquée :
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)
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
Ensuite :
Cela fait appel à ma macro précédentes.
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
Pièce jointe 388471
J'ai une macro reliée lié au bouton ajouter qui permet de copier coller la ligne 19 :
Je souhaiterai créer une macro qui me permettent de lancer en même temps les différentes cas
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
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!
Partager