Comment créer une macro : dupliquer ligne à la ligne suivante ?

Résolu/Fermé
vieuxdinosaure Messages postés 3 Date d'inscription jeudi 14 mai 2015 Statut Membre Dernière intervention 15 mai 2015 - 14 mai 2015 à 08:27
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 30 juin 2015 à 18:45
Bonjour,

Comment, s'il vous plaît, en cliquant sur une touche fquelquechose, engendrer la macro suivante :

- insérer ligne
- dupliquer les cellules des colonnes G, H et I dans la ligne nouvellement créée (dans les colonnes G, H et I) ?

Je m'explique plus précisément :

- je suis sur n'importe quelle cellule de la ligne 42
- en tapant fquelquechose :
- une nouvelle ligne se crée sous la ligne 42, le bas de mon tableur étant décalé d'une ligne
- le contenu des cellules G 42, H 42 et I 42 est dupliqué dans les cellules G 43, H43 et I 43 qui viennent d'être créées.

Merci beaucoup.

Alain
A voir également:

6 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
14 mai 2015 à 09:21
Bonjour,

en tapant fquelquechose (sic)
Je te suggère le double clic et avec cette macro tu devrais obtenir ce que tu cherches :

Private Sub Worksheet_BeforeDoubleClick(ByVal sel As Range, Cancel As Boolean)
    Cancel = True
    Rows(sel.Row + 1).Insert
    Cells(sel.Row, "G").Resize(2, 3).FillDown
End Sub
0
vieuxdinosaure Messages postés 3 Date d'inscription jeudi 14 mai 2015 Statut Membre Dernière intervention 15 mai 2015
14 mai 2015 à 13:29
Merci beaucoup d'avoir pris le temps de me répondre, et de votre réponse.
Mais j'ai 60 ans et je ne comprends rien, bien que je comprenne l'anglais. C'est le langage informatique qui doit m'être étranger...
Je vais chercher un plus jeune dans mon entourage qui pourra vous lire autrement qu'avec des yeux ahuris comme moi.
Merci encore, je reviendrai vers vous quand j'y serai arrivé.
Alain
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
14 mai 2015 à 18:39
Bonsoir,

L'age n'est pas un handicap, juste la preuve que tu as su vivre jusque là ;-)

La macro que je t'ai mise doit être insérée par copie, dans la feuille où tu fais ta saisie et tu as un petit d'emploi pour cela.
Après tu n'es pas obligé de la lire pour qu'elle fonctionne et si tu as des soucis n'hésites pas à poser le problème, l'on t'aidera à la mettre en place.
Bonne soirée.
0
vieuxdinosaure Messages postés 3 Date d'inscription jeudi 14 mai 2015 Statut Membre Dernière intervention 15 mai 2015
15 mai 2015 à 09:03
Bonjour,

Merci pour cette jolie philosophie sur mon âge mais, sincèrement, je préfère le challenge d'un jeune de 20 ans face à un monde qui va être très compliqué (il suffit de voir une photo de Hong-Kong, de Mexico ou de Dubaï pour réaliser combien la donne a changé en 20 ans) plutôt que la satisfaction d'avoir évité bien des périls. Et puis, il y a la tristesse (honte ?) de ma génération de laisser à nos enfants une France en piteux état, faute d'avoir fait les réformes indispensables et su préserver la cohésion entre les gens.
Mais question âge, on ne se refait pas, c'est inéluctable... Sans oublier que l'espérance de vie n'atteint pas 60 ans dans beaucoup de pays du monde et qu'elle était de 50 ans en France dans les années 1900. J'ai déjà battu mon grand-père (mauvais exemple, en fait, lui est mort à 82 ans).
Merci pour ton second post pour Excel, je vais essayer mais serai sans micro pour 3 jours, je te tiens au courant la semaine prochaine.
Bon week-end, merci encore.
Alain
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
15 mai 2015 à 09:44
Bonjour,

