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 -
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.
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:
- Insérer une ligne après une ligne active avec macro
- Partager photos en ligne - Guide
- Insérer une vidéo dans powerpoint - Guide
- Mètre en ligne - Guide
- Aller à la ligne excel - Guide
- Insérer une ligne sur word - Guide
2 réponses
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
Je dispose d'une macro faisant grosso-modo ce que tu souhaites.
Mets ton fichier à disposition et je verrai si je peux l'adapter
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.
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.
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;
merci;
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 :
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
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
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
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