Descendre des formules automatiquement

stich02

XLDnaute Occasionnel
Bonjour à tous,

Je reviens une nouvelle fois vers vous afin de demander comment faire pour descendre des formules dans un tableau quand j'agrège de nouvelles donnés.

Évidemment je vous joins un fichier qui sera bien plus explicite.

Merci d'avance de votre aide.

Bonne journée.
 

Pièces jointes

  • Classeur 17-11-2014.xls
    25 KB · Affichages: 56

Annette

XLDnaute Occasionnel
Re : Descendre des formules automatiquement

Bonjour stich02, le forum,

Avec mes maigres connaissances en VBA :(, je vous propose cette solution avec formule et MFC :).

Cordialement
 

Pièces jointes

  • Classeur 17-11-2014.xlsm
    14.8 KB · Affichages: 52

stich02

XLDnaute Occasionnel
Re : Descendre des formules automatiquement

Bonjour Annette,

Merci de vous être penché sur mon problème. Effectivement dans le cas de mon exemple votre solution fonctionne parfaitement.
Toutefois j'ai simplifié à l’extrême car le vrai tableau comporte de nombreuses formules et différentes MFC en fonction des colonnes (dans la partie bleue) et là ça coince.
D’où la solution VBA ( et comme mes connaissances sont très faibles...).

Encore merci.
 

Gurgeh

XLDnaute Occasionnel
Re : Descendre des formules automatiquement

Salut stich02,

Tu peux utiliser le format tableau.

Sous Excel 2010 et suivant : tu sélectionnes une plage de cellules que tu définis comme tableau (Insertion / Tableau). Le format tableau fait que dès que tu ajoutes une donnée, ça recopie automatiquement dans les autres colonnes les formats et les formules.

Gurgeh
 

vgendron

XLDnaute Barbatruc
Re : Descendre des formules automatiquement

Bonjour,


