Macro : adapter mise en forme d'un tableau aux données (lignes en plus)

Bonjour,

je suis convaincu que ce sujet a du maintes fois être traité dans ces forums, mais je n'ai pas trouvé réponse à mon problème.

J'ai créé une macro simple en utilisant la mise en forme automatique d'un tableau (voir p.j. 1) pour présenter des résultats issus de l'intranet de mon entreprise.

Cependant, ces informations n'étant jamais au même nombre, les lignes en plus que celles enregistrées dans la macro ne sont pas prises en compte dans la mise en forme (voir p.j. 2).

J'ai bien compris lorsque je regarde la macro que la taille du tableau est "figée" grâce au symbole "$" :

image

J'ai trouvé sur internet des solutions qui préconisent une vérification de la dernière ligne de la feuille jusqu'à la dernière ligne "écrite", mais je n'ai pas trouvé comment l'adapter à cette petite macro.

Quelqu'un aurait cette astuce, svp ?

Merci d'avance.

Cordialement.

Trouns

Désolé pour mon langage peut-être mal adapté au problème.

Trouns

Bonjour Trouns, le forum,

Tu utilises un tableau structuré, donc en cas d'ajout de lignes, la mise en forme, les formules doivent automatiquement être reproduites.

Comment ajoutes-tu ces lignes ? Manuellement ? Par macro ?

Il semblerait que tu écrives tes données en dehors du tableau.....

Cordialement,

Bonjour,

xorsankukai :

Modifie ta macro comme suit :

Sub Galopin()
   ActiveSheet.ListObjects.Add(xlSrcRange, Range(Range("A1").CurrentRegion.Address), , xlYes).Name = "TBD"
   ActiveSheet.ListObjects("TBD").TableStyle = "TableStyleMedium9"
End Sub

Et applique cette macro aux données brutes.

5trouns.xlsm (20.94 Ko)

EDIT : Sorry... ça ne s'applique qu'au premier fichier. Après il faut savoir si on sera toujours en mode ajout ou s'il risque d'y avoir des doublons...

A+

Bonjour galopin01 ,

j'avais compris que le Tableau1 existait déjà....., mais effectivement, en regardant le code de plus près....

Merci pour la solution,

Amitiés,

Mais ta question est pas bête : Il faut non seulement savoir si on va récupérer des doublons mais aussi comment se fait l'importation car de fait un simple copier/Coller de données devrait agrandir le TS...

A+

Bonjour à toutes et tous,

Pour le fun !...

Cdlt.

Sub Jean_Eric()
Dim lo As ListObject
    Set lo = ActiveSheet.ListObjects.Add(xlSrcRange, Cells(1).CurrentRegion, , xlYes)
    With lo
        .Name = "TBD"
        .TableStyle = "TableStyleMedium9"
    End With
End Sub

Bonjour et merci à tous pour votre réactivité !

J'ai omis de préciser qu'à chaque extraction intranet, mon fichier possède des données différentes (et donc pas de doublons) et qu'il est sous format .csv .

Je vais tester vos différentes propositions et vous tiens au courant.

Encore merci !

Cordialement,

Trouns

Le tableau TBD étant supposé créé et le CSV étant supposé importé dans une feuille nommée ImportCSV,

La macro suivante fait l'ajour dans la BD.

Les données de la feuille ImportCSV peuvent ensuite être supprimées et la feuille peut resservir la prochaine fois...

Sub AddNewReg()
   Dim rng As Range
   Set rng = Worksheets("ImportCSV").Range("A1").CurrentRegion
   rng.Copy ActiveSheet.Cells([TBD].Rows.Count + 2, 1)
End Sub
15trouns-v2.xlsm (24.16 Ko)

A+

Bonjour et merci à vous tous, grâce à vos conseils j'ai pu résoudre mon problème.

Chapeau !

Cordialement.

Trouns

Bonjour,

Le sujet est clos, mais ...

@Galopin01,

Que se passe-t-il si TBD est vide ?

Ta copie s'effectue hors table.

Bonne journée.

Cdlt.

Rechercher des sujets similaires à "macro adapter mise forme tableau donnees lignes"