Bonjour à toutes et à tous,
J'ai créé une macro qui me permet d'inserer une ligne au dessus de la case contenant la valeur m1.
Pour cela on recherche cette case et on met son adresse dans la variable r.
Le problème se situe à la fin car je ne souhaite pas inserer ma ligne au niveau de r mais deux lignes au-dessus.
Je crois avoir compris que pour cela il faut que je redefinisse une autre variable reprenant l'adresse de r et en décrémentant de 2 la valeur de sa ligne mais comment l'écrire ?
De même je ne souhaite pas modifier la case à l'adresse de r mais celle située deux colonnes à droite de celle-ci (même ligne mais en C donc).
Etant débutant en VBA ( le code ci-dessous est d'ailleurs inspiré de celui trouvé sur un forum) je sollicite votre aide pour ce problème.
Cordialement .
Sub ajout_ligne_OB()
Dim pl As Range 'déclare la variable pl (Plage de recherche)
Dim r As Range 'déclare la variable r (Recherche)
Dim pa As String 'déclare la variable pa (Première Adresse)
Set pl = Range("A20:A200")
Set r = pl.Find("m1", , xlValues, xlPart) 'définit la variable r
If Not r Is Nothing Then 'condition : si il existe au moins une occurrence de r dans pl
pa = r.Address 'définit la variable pa
Do 'exécute
Set r = pl.FindNext(r) 'redéfinit la variable r (prochaine occurrence trouvée)
Loop While Not r Is Nothing And r.Address <> pa 'boucle tant qu'il existe des occurrences de r ailleurs qu'en pa
End If 'fin de la condition
Range(r.Address(0, 0)).Select ' ->Je voudrais mettre deux lignes au dessus de l'adresse de r et non à r
Selection.EntireRow.Insert
Range(r.Address(0, 0)).Select ' -> Je voudrais mettre deux colonne à droite (en C) de l'adresse de r et non à r
ActiveCell.FormulaR1C1 = "OB"