Autres Mise en forme particulière

  • Initiateur de la discussion Initiateur de la discussion eric57
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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é 🙄
 
Dernière édition:
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

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
200
Réponses
2
Affichages
154
Réponses
1
Affichages
112
Retour