Tirer vers le bas une formule jusqu'à une certaine cellule

Bonjour!

J'ai une colonne A avec en A3 (la première cellule de la colonne) une formule: =IF(B3<>"",COUNTA($B$3:B3),"")

Je souhaiterais copier vers le bas la formule (faire l'opération "drag down"), et ce jusqu'à la cellule A500.

Pareil pour la formule existante dans E3: =(LEN(D3)-LEN(SUBSTITUTE(UPPER(D3),"X","")))*M3 - la copier jusqu'à E500

Pareil pour la formule existante dans H3: =G3-F3 - la copier jusqu'à H500

et enfin pareil pour la formule existante dans M3: =SUMPRODUCT(MID(0&D3,LARGE(INDEX(ISNUMBER(--MID(D3,ROW(INDIRECT("1:"&LEN(D3))),1))*ROW(INDIRECT("1:"&LEN(D3))),0),ROW(INDIRECT("1:"&LEN(D3))))+1,1)*10^ROW(INDIRECT("1:"&LEN(D3)))/10)

La copier jusqu'à M500

J'ai pensé faire une macro différente pour chacune des colonnes mais je n'ai pas réussis à trouver sur internet quelque chose qui me convient.

Voila une ébauche (très mauvaise, certes)...

Merci pour votre aide!!

Dim LastRow As Long

Dim LR As Long

LR = Sheets("general").Range("A" _

& Rows.Count).End(xlUp).Row

With Sheets("general")

.Range("A3:A" & LR).FillDown

End With

Bonjour,

essaye la chose suivante:

Sub test()
Dim LR As Long

With Sheets("general")
    LR = .Range("A" & .Rows.Count).End(xlUp).Row
    .Range("a3").AutoFill Destination:=Range("A3:A" & LR), Type:=xlFillDefault
    .Range("e3").AutoFill Destination:=Range("A3:A" & LR), Type:=xlFillDefault
    .Range("h3").AutoFill Destination:=Range("A3:A" & LR), Type:=xlFillDefault
    .Range("m3").AutoFill Destination:=Range("A3:A" & LR), Type:=xlFillDefault
End With
End Sub

merci

la premiere ligne bug et s'affiche en jaune...

.Range("a3").AutoFill Destination:=Range("A3:A" & LR), Type:=xlFillDefault

Ah oui, c'est normal en fait... Boulette de ma part... Et pas la seule, mais heureusement tu n'as pas vu les autres encore, voici une version qui devrait fonctionner:

Sub test()
Dim LR As Long

With Sheets("general")
    LR = .Range("A" & .Rows.Count).End(xlUp).Row
    .Range("a3").AutoFill Destination:=.Range("a3:a" & LR), Type:=xlFillDefault
    .Range("e3").AutoFill Destination:=.Range("e3:e" & LR), Type:=xlFillDefault
    .Range("h3").AutoFill Destination:=.Range("h3:h" & LR), Type:=xlFillDefault
    .Range("m3").AutoFill Destination:=.Range("m3:m" & LR), Type:=xlFillDefault
End With
End Sub

Merci de me dire si ça plante toujours ou non

bah la, il n'y a certes pas de bug mais la macro ne fait rien du tout

Bonjour,

Elle ne fait rien du tout?

Normalement elle est censé étendre les formules des cellules en ligne 3...

Peut-être que j'ai un couac dans le code...

Sur le fichier que je te joins, un bout de code similaire marche bien:

25test-autofill.xlsm (11.21 Ko)

Est ce que ta valeur LR renvoie bien ce que tu attends?

ça me paraissait bizarre que tu ailles chercher la dernière ligne remplie de la colonne A, colonne où tu veux remplir des cellules vides... Est ce que si tu remplaces temporairement LR = Range... par LR = 500, ça marche?

Quelque chose comme ça?

Sub test()
Dim LR As Long

With Sheets("general")
    'LR = .Range("A" & .Rows.Count).End(xlUp).Row
    LR = 500
    .Range("a3").AutoFill Destination:=.Range("a3:a" & LR), Type:=xlFillDefault
    .Range("e3").AutoFill Destination:=.Range("e3:e" & LR), Type:=xlFillDefault
    .Range("h3").AutoFill Destination:=.Range("h3:h" & LR), Type:=xlFillDefault
    .Range("m3").AutoFill Destination:=.Range("m3:m" & LR), Type:=xlFillDefault
End With
End Sub

Genial, ça fonctionne!

avec LR = 500

Merci énormément!!

Ce qui veut dire que ton programme n'est pas très logique, tu voulais obtenir la dernière ligne remplie dans ton tableau, peut-être faut-t-il faire ça avec une autre colonne? est ce que tu as une colonne qui peut te servir de référence pour savoir quelle est la dernière ligne remplie de ton tableau? il suffira ensuite de remplacer la colonne A dans l'obtention de la valeur de "LR" pour avoir la bonne valeur

ca fonctionne, donc c'est l'essentiel

ça fonctionne, mais ça fonctionne mal, dès que tu auras plus de 500 lignes, ça ne marchera plus, et tu devras alors changer ta macro à nouveau, si tu utilises correctement le calcul de la dernière ligne remplie, tu ne feras le programme qu"une fois, enfin si ça te convient, ça marche

je sais mais je n'aurais jamais 500 lignes.

c'est certain

donc pour moi c'est bon

D'accord

Merci d'avoir passé le sujet en résolu

Rechercher des sujets similaires à "tirer bas formule certaine"