J'essaie d'écrire du code pour égaliser le nombre de lignes dans deux tables différentes, la table 1 (MaintSetup) est la table où l'utilisateur remplirait toutes les informations tandis que la table 2 (MaintSched) l'affiche. Les utilisateurs ne devraient vraiment avoir besoin que d'ajouter des lignes au tableau 1, je cherchais donc à créer un code qui ajouterait automatiquement des lignes au tableau 2 en fonction de la différence entre les lignes.

Je ne suis pas super compétent avec VBA, j'ai donc utilisé des fonctions Excel pour calculer la différence de lignes et l'avoir répertorié dans la cellule K9 (IE: si le tableau 1 est plus long de 3 lignes, la cellule K9 du tableau 2 sur l'arrière-plan de la feuille de calcul a "3" dedans.

J'ai proposé un code pour ajouter un nombre spécifié de lignes, mais je n'ai pas pu l'adapter à un nombre variable de lignes. C'est ce que j'avais trouvé, à l'origine j'étais juste 1 à 10 pour ajouter 10 lignes.

Sheets("Background").Select
Dim Dif As Integer
Diff = Range("K9")

Sheets("Maintenance Setup").Select

Dim ws As Worksheet
Set ws = ActiveSheet
Dim tbl As ListObject
Set tbl = ws.ListObjects("MaintSched")

Dim i As Byte
    For i = 1 To Diff
    tbl.ListRows.Add
Next i
0
Josh B 11 févr. 2020 à 23:04

1 réponse

Meilleure réponse

Il s'avère que je viens de gâcher ma variable et que je l'ai appelée définie comme Dif en essayant d'utiliser Diff. Le code ci-dessous a fonctionné pour moi avec la modification mineure. J'ai également découvert que Dim i car l'octet n'était pas requis.

Sheets("Background").Select
Dim **Diff** As Integer
Diff = Range("K9")

Sheets("Maintenance Setup").Select

Dim ws As Worksheet
Set ws = ActiveSheet
Dim tbl As ListObject
Set tbl = ws.ListObjects("MaintSched")

Dim i As Byte
    For i = 1 To Diff
    tbl.ListRows.Add
Next i
0
Josh B 11 févr. 2020 à 21:21