P'tit Probleme

  • Initiateur de la discussion Prototype
  • Date de début
P

Prototype

Guest
Bonjour,

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 ?

Merci
 

Abel

XLDnaute Accro
Bonjour Prototype,

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.

Donc, hormis une macro ...

Ceci dit, je loin d'avoir la science infuse.

Abel.
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour Pascal, Didier, Abel, Prototype, le Forum

N'étant pas 'formuliste', j'aurai une approche 'reflex programmeur'...

As tu essayé ceci comme Formule :
Dans A12 '=OFFSET(A1,1,0)'... (en FR voir à 'Décaler')

Bon App
@+Thierry
 
P

Prototype

Guest
Abel écrit:
Bonjour Prototype,

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.

Donc, hormis une macro ...

Ceci dit, je loin d'avoir la science infuse.

Abel.

Donc nouveau probleme, je ne connais rein en macro. :(
 
P

Prototyp

Guest
J ai regarde cette formule de Decale. Et sa ne va toujours pas. En effet sa marche dans le cas que j ai site mais pas si s ajoute une autre valeur.

Exemple :
A1=X
A2=Y
A3=Z


A11=A1 --> ce qui affiche X
A12=DECALER(A1;1;0) --> ce qui affiche Y
A13=DECALER(A2;1;0) --> ce qui affiche Z

Si j insert une ligne entre 1 et 2 nous avons :
A1=X
A2=
A3=Y
A4=Z


A11=A1 --> ce qui affiche X
A12=DECALER(A1;1;0) --> ce qui affiche 0
A13=DECALER(A2;1;0) --> ce qui affiche Z

Le Y est remplace par 0 et le Z est toujours Z et non Y.

Hmmmm...... pas facile :unsure:
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Re
Bien vu Thierry

Pour prototype

Il faut en A13
=DECALER(A1;2;0) et non A13=DECALER(A2;1;0)

Pour le zéro si tu n'as que du texte et jamais de valeur 0 en rajoutant un petit si du genre

pour A12
=SI(DECALER(A1;1;0)=0;'';DECALER(A1;1;0))
Pour A13
=SI(DECALER(A1;2;0)=0;'';DECALER(A1;2;0))

Bon courage
 

Abel

XLDnaute Accro
Re,

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

Abel.
 

Discussions similaires

Statistiques des forums

Discussions
313 071
Messages
2 095 034
Membres
106 160
dernier inscrit
bingmp