Copier + insérer une ligne contenant une formule

Résolu
MyPamplemousse Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   -  
MyPamplemousse Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   -

Bonjour à tous,

Je souhaite créer une macro qui copie une ligne et l'insère X fois, x étant un nombre indiqué dans une cellule.

J'ai donc créé ce qui suit sur VBA :

Sub dupLigne() 

Dim I As Integer

For I = 1 To Range("D1").Value

Range("4:4").Copy

Range("5:5").Insert

Next I

End Sub

Cependant, il y a une fonction dans la ligne qui doit être copier qui indique la date (format mois année). Le but étant que chaque ligne ajoute un mois de plus que la précédente. Malheureusement, lorsque j'exécute la macro, les lignes sont bien insérées mais la formule ne s'adapte pas et indique toujours le même mois. 

Pourriez-vous m'indiquer une solution à ce problème ? 

2 réponses

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     

    bonjour,

    moi j'essaierais que la formule tienne compte de la ligne dans laquelle elle se trouve.

    0
    1. MyPamplemousse Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
       

      Merci pour votre retour. 

      Comment faudrait-il adapter la macro pour que cela puisse fonctionner ? 

      0
      1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > MyPamplemousse Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
         

        Je suggère d'adapter la formule, pas d'adapter la macro.

        0
      2. MyPamplemousse Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
         

        Voici la formule telle qu'elle est actuellement :

        =Date(Année(A3);Mois(A3)+1;Jour(A3))

        En cellule A3 se trouve une date fixe qui sera modifiée manuellement selon les cas.

        Le problème étant que lors de la génération des lignes, la formule s'adapte une fois, remplaçant "A3" par "A4", ce qui est juste mais toutes les lignes suivantes restent également avec la mention "A4", au lieu de s'adapter à chaque fois à la ligne supérieure (A5, A6, A7, etc.)

        Sauriez me dire comment faudrait-il adapter la formule pour que l'ajustement du mois soit fonctionnel ? 

        0
      3. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > MyPamplemousse Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
         

        moi j'essaierias ainsi:

        =Date(Année(R[-1]C);Mois(R[-1]C)+1;Jour(R[-1]C))
        0
      4. MyPamplemousse Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
         

        Merci pour votre retour. 

        Malheureusement, la fonction proposée ne fonctionne pas chez moi... 

        0
  2. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     

    suggestion:

    Sub dupLigne()
    Dim I As Integer, rg As Range
    Set rg = Range("5:5")
    For I = 1 To Range("D1").Value
        Range("4:4").Copy
        rg.Insert
    Next I
    End Sub
    0
    1. MyPamplemousse Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
       

      Merci pour votre proposition ainsi que pour votre aide ! 

      Celle-ci a parfaitement fonctionner ????????

      Belle journée à vous ! 

      0