VBA créer tableau automatiquement, zone variable

Bonjour,

Dans une feuille avec des données,

je cherche à créer automatiquement un tableau avec le code suivant :

' z_mef_tableau_2 Macro
'

'
    Selection.CurrentRegion.Select
    Application.CutCopyMode = False
    ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$1:$I$186"), , xlYes).Name = _
        "Tableau1"
    Range("Tableau1[#All]").Select
End Sub

Problème : quand je l'utilise avec une feuille de taille différente,

ça ne marche plus car la zone sélectionnée reste toujours Range("$A$1:$I$186").

Je voudrais que Range("$A$1:$I$186") corresponde à Selection.CurrentRegion.Select pour quelle s'adapte.

Que mettre à la place de Range("$A$1:$I$186") ?

Merci beaucoup,

Nesti

Bonjour,
Je dirais que ton code se résume à ceci :
Sub test()

    ActiveSheet.ListObjects.Add(xlSrcRange, Range([A1].CurrentRegion.Address), , xlYes).Name = _
        "Tableau1"
End Sub

Excellent ! ça marche nickel, merci beaucoup

Cool, merci pour le retour,

Ce code est-il transformable pour définir automatiquement la zone d'impression ?

Oui, tu peux mettre ceci :

    ActiveSheet.PageSetup.PrintArea = "Tableau1[#Tout]"

Ou

    ActiveSheet.PageSetup.PrintArea = Range([A1].CurrentRegion.Address

après, je ne sais pas exactement ce que tu veux imprimer ...

merci. C'est pour imprimer l'intégralité du tableau.

Quand je mets l'une ou l'autre des possibilités, la macro se bloque. Je ne vois pas ce qui ne va pas.

nb j'ai ajouté une parenthèse à la fin de la proposition 2.

je sais pourquoi... j'avais déjà paramétré une zone d'impression.

Merci JoyeuxNoel !

pour le faire marcher j'ai en fait du écrire :

ActiveSheet.PageSetup.PrintArea = "Tableau1"

C'est ce que j'allais t'envoyer quand tu as dit que c'était tout bon

Rechercher des sujets similaires à "vba creer tableau automatiquement zone variable"