Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Autres dupliquer automatiqument des lignes

baratte.corinne

XLDnaute Nouveau
Bonjour
Pour l'association dont je m'occupe, j'ai besoin de dupliquer automatiquement toutes les lignes d'un fichier d'adhérent .
J'ai Environ 150 adhérents, et pour chaque adhérent j'aimerai dupliquer automatiquement la ligne 4 fois pour en pas avoir à le faire manuellement
Est ce possible de le programmer sous excel ? je joins un fichier excel modèle (avec seulement quelques lignes )
je manipule régulièrement excel (filtres, utilisation fonctions excel) mais je n'ai jamais utiliser de macros ni développé dans excel et suis démunie face à ce problème qui ne doit pas être si compliqué .
Merci de votre aide
 

Pièces jointes

  • corinnebaratte.xlsx
    8.6 KB · Affichages: 18

natorp

XLDnaute Accro
Bonjour Corinne
Questions : où souhaites-tu dupliquer les lignes ? dans la même feuille ? au niveau de la dernière ligne ? après la première ligne de l'adhérent concerné ?
Peux-tu nous mettre un exemple de ce que tu souhaites dans ton fichier en coloriant les lignes supplémentaires ?
Cordialement, Gérard
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour Corinne, bonjour le forum,

Essaie comme ça :

VB:
Sub Macro1()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim NT() As Variant 'déclare la variable NT (Nouveau Tableau)
Dim I As Integer 'déclare la variable I (Incrément)
Dim J As Integer 'déclare la variable J (incrément)
Dim K As Integer 'déclare la variable K (incrément)

Set O = Worksheets("Feuil1") 'définit l'onglet O
TV = O.Range("A1").CurrentRegion 'définit le tableau des valeurs TV
ReDim NT(1 To UBound(TV) * 4, 1 To 3) 'dimensionne le nouveau tableau NT
For I = 1 To UBound(TV, 1) 'boucle 1 : sur toutes les lignes I du tablerau des valeurs TV
    For J = 1 To 4 'boucle 2 : sur 4 lignes
        NT(K + J, 1) = TV(I, 1) 'récupère dans la ligne K+J, colonne 1 de NT la donnée ligne I colonne 1 de TV
        NT(K + J, 2) = TV(I, 2) 'récupère dans la ligne K+J, colonne 2 de NT la donnée ligne I colonne 2 de TV
        NT(K + J, 3) = TV(I, 3) 'récupère dans la ligne K+J, colonne 1 de NT la donnée ligne I colonne 3 de TV
    Next J 'prochaine
    K = K + 4 'incrémente K
Next I 'prochaine ligne de la boucle 1
O.Range("A1").Resize(UBound(NT, 1), 3) = NT 'renvoie le tableau NT dans A1 redimensionnée
End Sub

[Édition]
Bonjour Nartop, nos posts se sont croisés
 
Dernière édition:

baratte.corinne

XLDnaute Nouveau
Bonjour et merci à tous pour votre aide rapide et efficace.
J'ai opté pour la solution pierre jean qui répond parfaitement au besoin, et a l'avantage d’être fonctionnelle tout de suite, et pour laquelle je comprends bien la routine appelée test.
Comme j'aimerais pouvoir transposer cette macro à terme pour d'autres fichiers, j'ai essayé de la maitriser en la recréant dans un autre fichier excel.
Il y quelque chose qui m'échappe, c'est comment créer le bouton de démarrage de la macro "copier *4" . J'ai essayé en créant un bouton de commande dans le menu "développeur insérer contrôle activX" . Un bouton se crée mais je n'arrive pas à le renommer et à le relier à la macro "test" pour que l'execution de la macro "test" se réaliser lorsqu'on clique sur le bouton. Au contraire, le fait de créer ce bouton et de le renommer dans le bandeau dédiée en haut à gauche (sous menu fichier) semble desactiver toutes les macros présentes dans ce fichier excel.
J'ai un peu tourné mais je ne trouve pas bien la clé du problème. Ce n'est peut être qu'un soucis d'activation des macros mais je débute .
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…