Microsoft 365 Insertion lignes avec macro

JBL07

XLDnaute Occasionnel
Bonjour le Forum !

Qui saurait m'aider ?

Voici une macro que j'utilise pour insérer une ligne vierge pour saisie de données dans un tableau
Elle s'insère en ligne 10, qui est la seconde ligne de mon tableau ( qui pour reprendre une expression que je vois souvent ici, est un peu une usine à gaz :) )

Ce que j'aimerais, c'est pouvoir insérer en une seule fois le nombre de ligne que je souhaite, à partir d'une cellule dans laquelle je noterais ce nombre
Exemple : je veux 3 lignes pour enregistrer de nouvelles données, je notre "3" dans une cellule, je lance la macro, et 3 lignes s'insèrent dans le tableau, ligne 10 à 12 pour cet exemple
sachant que mon tableau va de la colonne B à la colonne R
Merci pour vos suggestions !

Sub Nelle_saisie_avec_solde()

If MsgBox("C'est bien une saisie que je veux faire ?", vbYesNo + vbQuestion, "Confirmation saisie") = vbYes Then

Application.CommandBars("Selection").Visible = False
Rows("10:10").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range("R11").Select
Selection.AutoFill Destination:=Range("R10:R11"), Type:=xlFillDefault
Range("R10:R11").Select
Range("B10").Select
'FMSaisie.Show vbModeless
End If

End Sub
 
Solution
En faite c'est 10 + x ( ton nombre) donc ça met une nouvelle ligne pour 10/11/12.

Mais j'ai changé sans compter la ligne :
VB:
Sub Nelle_saisie_avec_solde()
Dim x%
On Error Resume Next

reponse = MsgBox("C'est bien une saisie que je veux faire ?", vbYesNo + vbQuestion, "Confirmation saisie")
        If reponse = vbYes Then
            x = InputBox("Combien de lignes sont à inserer ?", "Nombre de lignes", 3)
            If x = 0 Then Exit Sub
            Rows("10:" & x + 9).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        End If
    
End Sub

shinozak

XLDnaute Occasionnel
En faite c'est 10 + x ( ton nombre) donc ça met une nouvelle ligne pour 10/11/12.

Mais j'ai changé sans compter la ligne :
VB:
Sub Nelle_saisie_avec_solde()
Dim x%
On Error Resume Next

reponse = MsgBox("C'est bien une saisie que je veux faire ?", vbYesNo + vbQuestion, "Confirmation saisie")
        If reponse = vbYes Then
            x = InputBox("Combien de lignes sont à inserer ?", "Nombre de lignes", 3)
            If x = 0 Then Exit Sub
            Rows("10:" & x + 9).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        End If
    
End Sub
 
Dernière édition:

JBL07

XLDnaute Occasionnel
Bonjour Shinozak,

Finalement un petit souci : à l'affichage de l'inputbox, je ne peux pas faire marche arrière : que je mette nombre de lignes "0", ou que je fasse "annuler", le tableau se retrouve avec 2 lignes vierges en lignes 9 et 10...
 

Discussions similaires