avoir 1 formule pour la colonne

J

jmt0

Guest
Salut,

Je cherche a avoir une meme formule sur toute une colonne, sauf sur les deux premieres lignes. Il s'agit d'une formule simple style " =$E4*$C4 " .

En fait, je voudrais ne pas etre dérangé par l'utilisateur si la hauteur du tableau n'est pas asse grande.

Merci d'avance pour les solutions qui seront proposé

"Ps: je sais qu'un autre post presque identique a été posé, mais il s'agissait de tableau croisé dynamique..... et comme je sais pas ce que c'est.
 
M

Moa

Guest
Salut Jmt0!

Je ne comprends pas bien ta question.

En fait tu voudrais des formules qui s'adapteraient au cas où la personne rajouterait des données dans le tableau et rendrait ce dernier plus grand ?

Car dans ce cas, il te suffit d'utiliser la fonction Decaler qui ferait référence à une cellule contenant un Nb.Val de ton tableau.

@ +

Moa
 
J

jmt0

Guest
Slt moa,

Merci pour ta reponse rapide.

La fonction décaler tel que tu me la décris me plait bien; Par contre il s'agit d'une fonction que je ne connais pas du tout. Tu aurais quelque info a me filler dessus s'il te plait
 
J

jmt0

Guest
RE;

en fait, la fonction décaler ne convient pas a mon probleme..

En gros , je voudrais avoir "E3=D3*C3" et idem pour toutes les lignes suivante... le probleme est que je ne connais pas la longueur que le tableau aura au final.
 
M

Moa

Guest
Dans ce cas, il suffit à la personne de simplement étirer les formules vers le bas.

Ou alors tu fais une macro qui fait un autofill des formules associée à un bouton et ton utilisateur n'aura rien à faire.

@ +

Moa
 
C

Christophe V.

Guest
Salut à tous !
Bon moi G pondu ca :

Sub AddValue()

Range("A1").Copy
Range("B1").Select
While ActiveCell.Value <> ""
ActiveCell.Offset(1, 0).Select
Wend
ActiveCell.Offset(0, -1).Select
ActiveCell.PasteSpecial

End Sub

En nommant la macro Auto_open() au lieu AddValue() la macro devrait au démarrage copier la formule en A1 et la copier dans la dernière ligne vide.

C pas très élégant mais ca marche. Si quelquun a mieu je suis preneur.
Tiens moi au courant.

@+
 
J

jmt0

Guest
Salut christophe,

J'ai essaye ta methode, elle marche mais si un jour la longueur du tableau diminue, c pas royal.

Je l'ai modifier de maniere a faire ca :

Private Sub CommandButton1_Click()
Range("E4:AB4").Copy
Range("E4").Select
For i = 1 To Range("C3") ''Avec le nombre de ligne du tableau dans C3
ActiveCell.Offset(1, 0).Select
ActiveCell.PasteSpecial
Next i
End Sub

(pour l'instant c sur un bouton pour facilité les test)

Mais le probleme, c que je pense que pour un tableau avec beaucoup de ligne ca peut etre long. Donc c toujours pas trés propre.

La solution serais peut etre de reussir a copier la(ou les formules) et apres de faire un range("E4","E'valeur de C3") puis de faire le coller. Le probleme, c que ca je sais pas faire, et que je trouve pas dans l'aide

Merci quand meme pour l'aide précieuse que tu m'as apporté
 
M

Moa

Guest
Re Jmt0 !

Regarde une macro un peu plus rapide.Il te faudra l'adapter ensuite à ton cas :

Dim Cellule As Range
Dim NbreGrille As Long
Dim TestCol As Long
Dim TestLig As Long

For Each Cellule In Selection

TestCol = Cellule.Column
TestLig = Cellule.Row
NbreGrille = Range("B14")+15

Cellule.AutoFill Destination:= Range(Cells(TestLig, TestCol), Cells(NbreGrille, TestCol))

Next Cellule


En B14, j'ai la formule =Nb.val qui me donne le nombre de ligne de mon tableau en temps réel.

le +15, c'est parceque mon tableau commence à la 16è ligne.

En fait, cette macro recopie les formules des cellules au préalable sélectionnées, ainsi , tu peux ne recopier que les formules au choix.

Si tu n'avais qu'une seule colonne à recopier, tu pourrais simplifier la macro comme suit :


Dim NbreGrille As Long
Dim TestCol As Long
Dim TestLig As Long

TestCol = ActiveCell.Column
TestLig = ActiveCell.Row

ActiveCell.Select
NbreGrille = Range("B14")+15

Cellule.AutoFill Destination:= Range(Cells(TestLig, TestCol), Cells(NbreGrille, TestCol))

@ +

Moa
 

Discussions similaires

Statistiques des forums

Discussions
313 101
Messages
2 095 286
Membres
106 243
dernier inscrit
Zamot