Etendre une formule peu importe le nombre de ligne

Bonjour,

Après avoir parcouru les sujets proche du mien je me permets de poster car je n'arrive pas a adapter ce que j'ai trouver à mon cas.

J'ai un tableau dont le nombre de ligne peux varier selon le périmètre et après avoir ajouté des colonnes, fais les formules et mis tous ça en forme, je veux etendre les formules sur toute les lignes (le double click sur la petite croix noire sous excel) sauf que... en utilisant l'enregistreur de macro il ne me le fait que pour le nombre de ligne du fichier actuelle, je voudrais qu'il le fasse sur 4 ligne si j'ai 4 ligne et sur 150 si j'ai 150 lignes.

Je suppose qu'il faut utiliser une boucle pour trouver la dernière ligne et lui dire de recopier la formule sur la colonne souhaitée mais je n'y arrive pas.

Je vous joins mon fichier exemple ou :

  • je cherche à étendre les colonnes BC à BF (même si je n'ai pas terminé les formules)
  • en fonction du nombre de ligne en B

Je vous remercie par avance pour votre aide et votre expertise sur le sujet

Bonjour,

Sub Macro1()
Dim LastRw As Long
LastRw = Sheets("Synth D actuel").Cells(Rows.Count, 2).End(xlUp).Row
Range("BC2:BC" & LastRw).FillDown
Range("BF2:BF" & LastRw).FillDown
End Sub

Super ! merci beaucoup ce code fonctionne très bien cependant, mon petit soucis est que les formules que j'ai intégré dans ma macro ressorte le bon chiffre, cependant lorsqu'on etend la formule, comme ce n'est pas une formule c'est le resultat qui s'etend.

Est-ce qu'il y a moyen que ça soit la formule qu'on etend ?

actuellement j'ai ça

Range("BE2").Value = WorksheetFunction.VLookup(.Range("B2").Value, Sheets("Synth phase précédente").Range("B:AN"), 38, False)

en te remerciant encore pour le code précédent

Bonjour,

LastRw = Sheets("Synth D actuel").Cells(Rows.Count, 2).End(xlUp).Row
Range("BE2:BE" & LastRw).Formula = "=VLookup(B2, B:AN, 38, False)"
Range("BE2:BE" & LastRw).Value = Range("BE2:BE" & LastRw).Value

Merci ! ce code marche super bien à une exception que ma formule Vlookup dois aller chercher dans un autre onglet et j'arrive pas à l'ajouter dans le code..

Pour comprendre afin de me débrouiller seule à l'avenir :

La première ligne permet de dire de copier sur toute les lignes ?

la deuxième lui dis de faire la formule ?

la troisième passe les données en valeur afin d'alléger le fichier ?

bonjour

mettre sous forme de tableau (menu Accueil d'Excel, pas un obscur sous-menu)

les formules se reportent toutes seules dans les nouvelles lignes

sinon à quoi ça sert que Crosoft se décarcasse ?

pas de VBA


question au passage : pourquoi 2 onglets identiques

En effet, mais en fait l'idée est de faire une macro car je dois répéter l'action sur plus d'une 50aine de fichier donc même s'il s'agit de plein d'action simple cela prend du temps.

et pour répondre, les deux onglets sont identique à cause de l'anonymisation des données, ça ne sera pas le cas dans la réalité il s'agit de l'évolution d'un budget sur une année qu'on compare chaque trimestre

Bonjour

voila un autre principe avec FormulaLocal

Sub test1()
Nlig = Range("B" & Rows.Count).End(xlUp).Row ' Nombre de ligne
   Range("BC2:BC" & Nlig).FormulaLocal = "=SI(SOMME(AR2:AY2)=0;0;""x"")"
End Sub

A+

Maurice

Bonjour à tous,

Yuukia, voici un exemple avec l,autre feuille

Sub Macro1()
Dim LastRw As Long
LastRw = Sheets("Synth D actuel").Cells(Rows.Count, 2).End(xlUp).Row
Range("BE2:BE" & LastRw).Formula = "=VLookup(B2, 'Synth phase précédente'!B:AN, 38, False)"
Range("BE2:BE" & LastRw).Value = Range("BE2:BE" & LastRw).Value
End Sub

Bonjour

la touche final il faut jouer avec les CodeName

Sub test1()
Nlig = Range("B" & Rows.Count).End(xlUp).Row ' Nombre de ligne
Range("BC2:BC" & Nlig).FormulaLocal = "=SI(SOMME(AR2:AY2)=0;0;""x"")"
Range("BC2:BC" & Nlig).Value = Range("BC2:BC" & Nlig).Value
Onglet = Sheet11.Name ' donne le nom de l'Onglet
Range("BE2:BE" & Nlig).FormulaLocal = "=RECHERCHEV(B2; '" & Onglet & "'!B:AN; 38; FAUX)"
Range("BE2:BE" & Nlig).Value = Range("BE2:BE" & Nlig).Value
End Sub

A+

Maurice

C'est vraiment top SabV !!!!

Il me manquait la petite ! pour que ça marche

et merci aussi Archer ! j'ai utilisé le formula local dans d'autre formule que j'ai à faire

vraiment sympa à tous les deux

Rechercher des sujets similaires à "etendre formule peu importe nombre ligne"