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 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
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.