Aller en bas d'un tableau qui comporte des lignes blanches

Bonjour,

Tous les mois, je dois mettre en forme un tableau dont des données viennent s'ajouter (par catégorie de contrats, soit type A, soit type B), le nombre de lignes augmente donc chaque mois. A noter : il peut y avoir un nouveau type de contrat qui apparaît.

Le problème c'est que je n'ai pas de colonne où les données sont en continues et j'ai des cellules vierges dans mon tableau.

Je n'arrive donc pas à utiliser une formule qui va "jusqu'à la fin de mon tableau - UTIL".

Est-il possible, dans une colonne, de définir la fin du tableau même lorsqu'il y a des cellule vierge à l'intérieur de celle-ci ?

Autrement, existe-t-il une formule qui puisse faire "Ctrl+A" (soit sélectionner la totalité d'un tableau) quand je sélectionne une cellule à l'intérieur d'un tableau ?

Pour le moment, j'ai noté la formule suivante (que je modifie manuelle pour faire correspondre à la dernière ligne de mon tableau) :

'Se mettre en A4 et mettre sous forme de tableau

Cells(4, 1).Select

ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$4:$M$28"), , xlYes).Name = _

"Tableau4"

Range("Tableau4[#All]").Select

ActiveSheet.ListObjects("Tableau4").TableStyle = "TableStyleMedium9"[/b]

PS : onglet 1 : document mis en page - ongle 2 : macro - onglet 3 : document d'origine.

Merci par avance pour votre réponse.

14liste-contrat.xlsm (50.56 Ko)

Bonjour toutes et tous

Je n'ai pas trop bien compris, tu démarres de quel onglet de ton classeur et pour faire quoi à la sortie, il y a 3 onglets

  • Liste_contrat_aidé
  • Macro
  • ORIGINAL

J'ai mis ce que, je pense ci-joint, mais il faudra améliorer le code car, pour l'instant, je n'ai pas trop compris l'histoire des cellules vides des lignes vides de l'onglet ORIGINAL je vois qu'il y en a des lignes vides après, pas trop compris

sorry

EDIT : bouton 2 ' Mise en page tableau' fonctionnel de l'onglet Macro, il restera à l'améliorer car trop de select

Bonjour,

Travailler avec un tableau (structuré) impose de ne pas avoir de lignes vides.

Une proposition à étudier.

Cdlt.

Option Explicit

Public Sub Create_Table()
Dim ws As Worksheet, lastRow As Long, rw As Long, rng As Range
    Application.ScreenUpdating = False
    Set ws = Worksheets("ORIGINAL")
    With ws
        lastRow = .Cells(.Rows.Count, 5).End(xlUp).Row
        Set rng = .Cells(3, 1).Resize(lastRow - 2, 6).SpecialCells(xlCellTypeBlanks)
        rng.FormulaR1C1 = "=R[-1]C"
        Set rng = .Cells(3, 1).Resize(lastRow - 2, 6)   '!?
        rng.Value = rng.Value
        For rw = lastRow To 3 Step -1
            If .Cells(rw, 7) = "" Then .Rows(rw).Delete
        Next rw
        lastRow = .Cells(.Rows.Count, 5).End(xlUp).Row
        .ListObjects.Add(xlSrcRange, .Cells(2, 1).Resize(lastRow - 1, 13), , xlYes).Name = "Tableau1"
    End With
End Sub

bonjour à tous

le plus simple pour travailler avec les plages comportant des lignes vierges, c'est de travailler une plage en déclarant 1000 lignes (ou 10 000 si besoin pour être certain que toute nouvelle ligne sera prise en compte même dans 10 ans)

ça alourdit un peu les temps de calcul, mais c'est hyper simple et hyper fiable

Bonjour toutes et tous

Je n'ai pas trop bien compris, tu démarres de quel onglet de ton classeur et pour faire quoi à la sortie, il y a 3 onglets

  • Liste_contrat_aidé
  • Macro
  • ORIGINAL

J'ai mis ce que, je pense ci-joint, mais il faudra améliorer le code car, pour l'instant, je n'ai pas trop compris l'histoire des cellules vides des lignes vides de l'onglet ORIGINAL je vois qu'il y en a des lignes vides après, pas trop compris

sorry

EDIT : bouton 2 ' Mise en page tableau' fonctionnel de l'onglet Macro, il restera à l'améliorer car trop de select

Bonjour Andre13,

J'ai mis l'onglet ORIGINAL pour montrer les données brutes telles qu'elles apparaissent depuis Access.

Après avec mon onglet macro je supprime la page 1 (Liste contrat aidé) et avec la 2ème macro je mets en page.

Je vais tester ta proposition dès que j'ai plus de temps.

Un grand merci pour ta réponse.

Bonjour,

Travailler avec un tableau (structuré) impose de ne pas avoir de lignes vides.

Une proposition à étudier.

Cdlt.

Option Explicit

Public Sub Create_Table()
Dim ws As Worksheet, lastRow As Long, rw As Long, rng As Range
    Application.ScreenUpdating = False
    Set ws = Worksheets("ORIGINAL")
    With ws
        lastRow = .Cells(.Rows.Count, 5).End(xlUp).Row
        Set rng = .Cells(3, 1).Resize(lastRow - 2, 6).SpecialCells(xlCellTypeBlanks)
        rng.FormulaR1C1 = "=R[-1]C"
        Set rng = .Cells(3, 1).Resize(lastRow - 2, 6)   '!?
        rng.Value = rng.Value
        For rw = lastRow To 3 Step -1
            If .Cells(rw, 7) = "" Then .Rows(rw).Delete
        Next rw
        lastRow = .Cells(.Rows.Count, 5).End(xlUp).Row
        .ListObjects.Add(xlSrcRange, .Cells(2, 1).Resize(lastRow - 1, 13), , xlYes).Name = "Tableau1"
    End With
End Sub

Bonjour Jean-Eric,

Je vais tester ta proposition dès que possible.

Un grand merci pour ton aide.

bonjour à tous

le plus simple pour travailler avec les plages comportant des lignes vierges, c'est de travailler une plage en déclarant 1000 lignes (ou 10 000 si besoin pour être certain que toute nouvelle ligne sera prise en compte même dans 10 ans)

ça alourdit un peu les temps de calcul, mais c'est hyper simple et hyper fiable

Bonjour jmd,

Très bonne idée, merci

bonjour à tous

le plus simple pour travailler avec les plages comportant des lignes vierges, c'est de travailler une plage en déclarant 1000 lignes (ou 10 000 si besoin pour être certain que toute nouvelle ligne sera prise en compte même dans 10 ans)

ça alourdit un peu les temps de calcul, mais c'est hyper simple et hyper fiable

Bonjour jmd,

Très bonne idée, merci

Bonjour,

Rechercher des sujets similaires à "aller bas tableau qui comporte lignes blanches"