Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 Développement d'un tableau en fonction d'un nombre dans une cellule

TLM_16

XLDnaute Nouveau
Bonjour à tous,

Etant novice sur le codage d'Excel, j'aimerai avoir votre aide car je n'arrive pas à trouver comment faire pour développer automatiquement les lignes de mon tableau en fonction d'un nombre dans une cellule.
Par exemple, si dans une cellule est affiché 4, j'aimerai que le tableau se développe automatiquement de 4 lignes tout en conservant les formules du tableau.
Je vous joint mon tableau Excel. C3 étant ma cellule qui indique le nombre de lignes à développer et E11:J12 étant les lignes à développer en fonction de C3.

Je ne sais pas si je suis assez clair, dites-moi si vous voulez plus de détails.

Merci

Théo
 

Pièces jointes

  • Emprunt annuités constantes.xlsm
    10.1 KB · Affichages: 5
Solution
Bonjour TLM_16, JM, sousou,

Voyez le fichier joint et cette macro dans le code de la feuille (clic droit sur l'onglet et Visualiser le code) :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim n&
If FilterMode Then ShowAllData 'si la feuille est filtrée
Application.EnableEvents = False
n = Int(Abs(Val(CStr([C3]))))
[C3] = IIf(n, n, "")
With [E8:J8] 'à adapter
    If n Then
        .Cells(1).Resize(n) = "=MAX(R1C:R[-1]C)+1"
        .Cells(1, 2).Resize(n) = "=IF(RC[-1]=1," & [C2].Address(ReferenceStyle:=xlR1C1) & ",R[-1]C[4])"
        .Cells(1, 3).Resize(n) = "=RC[-1]*" & [C4].Address(ReferenceStyle:=xlR1C1)
        .Cells(1, 4).Resize(n) = "=RC[1]-RC[-1]"
        .Cells(1, 5).Resize(n) = "=" & [C6].Address(ReferenceStyle:=xlR1C1)...

Staple1600

XLDnaute Barbatruc
Bonjour le fil

Une façon de faire
(pré-requis: transformer ton tableau en Tableau )
=>Sélectionne ton tableau puis =>Insertion/Tableau => [x] Mon tableau contient des entêtes
VB:
Sub InsérerLignesTABLEAU()
Dim I%
If IsNumeric([C3]) And [C3] <= 10 Then
For I = 1 To [C3]
ActiveSheet.ListObjects("Tableau1").ListRows.Add AlwaysInsert:=True
Next
End If
End Sub

EDITION: Bonjour sousou
 
Dernière édition:

sousou

XLDnaute Barbatruc
bonjour (staple)
Une solution sans tableau pour conformité des formules de la première ligne
ajout d'un nouvelle formule pour (N + n)
 

Pièces jointes

  • Emprunt annuités constantes.xlsm
    16 KB · Affichages: 4

job75

XLDnaute Barbatruc
Bonjour TLM_16, JM, sousou,

Voyez le fichier joint et cette macro dans le code de la feuille (clic droit sur l'onglet et Visualiser le code) :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim n&
If FilterMode Then ShowAllData 'si la feuille est filtrée
Application.EnableEvents = False
n = Int(Abs(Val(CStr([C3]))))
[C3] = IIf(n, n, "")
With [E8:J8] 'à adapter
    If n Then
        .Cells(1).Resize(n) = "=MAX(R1C:R[-1]C)+1"
        .Cells(1, 2).Resize(n) = "=IF(RC[-1]=1," & [C2].Address(ReferenceStyle:=xlR1C1) & ",R[-1]C[4])"
        .Cells(1, 3).Resize(n) = "=RC[-1]*" & [C4].Address(ReferenceStyle:=xlR1C1)
        .Cells(1, 4).Resize(n) = "=RC[1]-RC[-1]"
        .Cells(1, 5).Resize(n) = "=" & [C6].Address(ReferenceStyle:=xlR1C1)
        .Cells(1, 6).Resize(n) = "=RC[-4]-RC[-2]"
        .Resize(n).Borders.Weight = xlThin 'bordures
    End If
    .Offset(n).Resize(Rows.Count - n - .Row + 1).Delete xlUp 'RAZ en dessous
End With
Application.EnableEvents = True
With UsedRange: End With 'actualise la barre de défilement verticale
End Sub
A+
 

Pièces jointes

  • Emprunt annuités constantes(1).xlsm
    18.8 KB · Affichages: 2
Dernière édition:

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…