J'ai une extraction SAP qui me génère un fichier excel .
sur ce fichier, je veux sélectionner toutes les cellules utilisées en feuille 1 (la taille varie selon les jours) - et insérer un tableau avec entête sur cette sélection. (comme ce que l'on pourrait faire manuellement)
Mon idée était de sélectionner avec la méthode CURRENT REGION (déjà testé ca marche) et d’insérer un tableau avec entête sur cette sélection
Est que quelqu’un connait la méthode a utiliser pour insérer un tableau avec entête sur la sélection ?
sachant que j'ai ce code pour déterminer le nombre de lignes et des colonnes
Sub m()
ActiveSheet.Activate
nb_lignes = Cells(Rows.Count, "A").End(xlUp).Row
der_col = Cells(1, Columns.Count).End(xlToLeft).Column
MsgBox "Le nombre de colonnes est de : " & der_col
MsgBox "Le nombre de lignes est de : " & nb_lignes
c'est un tableau qui vient de SAP (en fait c'est exactement comme dans le fichier que je viens d'importer) => c'est juste des cellules de remplies (aucune de vide) - mon idée était donc de calculer le nombre de colonnes et de lignes - et d'insérer un tableau en fonction de ces 2 variables sachant que la première ligne est les entetes
Est-ce réalisable ?
Voici une piste (je ne sais pas trop si c'est ce que tu veux), la plage de la feuille "Sheet1" est copiée sur la feuille "Sheet2" à partir de A1 :
Code:
Sub Test()
Dim Plage As Range
Set Plage = Worksheets("Sheet1").Range("A1").CurrentRegion
With Worksheets("Sheet2")
.Range(.Cells(1, 1), .Cells(Plage.Rows.Count, Plage.Columns.Count)).Value = Plage.Value
End With
End Sub
En fait ce que je veux c'est que ma plage soit comme dans le fichier que je te joint : tableau inséré qui reprend les données de ma plage sans rien modifier
Finalement j'ai trouvé la solution si cela vous intéresse : un tableau qui s'adapte au nombre de ligne et de colonnes en partant de la cellule A1 - cela marche très bien . Bonne soirée
Set rng = Range(Range("A1"), Range("A1").SpecialCells(xlLastCell))
Set tbl = ActiveSheet.ListObjects.Add(xlSrcRange, rng, , xlYes)
tbl.TableStyle = "TableStyleMedium2"
ActiveSheet.ListObjects(1).Name = "Tableau4"