Bonjour,
je voudrais créer un bouton qui va insérer une ligne au dessus d'une certaine cellule recherché (où il y a écrit revente matériel) dans la macro...jusque là ca va!!!!
je voudrais ensuite incrémenter ce qu'il y a dans la cellule A31 jusqu'a la cellule situé sur la ligne créé (juste avant revente matériel)
Problème: il faudrait pouvoir à chaque fois qu l'on appuit sur le bouton insérer la ligne (no problem!!) mais également éffectué l'incrémentation jusque la cellule de la ligne créé (big problem)
il pourra y avoir donc plusieurs lignes créées et à chaque fois il faudrait incrémenter jusqu'à cette ligne
Voila la macro que j'ai fait:
Comme vous pouvez le voir en bleu j'ai essayé de nommer la cellule de la ligne créé pour incrémenter jusqu'à cette cellule créé (ensuite je supprime ce nom pour le faire plusieurs fois). Je n'ai pas réussi à ce que le nom s'inscrive dans la nouvelle cellule (il faudrait pouvoir changer le "32"de la formule) et je me demande s'il n'existe pas un autre moyen.
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 revente = " Revente matériel remplacé" Dim NumLg On Error Resume Next With ActiveSheet 'désactivation de la protection .Protect vbNullString, True, True, True, True 'de la feuille synthèse .Range("A1").Copy .Range("A1") .Unprotect vbNullString End With Cells.Find(What:=(revente), After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder _ :=xlByRows, SearchDirection:=xlNext, MatchCase:=False).Activate With Application.ActiveCell NumLg = .Row End With ActiveCell.EntireRow.Select Selection.Insert Shift:=xlDown Cells.Find(What:=(revente), After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder _ :=xlByRows, SearchDirection:=xlNext, MatchCase:=False).Activate ActiveCell.Offset(-1, 0).Range("A1").Select ActiveWorkbook.Names.Add Name:="lot_fin", RefersToR1C1:= _ "=R32C1" Range("A31").Select Selection.AutoFill Destination:=Range("A31:lot_fin"), Type:=xlFillDefault Range("A31:lot_fin").Select ActiveWorkbook.Names("lot_fin").Delete
Voila j'espère que c'est assez clair (j'en doute un peu...)
Merci
Partager