Dérouler une formule mais d'un nombre de colonne bien précis

Bonjour à tous,

Je bloque sur un code qui me permet de dérouler la formule qui commence en D3 mais d'un nombre de colonne limité, nombre de colonne présent en H1 (3 colonnes), par rapport à la dernière date présente en ligne 3.

Mon exemple se trouve dans mon fichier ci-joint.

Merci beaucoup pour votre aide.

Fabien

Pouvez vous nous donner ce que ces trois cellules devront avoir comme formule et comme résultat

bonjour

Bonjour,

Comme il s'agit d'un devoir montre ce que tu as fait et précise quel point précis te bloque.

Le but d'un devoir n'est pas de le faire faire par quelqu'un d'autre, mais que tu apprennes.

Découpe le travail à faire :

quelle est la 1ère date ?

Où se trouve-t-elle en ligne 3 ?

En déduire la plage destination.

etc

eric

Bonjour Toukoul, bonjour Eric,

Merci pour vos réponses. J'ai déjà réussi à déterminer le nombre de colonne à insérer par le biais de formule via:

=RECHERCHE(9^9;A1:A100)

&

=RECHERCHE(9^9;3:3)

Mais je suis incapable d'avoir une macro pour tirer une formule horizontalement de D3 à "xx"3. Avec D3 =

=DECALER($A$1;COLONNE(B1)-2;0)

mais d'un nombre de colonne bien précis présent dans une cellule (H1) , exemple dans mon fichier de mon premier mail, et je bloque dessus depuis un petit moment.

J'ai trouvé une macro pour tirer une formule mais verticalement seulement :

Sub TirerFormule()

Dim LastRw As Long

LastRw = Sheets("052021").Cells(Rows.Count, 8).End(xlUp).Row

Range("D3:D10" & LastRw).FillDown

End Sub

Merci à vous deux pour votre aide

Fabien

Bonjour toutes et tous

@etche32

Est-ce cela que, tu souhaitais pour les colonnes, après je n'ai pas trop compris

ci-joint

crdlt,

André

Bonjour Andre,

Merci pour ton aide.

En fait ce que je souhaite c'est étirer la formule initiale présente en D3 uniquement en horizontale jusqu'à la cellule N3 (car dans cet exemple il manque uniquement 3 dates 08/05/2020-09/05/2020-10/05/2020) mais le nombre de date qui manque peut varier donc un code du type:

range("D3:N3")

ne marche pas il faudrait que le code tienne compte du nombre de date et donc de colonne à rajouter (cet information est présente en H1).

Je ne sais pas si c'est faisable...

Mince mauvaise manipulation de ma part j'ai indiqué par erreur que ce post était résolu

Re,

bon alors, il faut trouver la solution

Récapitulons:

1/ Il faut étendre la formule en horizontal de D3 à N3

et non en vertical comme, j'ai pu pensé et qui, t'a sûrement mis en erreur

2/ prendre en considération le nombre de colonne limité, nombre de colonne présent en H1 (3 colonnes), par rapport à la dernière date présente en ligne 3. ( grrr)

EDIT: je pense que, je vais faire appel à un(e) ami(e)

Re,

Oui c'est tout à fait ça

Re,

Et si en effectuant comme ceci sans la macro directement

j'ai bloqué les cellules et effectuer une rectification de certaines formules disparues

ci-joint

crdlt,

André

Merci beaucoup André pour votre aide mais je crois que je suis obligé de passer par un code.

Voici le fichier complet en dessous (avec les explications) peut-être que ça sera plus clair. J'ai des formules à étirer en dessous de la date.

Je sais que c'est un véritable casse tête et d'ailleurs peut-être que ce que je souhaite faire est certainement irréalisable.... Quelqu'un me le dira d'ailleurs peut-être sur ce forum

14tirer-formule.xlsm (485.34 Ko)

Fabien

Re,

cliquer sur les boutons.

Pas de ligne vide, supprimer la 36.

Private Sub BtnC8_Click()
    ajoutJ [C8] ' 1ère date
End Sub

Private Sub BtnC25_Click()
    ajoutJ [C25]
End Sub

Sub ajoutJ(ByVal cel1 As Range)
    Dim c As Range, c2 As Range, pl As Range
    Set cel1 = Cells(cel1.Row, Columns.Count).End(xlToLeft)
    With Sheets("Données")
        Set c = .Columns("BF").Find(cel1.Value, , xlFormulas, xlWhole)
        If c Is Nothing Then MsgBox Format(cel1.Value, "dd/mm/yyyy") & " non trouvé dans Données!BF:BF": Exit Sub
        Set c2 = .Cells(Rows.Count, "BF").End(xlUp)
    End With
    Set pl = Range(cel1, cel1.End(xlDown))
    pl.AutoFill Destination:=pl.Resize(, c2.Row - c.Row + 1)
End Sub

ou tous sur un seul bouton :

Private Sub BtnAjout_Click()
    ajoutJ [C8] ' 1ère date
    ajoutJ [C25]
End Sub

eric

15tirer-formule.xlsm (493.53 Ko)

Bonjour Eric,

C'est magnifique ! Merci beaucoup pour votre précieuse aide ! Je vais pouvoir garder ce code ça m'évitera de passer par des FomulaLocal à chaque fois! Merci également à André et Toukoul qui ont voulu m'aider.

Par contre comment arrivez-vous à rattacher une private Sub à un bouton, je bloque dessus...

Merci encore

Fabien

Bonjour,

il faut d'abord personnaliser le ruban (clic droit dessus) pour ajouter l'onglet Développeur.

Insérer un bouton ActiveX, double-ciquer dessus pour mettre le code.

Pour un bouton global, un bouton Formulaire peut suffire. Sur Mac tu n'auras pas le choix.

Il faut le lier à la macro BtnAjout_Click.

eric

PS : en relisant ta question, la Sub ne doit pas être Private pour être visible depuis la feuille (bouton Formulaire)

Re,

D'accord merci !

Pour ma curiosité (et pour apprendre surtout) si je comprends bien le code que tu as fait : tu analyses à partir de la colonne C si une date est présente, à défaut on va regarder la colonne suivante (C+1, etc...) puis tirer les formules en respectant le nombre de date présente en "BF". Par curiosité comment tu y aurais pris pour réaliser la même chose mais en commençant à partir d'une colonne bien précise (par exemple la E ou une autre sachant que des dates sont présentes avant) ?

Bonjour toutes et tous

En tout cas, je voulais remercier Eriiic, pour ce code que je vais essayé d'éplucher et comprendre comment qu'il a fait

bonne fin de journée à tous

crdlt,

André

Le principe est le suivant :

tu fournis la 1ère date en C pour récupérer la ligne des dates à prendre en compte en fait.

A partir de C8 je recherche la dernière cellule de la ligne, donc la dernière date mise.

Je recherche celle-ci dans Données!BF:BF ( set c) , puis la dernière ligne de cette colonne (set c2).

La différence des lignes donne le nombre de date.

Plus qu'à sélectionner plage sous la dernière date et l'étirer d'autant.

eric

Re,

Grand merci pour tes explications

, j'ai encore du chemin à faire, en faite! c'est que, je n'arrive pas encore à effectuer une logique, en regardant chaque fois vos codes on se dit mais c'est facile çà mais en réalité nada il me manque encore un loooong parcours, j'y arriverai un jour, en tout cas persévérance logique et patience sont les mots clés

crdlt,

André

C'est l'avantage d'excel, il y a toujours à apprendre.

Ca entretient les neurones

eric

Un grand Eric !

Rechercher des sujets similaires à "derouler formule nombre colonne bien precis"