Microsoft 365 Transformation BDD en tableau à partir de VBA

Demasc

XLDnaute Nouveau
Bonjour à tous,

Après une bonne matinée de recherche, je bute pour trouver un programme VBA qui me permettrait de transformer les BDD que j'importe sur mon fichier Excel en tableau.
3 points spécifiques à ces BDD :
  • Certaines colonnes peuvent comporter des cellules vides.
  • Le nombre de lignes est variable.
  • La première ligne représentera toujours l'en-tête.
Est-ce que vous auriez une idée ?
 
Solution
Vous pouvez modifier comme suit :
VB:
DL = Range("K65500").End(xlUp).Row
ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$1:$K$" & DL), , xlYes).Name = "Tableau1"
DL calcule la dernière ligne utilisée.
Il faut prendre la colonne où tout est rempli, j'ai opté pour la colonne K.
Dans votre fichier, on a :
DL=21450, et donc le Range("$A$1:$K$" & DL) vaut Range("$A$1:$K$21450")

Demasc

XLDnaute Nouveau
Plus clairement :
Sub Macro2()
' Mise sous forme de tableau
Application.CutCopyMode = False
ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$1:$K$21450"), , xlYes).Name _
= "Tableau1"
Range("Tableau1[#All]").Select
ActiveSheet.ListObjects("Tableau1").TableStyle = "TableStyleLight1"
End Sub
Lorsque j'enregistre ma macro et effectue la mise sous forme de tableau (Onglet "Accueil" --> "Mettre sous forme de tableau") j'obtiens le programme ci-joint. Le problème étant que j'ai dans ce programme Range("$A$1:$K$21450"). Ors j'aimerais que la Range soit variable car la taille des colonnes et lignes serait amené à changer.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Vous pouvez modifier comme suit :
VB:
DL = Range("K65500").End(xlUp).Row
ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$1:$K$" & DL), , xlYes).Name = "Tableau1"
DL calcule la dernière ligne utilisée.
Il faut prendre la colonne où tout est rempli, j'ai opté pour la colonne K.
Dans votre fichier, on a :
DL=21450, et donc le Range("$A$1:$K$" & DL) vaut Range("$A$1:$K$21450")
 

Discussions similaires

Statistiques des forums

Discussions
299 728
Messages
1 978 789
Membres
206 395
dernier inscrit
Bilina