En vba. pour recopier des formules vers le bas (je suppose que c'est que tu veux dire par "descendre les formules")
il faut utiliser la méthode autofill, et plutot qu'un long discours, l'aide VBA sera plus explicite avec meme un exemple
 

stich02

XLDnaute Occasionnel
Re : Descendre des formules automatiquement

Bonjour Gurgeh et vgendron,

J'ai oublié de le préciser mais je suis sous excel 2003.

Sinon vgendron c'est exactement ce que je voulais dire : descendre les formules. Sauf que si j'utilise l'aide VBA comme le tableau que je rajoute (partie jaune) n'a pas toujours le même nombre de lignes ça pose problème. Il faudrait que je descende mes formules du nombre de lignes exacte (ni plus ni moins).
 

vgendron

XLDnaute Barbatruc
Re : Descendre des formules automatiquement

essaie avec ce code

Code:
Sub autoremplissage()

nombreinit = Range("A1").End(xlDown).Row
nombrefinal = Range("AF" & nombreinit).End(xlDown).Row
Set SourceRange = Worksheets("Feuil1").Range("A" & nombreinit & ":AE" & nombreinit)

Set fillRange = Worksheets("Feuil1").Range("A" & nombreinit & ":AE" & nombrefinal)
SourceRange.AutoFill Destination:=fillRange

End Sub
 

stich02

XLDnaute Occasionnel
Re : Descendre des formules automatiquement

Merci vgendron ça marche impeccablement.

Toutefois et c'est de ma faute j'aurais dû le préciser, dans mon vrai tableau les colonnes A, K, O, X, Y, Z, AA, AB, AC, AD et AE ne contiennent pas de formules et sont complétées manuellement. Aussi serait-il possible que pour ces colonnes les formules ne soient pas descendues (mais simplement les formats) car sinon c'est la valeur saisie dans la cellule du dessus qui est reprise pour toute la colonne?
 

vgendron

XLDnaute Barbatruc
Re : Descendre des formules automatiquement

Il te suffit de répéter ces trois lignes, mais en adaptant les colonnes pour séparer

de A à J
Code:
Set SourceRange = Worksheets("Feuil1").Range("A" & nombreinit & ":J" & nombreinit)
Set fillRange = Worksheets("Feuil1").Range("A" & nombreinit & ":J" & nombrefinal)
SourceRange.AutoFill Destination:=fillRange

puis de L à N
Code:
Set SourceRange = Worksheets("Feuil1").Range("L" & nombreinit & ":N" & nombreinit)
Set fillRange = Worksheets("Feuil1").Range("L" & nombreinit & ":N" & nombrefinal)
SourceRange.AutoFill Destination:=fillRange

puis de P à W
Code:
Set SourceRange = Worksheets("Feuil1").Range("P" & nombreinit & ":W" & nombreinit)
Set fillRange = Worksheets("Feuil1").Range("P" & nombreinit & ":W" & nombrefinal)
SourceRange.AutoFill Destination:=fillRange

par contre, c'est bizarre ce que tu me dis. parce que dans ton fichier que tu as posté. je vois bien une formule dans TOUTES les colonnes. de A à AE..
 
Dernière édition:

stich02

XLDnaute Occasionnel
Re : Descendre des formules automatiquement

Effectivement dans le fichier que j'ai posté ces colonnes contiennent une formule mais dans le fichier dans lequel je compte utilisé ta macro il n' y en a pas. J'aurais dû être plus vigilant.

Sinon j'ai essayé de "coller ces 3 fois 3 lignes dans ta macro mais du coup je m'arrête à la colonne J. Evidemment je dois m'y prendre comme un manche d'autant que je ne comprends pas ce que tu entends par "en adaptant les colonnes pour séparer".

Sinon voilà à quoi ressemble Ta macro après avoir collé les 3 lignes :

Code:
Sub autoremplissage()

nombreinit = Range("A1").End(xlDown).Row
nombrefinal = Range("AF" & nombreinit).End(xlDown).Row

Set SourceRange = Worksheets("Feuil1").Range("B" & nombreinit & ":J" & nombreinit)

Set fillRange = Worksheets("Feuil1").Range("B" & nombreinit & ":J" & nombrefinal)
SourceRange.AutoFill Destination:=fillRange

Set SourceRange = Worksheets("Feuil1").Range("L" & nombreinit & ":N" & nombreinit)

Set fillRange = Worksheets("Feuil1").Range("L" & nombreinit & ":N" & nombrefinal)
SourceRange.AutoFill Destination:=fillRange

Set SourceRange = Worksheets("Feuil1").Range("P" & nombreinit & ":W" & nombreinit)

Set fillRange = Worksheets("Feuil1").Range("P" & nombreinit & ":W" & nombrefinal)
SourceRange.AutoFill Destination:=fillRange

End Sub

J'imagine que je suis à côté de la plaque...
 

stich02

XLDnaute Occasionnel
Re : Descendre des formules automatiquement

Je le crois pas j'ai réussi à faire ce que tu me demandes et ça marche :

Sub autoremplissage()

nombreinit = Range("A1").End(xlDown).Row
nombrefinal = Range("AF" & nombreinit).End(xlDown).Row

Set SourceRange = Worksheets("Feuil1").Range("B" & nombreinit & ":J" & nombreinit)
Set fillRange = Worksheets("Feuil1").Range("B" & nombreinit & ":J" & nombrefinal)
SourceRange.AutoFill Destination:=fillRange

nombreinit = Range("L1").End(xlDown).Row
nombrefinal = Range("AF" & nombreinit).End(xlDown).Row

Set SourceRange = Worksheets("Feuil1").Range("L" & nombreinit & ":N" & nombreinit)
Set fillRange = Worksheets("Feuil1").Range("L" & nombreinit & ":N" & nombrefinal)
SourceRange.AutoFill Destination:=fillRange

nombreinit = Range("P1").End(xlDown).Row
nombrefinal = Range("AF" & nombreinit).End(xlDown).Row


Set SourceRange = Worksheets("Feuil1").Range("P" & nombreinit & ":W" & nombreinit)
Set fillRange = Worksheets("Feuil1").Range("P" & nombreinit & ":W" & nombrefinal)
SourceRange.AutoFill Destination:=fillRange

End Sub

Merci beaucoup à tous et surtout à toi vgendron.

Bonne soirée
 

vgendron

XLDnaute Barbatruc
Re : Descendre des formules automatiquement

Hello

je ne comprend pas. la macro telle qu'écrite dans ton post #10 marche parfaitement. hors. tu dis que ca s'arrete à la colonne J..
as tu changé ton fichier par rapport au post #1 ?

Ensuite, ta macro post #11 donne également le meme résultat. sauf que tu "recalcules" à chaque fois les nombreInit et NombreFinal:
c'est inutile.. à moins que encore une fois. le fichier ait changé..

Bref. si tu as une solution qui te convient, c'est parfait.
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 305
Messages
2 087 084
Membres
103 459
dernier inscrit
Arnocal