Insérer une ligne après une ligne active avec macro [Résolu/Fermé]

Signaler
-
Messages postés
4
Date d'inscription
mercredi 3 février 2016
Statut
Membre
Dernière intervention
5 novembre 2016
-
Bonjour,
j'ai un soucis, je connais pas grand chose sur les macros, je m'explique :
Je réalise un outil d'édition de facture et devis,je souhaite faire une macro, lorsqu'on clique sur un bouton associé à la macro, on a une nouvelle ligne après la ligne active. exemple:
si la ligne active est A43:AMJ43, si je clique sur le bouton ajouter, je souhaite avoir une nouvelle ligne à A44:AMJ44 avec les formules qui se mettent à jour en fonction des formules qui sont dans les lignes précédentes , ainsi de suite à chaque clic.


2 réponses

Messages postés
3428
Date d'inscription
mercredi 11 février 2009
Statut
Contributeur
Dernière intervention
22 juillet 2021
185
Bonjour,

Je dispose d'une macro faisant grosso-modo ce que tu souhaites.
Mets ton fichier à disposition et je verrai si je peux l'adapter
Messages postés
4
Date d'inscription
mercredi 3 février 2016
Statut
Membre
Dernière intervention
5 novembre 2016

Bonjour Arkana,
je n'arrive pas à charger mon fichier sur le forum, parce que c'est la première fois ! je peux vous mettre une capture d'écran peut être vous aller comprendre ;


Merci d'avance
Messages postés
4
Date d'inscription
mercredi 3 février 2016
Statut
Membre
Dernière intervention
5 novembre 2016

C'est justement la première option dont je souhaite; faire une nouvelle ligne qui sera rajoutée après les lignes déjà existantes; à chaque clic sur le petit bouton +,une nouvelle ligne se crée à la fin de la dernière ligne du tableau et doit contenir les même propriétés que les lignes précédentes (des formules)

merci;
Messages postés
3428
Date d'inscription
mercredi 11 février 2009
Statut
Contributeur
Dernière intervention
22 juillet 2021
185
J'avoue galérer un peu avec le bouton.

Ce que je te propose, c'est qu'à la place de celui-ci tu renseignes "Ajouter ligne" dans la cellule (sur ton exemple, en A44).

Ensuite, tu vas dans l'onglet "développeur", puis tu cliques sur "Visual basic".
Dans la liste en haut à gauche tu développes "VBAProject(Le nom de ton classeur)", puis "Microsoft Excel Objets.

Tu doubles cliques sur la feuille qui correspond à celle où tu renseignes ton devis

Dans la partie à droite, tu copies le code suivant :
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

If ActiveCell.Value = "Ajouter ligne" Then 'Il faut que le texte corresponde à celui de la cellule sur laquelle on double-clique

Selection.EntireRow.Insert
ActiveCell.Offset(0, 4).FormulaLocal = "C" & ActiveCell.Row & "*D" & ActiveCell.Row

Exit Sub

End If

End Sub

J'ai renseigné la seule formule que je pouvais deviner. Si tes prix sont obtenus par une autre formule, il faudra ajouter une ligne sur le même modèle que
ActiveCell.Offset(0, 4).FormulaLocal = "C" & ActiveCell.Row & "*D" & ActiveCell.Row
Messages postés
2511
Date d'inscription
vendredi 25 juillet 2014
Statut
Membre
Dernière intervention
11 juillet 2021
1 152
Bonjour
la macro de Arkan0 et en VB pour excel.
A priori on est sous open office et le VB ne passera pas.
Voir là pour une macro ressemblante
Messages postés
3428
Date d'inscription
mercredi 11 février 2009
Statut
Contributeur
Dernière intervention
22 juillet 2021
185 >
Messages postés
2511
Date d'inscription
vendredi 25 juillet 2014
Statut
Membre
Dernière intervention
11 juillet 2021

Ah mince, je n'ai pas regardé la catégorie... Au temps pour moi :/
Messages postés
4
Date d'inscription
mercredi 3 février 2016
Statut
Membre
Dernière intervention
5 novembre 2016

Un grand merci à vous tous, c'était ma première fois sur le forum , et là je vais plus vous lâcher si jamais j'ai un problème.

ça marche bien avec la proposition de yclik