Ajout de ligne avec formule et mise en forme

Bonjour,

Je suis à la recherche d'une solution pour ajouter des lignes (avec formule et mise en forme) en fonction de la valeur d'une cellule
Les explications sur la feuille BDD du fichier ci-joint.

Merci pour votre aide

Bonjour

Je suis parvenu a faire cette macro qui fonctionne bien manuellement ,mais je n'arrive pas a lui faire comprendre,comment insérer

un nombre de ligne selon le nombre qui se trouve dans la cellule F1 de la feuille BDD

Que faut-il ajouter a ma macro?

Si vous avez une idée je suis preneur

Merci

Sub AjoutLigne()

Selection.EntireRow.Insert
Range("A3:I3").Copy Range("A" & ActiveCell.Row)
Range("A" & Range("A65536").End(xlUp).Row + 1).Select
End Sub

Bonjour,

Excel est déjà équipé pour réaliser ce travail... Il s'agit du tableau structuré, qui reporte automatiquement formule et mise en forme à l'ajout de données (nouvelle(s) ligne(s)).

Bonjour Pedro22

Merci pour ta réponse

En regardant mon fichier dans le post 1,tu verras que ta proposition ne convient pas ,

puisqu'il s'agit de travailler sur 2 feuilles.

Bonjour Pedro22

Merci pour ta réponse

En regardant mon fichier dans le post 1,tu verras que ta proposition ne convient pas ,

puisqu'il s'agit de travailler sur 2 feuilles.

Je ne vois pas où est le problème ? Il te suffit de redimensionner ton tableau structuré par le biais de VBA, si tu tiens absolument à cette fonctionnalité.

Bonjour,

J'ai une proposition de code exécuté à chaque changement sur la cellule en question (F1 pour l'exemple). Il y a juste les formules et formats reportées sur les dernières lignes, en espérant que ça marche :

'DANS LE MODULE DE LA FEUILLE EN QUESTION

private sub worksheet_change(byval target as range)
if not intersect(target, Range("F1")) is nothing then
    if target.value > 0 and target.value <> "" then
        Call AjoutLigne(target.value)
    end if
end if
end sub

'DANS UN MODULE NORMAL

Sub AjoutLigne(NombreLignes as integer)

Dim DL as long, i as integer

DL = sheets("Mafeuille").usedrange.rows.count

rows(DL).Copy
with rows( DL+1 & ":" & DL+NombreLignes )
    .Pastespecial paste:=xlpasteformulas
    .Pastespecial paste:=xlpasteformats
end with

msgbox "lignes insérées"

End Sub

Cordialement,

Ce que je cherche à avoir c'est insérer des lignes selon le nombre qui figure dans la cellule F1 de la feuille BDD

Exemple si 1 dans la cellule F1 insère 1 ligne dans la feuille Résultat

Si 10 insère 10 lignes dans la feuille Résultat

Je viens de voir ton message Pedro.

Je n'ai pas regardé le fichier mais si c'est un tableau structuré, alors :

'DANS UN MODULE NORMAL

Sub AjoutLigne(NombreLignes as integer)

Dim i%

for i = 1 to NombreLignes
    Sheets("mafeuille").listobjects("montab").listrows.add
next i

msgbox "lignes insérées"

End Sub

Bonjour 3GB

Merci pour ton aide

Ci dessous le fichier avec ton code mais cela ne fonctionne pas

Il faut insérer le code au bon endroit et surtout adapter avec les bonnes références bien sûr.

Si ça ne marche toujours pas, merci de me dire à quel endroit

Dis moi exactement ou insérer les 2 codes je suis un bleu (72ans)en vba

je pratique comme je peux

C'est bon j'ai trouvé mon erreur

Merci encore bonne continuation

Donc comme précisé sur le code :

La macro private sub est à insérer dans le module de la feuille où se trouve la cellule F1 (avec le nb de lignes).

La macro ajout à insérer dans un module normal. Le cas échéant, à l'aide du menu contextuel de visual basic, allez sur : Insertion/Module !

Et si le tableau de la feuille Résultat est un tableau structuré, utilisez le dernier code (avec les bonnes références).

Et ça marche alors ? Si c'est le cas, c'est nickel !

Bonne continuation à toi aussi !

Rechercher des sujets similaires à "ajout ligne formule mise forme"