Voila je resume mon problème.
Nous avons, par exemple, en A1=X, en A2=Y, en A11=A1 et en A12=A2.
Mais la, j insert une ligne entre 1 et 2. Donc nous avons A1=X, A2=,A3=Y, A11=A1 et A12=A3. Or je veux que la cellule A12 garde sa formule initial soit A12=A2. Comment on peut faire sa ?
Je ne vois guère de solution si ce n'est, après l'insertion, de recopier la formule qui se trouve sur la ligne du dessus soit en la tirant avec la poignée de recopie soit en faisant un double-clic dessus.
Même l'insertion de cellules (que je viens d'essayer) fait suivre la formule et que ce soit en coordonnées relatives ou absolues.
Je ne vois guère de solution si ce n'est, après l'insertion, de recopier la formule qui se trouve sur la ligne du dessus soit en la tirant avec la poignée de recopie soit en faisant un double-clic dessus.
Même l'insertion de cellules (que je viens d'essayer) fait suivre la formule et que ce soit en coordonnées relatives ou absolues.
Protoype, voici un prototype.
Arf ! Elle était facile, j'admets.
Si je lis bien ta demande du début, voici le code correspondant.
Si j'ai bien compris, lorsque tu inserts une ligne entre ligne 1 et ligne 2 tu souhaites que les formules en A11 et A12 restent en A11 et A12. Avec A12 toujours égale à A2.
Car si tu inserts une ligne, ces deux formules sont automatiquement décalées aussi. On est bien d'accord ?
Donc attention si tu veux insérer plus de ligne.
Le code ci-après ne fonctionne que pour l'insertion entre les lignes 1 et 2.
Si tu cherches autre chose, dis nous le.
Code:
Sub InsertLigne()
Rows('2:2').Select
Selection.Insert Shift:=xlDown
Range('A12:A13').Select
Selection.Cut Destination:=Range('A11:A12')
Range('A12').Select
ActiveCell.FormulaR1C1 = '=R[-10]C'
End Sub
Ce code est à insérer dans un module.
Tu peux ensuite l'appeler par un bouton que tu installeras dans ta feuille par la barre d'outils contrôle.
Double-clique sur le nouveau bouton.
Une page VBE va s'ouvrir avec un code du style : Sub CommandButton1_Quandclick()
En dessous, tu tapes InsertLigne