Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Mise en forme spécifique en tableau

anber

XLDnaute Occasionnel
Bonsoir le Forum,

Comment mettre en forme via vba des données en tableau, avec création d'un tableau à chaque changement de valeur d'une colonne dédiée.
Ci-joint un fichier exemple avec résultat à obtenir.

Merci
 

Pièces jointes

  • test_insert.xlsx
    12 KB · Affichages: 16

vgendron

XLDnaute Barbatruc
Hello
un essai avec ce code
VB:
Sub Macro1()
'
    With Sheets("base")
        fin = .Range("A" & .Rows.Count).End(xlUp).Row
        Debut = 2
        Numtab = 1
        i = 2
        While i <= fin
           
            If Cells(i, 2) <> Cells(i + 1, 2) Then
                Rows(1).Copy
                Rows(i + 1).Insert shift:=xlDown
                Rows(i + 1).Insert shift:=xlDown
               
                'Range("A" & Debut & ":G" & i).Select
                ActiveSheet.ListObjects.Add(xlSrcRange, Range("A" & Debut - 1 & ":G" & i), , xlYes).Name = "Tableau" & Numtab
                Debut = i + 3
                Numtab = Numtab + 1
                i = i + 3
                fin = fin + 2
            Else
                i = i + 1
            End If
        Wend
        .Rows(fin).Delete
    End With
End Sub
 

anber

XLDnaute Occasionnel
Bonsoir vgendron
Merci pour ta réponse
Pour aller encore plus loin

Comment écrire le résultat dans une autre feuille ?
Ne pas avoir de filtre sur les entêtes ?
De n'avoir les entêtes que sur le 1er tableau
2 lignes de séparations entre chaque tableau

Encore Merci

 

Staple1600

XLDnaute Barbatruc
Re

Et comme cela alors?
VB:
Sub a()
Dim i As Long, rng As Range
Set rng = Sheets("base").UsedRange
For i = rng.Count To 2 Step -1
    If rng.Cells(i, 2).Value <> rng.Cells(i - 1, 2).Value Then
        rng.Cells(i, 1).Resize(2).EntireRow.Insert
    End If
Next
Sheets("base").Rows("2:3").Delete
End Sub
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…