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

  • Initiateur de la discussion Initiateur de la discussion Lukas
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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
 
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.
 
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.
 
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.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour