Découper un tableau

Bonjour à tous,

J'ai un immense tableau que j'aimerais découper en horizontal au niveau de certaines lignes "paliers" et insérer chaque tableau découpé dans un onglet. Je veux automatiser ce découpage en fonction du choix de l'utilisateur sur le nombre de lignes "paliers" par tableau découpé, car j'ai régulièrement des tableaux de cette forme à exploiter.

Ces lignes "paliers" je peux les reconnaître de vue car leur cellule de la colonne B a pour texte "Arrêt : bdlso1" , le nom de l'arrêt change en fonction des lignes. Ces lignes "Arrêts : ..." sont toutes les 10 lignes (ligne 4,14,24...) mais le problème est que parfois et aléatoirement selon les tableaux, il y a une ligne "palier" avec non pas "Arrêt:..." mais "Synthèse tronçon"...

J'aimerais que l'utilisateur puisse chosir combien d'arrêts il veut par tableau découpé (les "Synthèse tronçon" ne doivent pas être comptées comme ligne "palier" mais dépendent de la ligne "palier - Arrêt" du dessus).

Voici un extrait en pièce jointe du tableau :

Peut - être avez-vous une piste ?

Bonne journée, cordialement

Bonjour, bonjour !

Avec un exemple pertinent de choix de l'utilisateur et d'un classeur résultat, cela aiderait …

Bien je me fixe entre 2 et 25 arrêts par tableau découpé (=section)... Pour cet exemple je peux choisir 10 arrêts du coup.

Ne serait-ce pas plus logique de découper par tronçon ?

Et comme déjà indiqué, sans exemple de classeur résultat …

Oui, voici un exemple si l'utilisateur a choisi 10 arrêts par tableau.

Non les tronçons sont des découpages arbitraires que je ne veux pas prendre en compte.

Ici 10 arrêts n'est pas forcément pertinent mais je veux que ce soit possible dans la logique...

Bonjour

Emma Bou a écrit :

en fonction du choix de l'utilisateur sur le nombre de lignes "paliers"[/surligner]s"

et plus loin

que l'utilisateur puisse chosir combien d'arrêts il veut par tableau découpé

On s'y perd, sans exemple...

Bye !

Pardon... bah les lignes-paliers ce sont celles - ci :

Ce sont les lignes où il y a marqué "Arrêt:..." et dont le numéro de ligne se termine par 4...

extrait tableau

Pourquoi le tableau 4 n'a pas d'en-tête comme les autres, une erreur ?

Oui c'est un oubli dsl

D'accord !

En activant depuis la feuille de calculs l'Enregistreur de macros pour rechercher un arrêt

puis en copiant / collant des cellules, le squelette du code est livré en moins d'une minute !

En ayant préalablement réfléchi à la détection du début et de la fin d'une plage à copier,

l'écriture du code final ne doit pas prendre plus de cinq minutes en nettoyant le code généré …

A tout de suite !


Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 05/02/2015 par Marc L
'

'
    Const NA = 10
    Dim Rg As Range

    With Feuil1.Cells(1).CurrentRegion
           Set Rg = .Columns(2).Find("Arrêt :", , , xlPart).Offset(1)
        If Not Rg Is Nothing Then
            Application.ScreenUpdating = False
                                    D& = 2
                                    R& = Rg.Row - 1
            Do
                   E% = Rg.Row = R
                   N% = N% + 1
                If N > NA Or E Then
                    T% = T% + 1
                    F& = IIf(E, .Rows.Count, Rg.Row - 1 + (Rg.Offset(-1).Value Like "Tronçon :*"))
                    S$ = "Tableau " & T
                    If Evaluate("ISREF('" & S & "'!A1)") Then Worksheets(S).UsedRange.Clear _
                                                         Else Worksheets.Add(, Worksheets(Worksheets.Count)).Name = S
                     Union(.Rows(1), .Rows(D & ":" & F)).Copy Worksheets(S).Cells(1)
                    If E Then Set Rg = Nothing: Exit Do
                    D = F + 1
                    N = 1
                End If

                Set Rg = .Columns(2).FindNext(Rg.Offset(-(Rg.Row Mod 4 > 0)))
            Loop
        End If
    End With
End Sub

Ouaou, merci beaucoup je vais essayer ça tout de suite


J'ai un peu de mal à nettoyer le code, faut que je cherche un peu et je tiens au courant.

« Nettoyer le code » ?‼ Mais il l'est déjà !

Et il fonctionne de mon côté tel quel dans différentes versions d'Excel avec ton deuxième classeur joint …

Rechercher des sujets similaires à "decouper tableau"