Copier + insérer une ligne contenant une formule

Résolu
MyPamplemousse Messages postés 13 Date d'inscription mercredi 19 juin 2019 Statut Membre Dernière intervention 28 février 2024 - Modifié le 26 févr. 2024 à 14:50
MyPamplemousse Messages postés 13 Date d'inscription mercredi 19 juin 2019 Statut Membre Dernière intervention 28 février 2024 - 28 févr. 2024 à 08:43

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 ? 

A voir également:

2 réponses

yg_be Messages postés 22733 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 29 avril 2024 1 477
27 févr. 2024 à 00:38

bonjour,

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

0
MyPamplemousse Messages postés 13 Date d'inscription mercredi 19 juin 2019 Statut Membre Dernière intervention 28 février 2024
27 févr. 2024 à 06:06

Merci pour votre retour. 

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

0
yg_be Messages postés 22733 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 29 avril 2024 1 477 > MyPamplemousse Messages postés 13 Date d'inscription mercredi 19 juin 2019 Statut Membre Dernière intervention 28 février 2024
27 févr. 2024 à 10:12

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

0
MyPamplemousse Messages postés 13 Date d'inscription mercredi 19 juin 2019 Statut Membre Dernière intervention 28 février 2024 > yg_be Messages postés 22733 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 29 avril 2024
27 févr. 2024 à 15:53

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
yg_be Messages postés 22733 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 29 avril 2024 1 477 > MyPamplemousse Messages postés 13 Date d'inscription mercredi 19 juin 2019 Statut Membre Dernière intervention 28 février 2024
27 févr. 2024 à 16:06

moi j'essaierias ainsi:

=Date(Année(R[-1]C);Mois(R[-1]C)+1;Jour(R[-1]C))
0
MyPamplemousse Messages postés 13 Date d'inscription mercredi 19 juin 2019 Statut Membre Dernière intervention 28 février 2024 > yg_be Messages postés 22733 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 29 avril 2024
28 févr. 2024 à 07:22

Merci pour votre retour. 

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

0
yg_be Messages postés 22733 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 29 avril 2024 1 477
28 févr. 2024 à 08:32

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
MyPamplemousse Messages postés 13 Date d'inscription mercredi 19 juin 2019 Statut Membre Dernière intervention 28 février 2024
28 févr. 2024 à 08:43

Merci pour votre proposition ainsi que pour votre aide ! 

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

Belle journée à vous ! 

0