Autres Mise en forme particulière

eric57

XLDnaute Occasionnel
Bonjour le Forum

Je cherche à mettre en forme un fichier excel, mais j'avoue que je patauge.

Je vous met en PJ le tableau avec les 2 pages ( avant après) pour avoir votre aide avec une macro certainement plus simple que mes multiples copier-collé que j'ai tenté de faire.

AVANT c'est la page que je reçois et APRES la façon dont je voudrais la transformer.
 

Pièces jointes

  • demande-excel.xlsx
    22.8 KB · Affichages: 14

Staple1600

XLDnaute Barbatruc
Bonjour @eric57, @chris, @TooFatBoy , le fil

Sans VBA, tout à la souris, modulable à souhait, c'est le TCD
(On peut même ajouter des "cochoncetés": couleurs et cie ;) )
3 exemples ci-dessous
C'est moins bien que PowerQuery mais cela fonctionnera aussi avec Excel 97 ;)
TCD4Ever.png

EDITION: Bonjour @job75
@job75 à dit:

Bonjour eric57, chris, TooFatBoy,
Ah je suis retombé dans la zone d'invisibilité :rolleyes:
 
Dernière édition:

job75

XLDnaute Barbatruc
Bonjour eric57, chris, TooFatBoy,

Une solution avec cette macro dans le code de la 2ème feuille :
VB:
Private Sub Worksheet_Activate()
Dim i&, ncol%
Application.ScreenUpdating = False
If FilterMode Then ShowAllData 'si la feuille est filtrée
Cells.Delete 'RAZ
With Sheets(1) '1ère feuille, à adapter éventuellement
    .[A1].CurrentRegion.Copy [A1] 'copier-coller
    Rows(1).RowHeight = .Rows(1).RowHeight 'copie la hauteur
    Rows(2).RowHeight = .Rows(2).RowHeight 'copie la hauteur
End With
With [A1].CurrentRegion
    ncol = .Columns.Count
    If ncol > 3 Then
        If .Rows.Count > 1 Then .Offset(1).Resize(.Rows.Count - 1).Sort .Columns(1), xlAscending, .Columns(2), , xlAscending, Header:=xlYes 'tri sur 2 colonnes
        For i = .Rows.Count To 3 Step -1
            If .Cells(i, 1) <> .Cells(i - 1, 1) And .Cells(i, 2) <> .Cells(i - 1, 2) Then
                .Rows(i).EntireRow.Insert 'insère une ligne
                .Cells(i, 4) = .Cells(i + 1, 1) & " " & .Cells(i + 1, 2) & " " & Format(.Cells(i + 1, 3), "dd/mm/yyyy")
                '---mises en forme---
                With .Cells(i, 4).Resize(, ncol - 3)
                    .Merge 'fusionne
                    .HorizontalAlignment = xlCenter
                    .VerticalAlignment = xlCenter
                    .Font.Bold = True
                    .Interior.Color = RGB(146, 208, 80) 'vert
                    .RowHeight = 25
                End With
            End If
        Next
    End If
End With
Columns("A:C").Delete 'supprime les 3 colonnes
Columns.AutoFit 'ajuste les largeurs
End Sub
Elle se déclenche quand on active la feuille.

A+
 

Pièces jointes

  • demande-excel(1).xlsm
    26.1 KB · Affichages: 1

Discussions similaires

Statistiques des forums

Discussions
312 237
Messages
2 086 489
Membres
103 234
dernier inscrit
matteo75654548