Redimensionner un tableau d'après nbre de cellules non vides

Bonsoir à tous,

Je cherche à redimensionner par macro (non évènementielle) un tableau déclaré (ici "Tableau13" sur le second onglet) en fonction du nombre de cellules non vides d'une plage donnée d'un autre onglet (ici la plage "D2:H5000" sur la Feuil1) + 1.

C'est sans doute assez simple, mais je n'y arrive pas.

Le fichier joint très épuré est assez parlant je pense.

Merci par avance !

Cordialement,

EDIT : A la relecture, je me rends compte que je n'ai pas précisé un détail : le nombre de cellules non vides (+1) doit redimensionner le nombre de lignes seulement du dit tableau (le nombre de colonnes reste inchangé)....

Salut Kiriko,

Je n’ai pas trop bien compris comment tu détermines le nombre de cellules vides, mais ça c’est ton problème

Par contre je te montre comment redimensionner ton tableau sur la base d’une autre variable, par exemple la valeur de la cellule T1.

Option Explicit

Sub Redimensionner()
Dim i As Integer
i = Range("T1")
    ActiveSheet.ListObjects("Tableau13").Resize Range("A1:Q" & i)
End Sub

Trouvé avec l'aide de l'enregistreur de macro. Y penses-tu parfois ?

Cordialement.

Bonjour Yvouille, et merci beaucoup,

Tu m'as déjà beaucoup aidé par le passé !

En fait, je cherche à donner à la variable i la valeur de

 NBVAL(D2:H5000)

J'ai essayé avec l'enregistreur de macro, il me donne

COUNTA(R2C4:R5000C8)

mais je n'arrive pas à l'attribuer à la variable....

Il est vrai que je pourrais passer par une cellule (T1) dans laquelle j'inscrirais la formule, mais je préfèrerais l'inscrire directement dans le code si c'est possible...

Merci encore !

A tester :

Sub Redimensionner()
Dim i As Long
i = WorksheetFunction.CountA(Range("D2:H5000"))
    ActiveSheet.ListObjects("Tableau13").Resize Range("A1:Q" & i)
End Sub

Superbe, c'est parfait merci beaucoup !

Encore une belle épine de moins....

A toute fin utile, pour des lecteurs futurs, dans le cas précis de mon fichier, j'avais oublié de préciser la feuille...

Le code d'Yvouille donne donc :

Option Explicit

Sub Redimensionner()
Dim i As Long
i = 1 + WorksheetFunction.CountA(Range("Feuil1!D2:H5000"))
    ActiveSheet.ListObjects("Tableau13").Resize Range("A1:Q" & i)
End Sub

Avec toute ma reconnaissance !!

Rechercher des sujets similaires à "redimensionner tableau nbre vides"