VBA - générer des tableaux structurés avec un nombre de ligne variable

Hello le forum,

suite à une demande, je cale sur la façon de générer des TS avec un nombre de ligne déterminé par la variable nbl.

Merci à Jean-Eric pour la macro,

Public Sub CreateNewWorksheets()
Dim wb As Workbook, wsList As Worksheet, wsTemplate As Worksheet, ws As Worksheet
Dim modeCalc As XlCalculation
Dim I As Long, n As Long, nbl As Long

    With Application
        modeCalc = .Calculation
        .Calculation = xlCalculationManual
        .DisplayAlerts = False
        .ScreenUpdating = False
    End With

    Set wb = ActiveWorkbook
    Set wsList = wb.Worksheets("Office")
    Set wsTemplate = wb.Worksheets("Modèle")

    For Each ws In wb.Worksheets
        Select Case ws.Name
            Case "Office", "Modèle", "Legand", "Invoice", "Timesheet Record":
            Case Else: ws.Delete
        End Select
    Next ws

    Application.DisplayAlerts = True

    n = wsList.Cells(Rows.Count, 2).End(xlUp).Row

    For I = 3 To n
    nbl = wsList.Cells(I, 3).Value
        wsTemplate.Copy After:=wb.Worksheets(wb.Worksheets.Count)
        Set ws = wb.Worksheets(wb.Worksheets.Count)
        With ws
            .Name = wsList.Cells(I, 2).Value
            .Cells(6, 2).Value = ws.Name
            .ListObjects(1).Name = "T_" & I - 2
        End With
    Next

    With wsList
        .Select
        .Cells(1).Activate
    End With

    Application.Calculation = modeCalc

    Set wb = Nothing
    Set wsList = Nothing: Set wsTemplate = Nothing

End Sub

mais je n'arrive pas à borner le nb de ligne de chaque onglet.

Si quelqu'un a une soluce, j'achète.

Merci,

Cordialement

Bonjour,

Si j'ai bien compris, essayez ceci :
- on supprime nbl fois la ligne 14 du modèle qui ne doit pas être modifié.

Bonjour Optimix,

Merci de ta contribution, on obtient bien le bon nombre de ligne, mais la formule de calcul est modifiée et ne s'incrémente plus au niveau du LIGNES($1:13)).

Dans ma logique, je copiai les 57 lignes la feuille Modèle ce qui me renvoyait bien les données, ensuite je voudrais supprimer les lignes vides.

Je ne sais pas si c'est la meilleure solution.

Cordialement

Je pense effectivement qu'il est beaucoup plus simple de supprimer les lignes vides que de modifier les formules dans les onglets. Mais il nous manque beaucoup trop d'éléments pour que les formules de votre fichier puissent fonctionner.
Donc ce que vous pouvez faire, c'est exécuter le programme réel et nous proposer l'onglet Line #1 avec les lignes 14, 15 et 58 remplies et les 42 autres vides. In seul onglet suffira.

Re,

Voici le fichier après lancement de la macro actuelle. La demande est de supprimer les lignes vides de chaque onglet.

J'ai peut être mal appréhender le problème, il faut peut être procéder différemment et créer directement chaque onglet avec le bon nombre de ligne directement par exemple.

Cordialement

Essayez ceci. Je pense que le code peut être optimisé (assez long).

Re,

Merci, cela fonctionne. je le soumets à la personne concernée.

Bonne continuation et bonne fin de journée.

Cordialement

Rechercher des sujets similaires à "vba generer tableaux structures nombre ligne variable"