Insérer une ligne après une ligne active avec macro

Résolu
JayP -  
JayP1 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -
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.


A voir également:

2 réponses

Arkana0 Messages postés 6365 Date d'inscription   Statut Modérateur Dernière intervention   182
 
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
0
JayP1 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
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
0
Arkana0 Messages postés 6365 Date d'inscription   Statut Modérateur Dernière intervention   182
 
C'est normal, il faut passer par un site d'hébergement extérieur au forum, puis donner le lien pour qu'on puisse récupérer le fichier.
La capture d'écran fera tout aussi bien l'affaire.
L'idée est donc de cliquer sur le bouton avec un + pour créer une nouvelle ligne. Celle-ci sera-t-elle toujours après les lignes déjà existantes, ou bien faut-il qu'elle puisse s'insérer sous la ligne sélectionnée ?
Le code vba dont je dispose est plutôt calibré pour la première option et utilise une cellule excel exactement comme s'il s'agissait d'un bouton. Mais ça peut être modifié sans trop de problème.
0
JayP1 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
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;
0
Arkana0 Messages postés 6365 Date d'inscription   Statut Modérateur Dernière intervention   182
 
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
0
yclik Messages postés 3877 Date d'inscription   Statut Membre Dernière intervention   1 563
 
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
0
Arkana0 Messages postés 6365 Date d'inscription   Statut Modérateur Dernière intervention   182 > yclik Messages postés 3877 Date d'inscription   Statut Membre Dernière intervention  
 
Ah mince, je n'ai pas regardé la catégorie... Au temps pour moi :/
0