Descendre des formules automatiquement

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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.
 
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
 
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
 
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).
 
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
 
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?
 
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:
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...
 
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
 
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.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Bloccage Excel
Réponses
1
Affichages
381
W
Réponses
2
Affichages
197
  • Question Question
XL 2021 Macro
Réponses
6
Affichages
248
Retour