XL 2013 Créer tableau à partir d'une plage de cellules, VBA

Lukas

XLDnaute Nouveau
Bonjour à tous et à toutes,

Je suis débutant en VBA et crée depuis peu des petites macros

Mon problème est le suivant :
J'utilise beaucoup l'enregistreur de macro et n'arrive pas à reproduire deux opérations.
Après toute un série d'opération, je sélectionne toutes les cellules non-vide (le nombre peut varier) et j'aimerais créer un tableau à partir de la plage de cellules sélectionnée comme si on faisait "Insertion" puis "Tableau" mais pas moyen de faire fonctionner cette action.
Mon 2ème problème est, après une autre série d'opération, de convertir ce tableau en plage de cellules à nouveau.

J'ai cherché dans de multiple forum mais impossible pour moi de trouver ces (j'imagine) petites lignes de code.

Merci d'avance pour votre aide
Bonne journée

Lukas
 

Lukas

XLDnaute Nouveau
ActiveSheet.ListObjects("Tableau1").Unlist
Bonjour Dranreb,

Merci pour votre réponse rapide, le tableau se crée comme voulu mais seulement sur la plage "A2 à E25" comme mentionné dans le code.
Est-il possible de remplace cette plage par les cellules déjà sélectionnées (le nombre peut varier à chaque application de la macro) ?

Mes cellules sont sélectionnées par ce code :
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select

merci d'avance
Lukas
 

Lukas

XLDnaute Nouveau
oui effectivement, mais je n'arrive pas à utiliser l'expression Range avec les cellules actives.
Par quoi devrais-je remplacer " ("$A$2:$E$25") " pour avoir la plage sélectionnée ?
Et comme dit précédemment, la plage peut varier donc le tableau aussi.
 

Dranreb

XLDnaute Barbatruc
Par Selection. Mais si la sélection n'est pas effectuée par l'utilisateur il vaut mieux éviter d'y recourir, et préférer une expression comme Intersect(Feuil1.[A2:E100000], Feuil1.UsedRange) par exemple.
Mais le mieux ce serait encore de ne plus transformer le tableau en plage normale. Comme ça il resterait toujours ajusté au nombre de lignes effectivement utilisées.
 

Lukas

XLDnaute Nouveau
Ah oui, c'est tout simplement Selection.
Dans mon cas cela fonctionne très bien, la macro extrait une liste de pièce (de grandeur variable) qui a déjà une ligne de titre de colonne, elle sélectionne toute les ligne non vide de la colonne A avec " Range(Selection, Selection.End(xlDown)).Select " puis toutes les colonnes avec " Range(Selection, Selection.End(xlToRight)).Select " et de cette plage elle crée le tableau.

En tout cas MERCI beaucoup c'est parfait comme ça.
Je reviendrais bientôt car j'ai encore une fonction que je n'arrive pas à faire.

Bon week-end.
 

Discussions similaires

Statistiques des forums

Discussions
312 206
Messages
2 086 219
Membres
103 158
dernier inscrit
laufin