Rassures-toi, comme moi, tu vis dans un monde qui en 60 ans a changé plus qu'en des milliers d'années avant, essentiellement du fait de la maitrise de l'eau et de l'électricité au départ, puis maintenant de la communication et de l'informatique.
Il faut être optimistes sinon l'on n'avance pas : nos enfants ont un monde bien plus sécurisé, libre et agréable que lorsque nous sommes nés au sortir du plus grand carnage humain. Â 20 ans, ils ont eu plus d'informations, de consommation, de loisirs et autres que nous à notre age. C'est donc à eux de faire en sorte de garder les valeurs humaines et sociales indispensables avec le confort matériel qu'on leur a offert.
le langage informatique qui doit m'être étranger...
C'est vrai qu'il faut un long apprentissage pour le pratiquer comme pour toute langue : essaies d'aller en immersion dans un pays non francophone et tu verras que ce n'est pas plus facile.
Bon weekend et à la semaine prochaine.
0
vieuxdinosaure > gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020
28 mai 2015 à 23:55
Bonsoir gbinforme,
You are my heroe, vous etes un dieu, vous méritez la Silver Cross, la Légion d'Honneur et la Médaille du Congrès. Ma nouvelle assistante qui a su installer votre formule dans mon tableur la mérite aussi.
Courageusement, je lui ai transmis votre mail dans ce langage informatique tellement étrange et, en peu de temps, elle a su le faire fonctionner (il ne lui a pas fallu une semaine mais elle ne s'y est mise que ce soir). Merci à tous deux, vous irez droit au paradis. Moi, j'irai en enfer avec les mauvaises filles, ce ne sera pas forcément moins rigolo...
Pour revenir à des propos moins amusants, je pense modestement que nous vivons une époque en effet où le savoir est accessible d'un clic, mais où la plupart des gens, en France en tout cas, sont plus intéressés à échanger des banalités sur Facebook qu'à apprendre sur Wikipédia. Tout est disponible et pourtant, comme disait jean Dutour, on est dans le siècle de la bêtise triomphante. Pas partout, par chance, car les cartes ont été redistribuées et les émergents nous prennent légitimement chaque jour des places, par leur travail, leur espoir d'une vie meilleure et peut-être aussi un esprit de revanche bien compréhensible. Et la partie va être rude pour nos enfants, même les plus brillants, mais pénalisés par le fardeau de concitoyens abrutis qui trouvent normal que la collectivité les paie à ne rien faire alors que d'autres triment au bout du monde pour toucher une pitance. Quant à nos politiques, de gauche ou de droite à surenchérir de promesses irréalistes pour gagner une élection, ils sont simplement indiqnes de nos Poilus qui ont donné leur vie - et ils savaient qu'ils allaient mourir - pour la fierté de leur village, de leur famille, de leurs enfants. Dans les 60 prochaines années, le monde va changer plus vite que durant les 60 dernières années, pas en mieux à mon avis car les tensions créent les extrêmes qui s'organisent toujours mieux, la communication moderne aidant, les armes étant tellement répandues, les intérêts tellement divergents et les populations dans tous les pays tant imbriquées que le danger, quelque soit sa forme, ne peut être repéré. Comme l'a dit le Pape en 1938 à propos de la montée d'Hitler, "tout ça va mal finir". Néanmoins, les restaurants sont pleins, les gens pensent aux vacances estivales, la capacité d'aveuglement et l'esprit inconscient de survie peuvent maintenir le système en équilibre encore longtemps. Ou pas... mais qu'Est-ce que j'en sais, je suis un modeste collègue de la rue
Merci infiniment et beaucoup de bonheur.
Alain
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684 > vieuxdinosaure
29 mai 2015 à 09:21
Bonjour Alain,
Merci de ce très gentil message et je suis très content d'avoir pu contribuer à résoudre ton idée qui ne demandait qu'un peu de pratique pour être opérationnelle.
Pour le reste, cela reste toujours le débat entre optimisme et pessimisme et si le pape a eu raison dans un premier temps, cela a ensuite contribué à l'éclosion de notre génération bien vernie.
Bonne continuation et si je peux t'aider à nouveau cela sera un grand plaisir.
0
vieux dinosaure
4 juin 2015 à 15:27
bonjour, je suis la collaboratrice "du vieux dinosaure" j'aurai besoins de vos lumières concernant la formule macro que vous lui avez transmise car elle se limite qu'à la copie de certaines cellules et je souhaite que cette copie comprennent la colonne J, K, L,et Y, en plus de celles qui sont déjà existantes.

Je vous remercie beaucoup, vous pouvez me laisser votre réponse à l'adresse suivante : ***@***...
J'aurai aussi besoins de votre aide pour une autre programmation macro : par recherche selon certains critères nom ou dossier ou société et par numéro de ligne croissant en les positionnant sur les premières lignes du tableau sans effacer les autres données...
J'avoue que je bloque.

Par la même auriez-vous un livre à me conseiller pour la création des macros. Vous seriez un amour...

Encore merci

La collaboratrice "du vieux dinosaure".
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
4 juin 2015 à 22:43
Bonsoir,

Pour la macro, il suffit de les rajouter ainsi :
Private Sub Worksheet_BeforeDoubleClick(ByVal sel As Range, Cancel As Boolean)
    Cancel = True
    Rows(sel.Row + 1).Insert
    Cells(sel.Row, "G").Resize(2, 3).FillDown ' G H I
    Cells(sel.Row, "K").Resize(2, 2).FillDown ' K L
    Cells(sel.Row, "Y").Resize(2, 1).FillDown ' Y
End Sub

Pour l'autre macro, si c'est possible de nous mettre un exemple de structure des données, sans éléments personnels, avec les résultats souhaités expliqués clairement, se serait plus facile d'aider.
Pour communiquer le classeur, le télécharger sur https://www.cjoint.com/ (mode d'emploi) et mettre ici le lien obtenu.
Pour le livre, je ne suis pas très chaud car je trouve qu'ils sont assez limités du point de vue pédagogie. Gratuitement en PDF une bonne approche de base et il y a l'aide excel VBA que j'utilise très régulièrement et que je trouve bien.
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
18 juin 2015 à 18:47
Bonjour ancoly30,

je ne sais pas comment tu crées le champs de saisie dans l'intitulé des colonnes.
Ce sont des textbox dans l'onglet développeur / mode création / insérer

Je souhaite reproduire cette programmation à la colonne "A" pour un tri numérique.
Ce n'est pas un tri mais un filtre.

La personne qui les reçoit par mail, ne les as pas (les macros)...
Si elle n'as pas activé les macros, elles les a bien mais inactives.

0
vieux dinosaure
18 juin 2015 à 19:24
Bonsoir,

Je vous remercie pour les informations : je vais voir ça demain... avec la trame.

Merci encore pour votre aide.

Cordialement

Ancoly30
0
vieux dinosaure
19 juin 2015 à 15:20
Bonjour,

j'ai effectué des essais avec vos programmations macros... Un problème se pose c'est que cette programmation prend fin à la ligne 3048 du fichier excel et je souhaiterai savoir s'il est possible de l'étendre jusqu'à la ligne 20000 du fichier.

Un autre problème est survenu les programmations macros que j'ai réalisé pour la mise en place d'un filtre ne fonctionne pas avec vos programmations...

Un vrai casse tête...

Je resterai connecté ce soir à ce forum.

Cordialement

Ancoly30
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
19 juin 2015 à 22:28
Bonsoir,

Je reprends le fil peut-être un peu tard...

c'est que cette programmation prend fin à la ligne 3048 du fichier excel
Je ne comprends pas car il me semble que j'avais mis
 ActiveSheet.Range("$A$1:$AA$65000")


les programmations macros que j'ai réalisé pour la mise en place d'un filtre ne fonctionne pas
Pas facile de savoir pourquoi sans plus d'infos : serait-il possible d'avoir un bout de classeur avec les macros ?

Bonne soirée et désolé du retard mais je n'étais pas sur la toile.
0
vieux dinosaure > gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020
Modifié par vieux dinosaure le 19/06/2015 à 23:33
Bonsoir,

Merci d'avoir répondu.
Je vous l'envoi demain dans la matinée car je n'ai pas le fichier sur ce pc...

Cordialement
Ancoly30
0
vieux dinosaure > gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020
20 juin 2015 à 12:24
Bonjour,

Comme promis : voici le lien pour le tableau...

http://www.cjoint.com/c/EFukyzmfDff

En effet, votre programmation macro va bien jusqu'à 65000. Mais elle ne fonctionne pas.

Cordialement

Ancoly30
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
22 juin 2015 à 18:53
Bonjour ancoly30,

J'ai vu le problème qui vient de la fonction utilisée : je vais te faire une fonction non limitative. il faudrait aussi que si l'on saisi ">10<50" cela sélectionne les valeurs de 11 à 49 ?

Veux-tu que je te rajoute une fonction qui trie ton classeur sur la colonne dont le titre est sélectionné ?
Il me semble que c'est ce que tu as essayé de faire.
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
30 juin 2015 à 18:45
Bonjour ancoly30,

J'ai l'impression que tu m'as un peu abandonné ?

Donc je te mets le classeur comme j'ai compris ta demande.
Je t'ai mis un formulaire, avec un bouton, pour sélectionner n'importe quelle rubrique sur une plage de valeurs (<=/>=) ou sur la présence de suite de caractères identiques : cela fonctionne sur l'ensemble du classeur.
Le tri sur une colonne se fait sur un double clic sur la ligne titre.

https://www.cjoint.com/c/EFEqHjILCwm

Tu peux tirer la feuille "Filtrer", le module "gbinforme", le module de classe "Groupes" dans ton classeur et associer un bouton à la macro "lance".
0