Sur un changement de mise en forme

Bonjour tout le monde!

Je bute sur un problème depuis plusieurs jours. Je souhaiterais changer la mise en forme d'une base de donnée( fichier "BDD" en pj) afin de lui donner une autre apparence. L'apparence finale voulue est matérialisée dans l'Excel "format voulu" en pj.

J'ai déjà essayé de recourir au TCD, à la fonction transposition aux formules somme si, etc... rien n'y fait je reste bloqué.

Il est compliqué d'expliquer par l'écrit mon problème, les excel en pj seront plus parlant.

Un grand merci d'avance pour vos lumières!

Pierre

3bdd.xlsx (10.24 Ko)

Bonjour et bienvenue

Il manque la pièce jointe ...

Bonjour,

En effet merci, je viens de les up!

Eu égard à la structure de ton fichier, il vaut mieux utiliser PowerQuery for mac.

Comme je n'ai ni mac, ni la connaissance suffisante de PowerQ je préfère laisser ma place.

L'autre solution est de faire une macro.

Salut DUPLAIN, salut Steelson ,

voici un essai en formules que tu peux developper.

explications concérnant la feuille résultat:

1- Colonne A ==> ici on récupère la liste des valeurs uniques des Dossiers

2- plage D2:Q2 ==> on récupère la liste des valeurs uniques des mois

3- céllule B3 ==> une formule avec décalage de 6 céllules, afin de la copier/coller chaque 6ème céllule et elle te récupère le dossier suivant

4- plage D3:Q7 ==> formules pour récupérer les sommes des résultats par mois, par dossier et par type d'entrée

Comment travailler avec ce fichier:

juste en copiant la plage B3:Q7 (ou la dernière plage dans notre exemple B39:Q43) et en la collant 6 céllules aprés B3 c.à.d B9 (ou aprés B39 c.à.d. B45, dans la feuille j'ai coloré ces céllules en vert), Les formules se décaleront automatiquement!

4bdd-v1.xlsx (17.73 Ko)

sinon en vba

1bdd-v1.xlsm (33.02 Ko)

Bonne journée!

Salut DUPLAIN,

Salut Steelson, m3ellem1

je lis des mentions à Mac...

J'espère que ceci ira...

Un double-clic sur la feuille 'BDD' affiche ta mise en forme souhaitée en 'Extract'.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'
Dim tData, lgNum&, iRow%
'
Cancel = True
On Error Resume Next
Application.ScreenUpdating = False
'
tData = Range("C1:G1").Value
Range("A1:G" & Range("A" & Rows.Count).End(xlUp).Row).Sort _
    key1:=Range("B2"), order1:=xlAscending, key2:=Range("A2"), order2:=xlAscending, Orientation:=xlTopToBottom, Header:=xlYes
With Worksheets("Extract")
    .Cells.Delete
    For x = 2 To Range("B" & Rows.Count).End(xlUp).Row
        If CLng(Range("B" & x).Value) <> lgNum Then
            lgNum = CLng(Range("B" & x).Value)
            iRow = .Range("B" & Rows.Count).End(xlUp).Row + 2
            .Range("A" & iRow).Value = lgNum
            .Range("B" & iRow).Resize(5, 1).Value = WorksheetFunction.Transpose(tData)
            .Range("B" & iRow).Resize(5, 13).Borders.LineStyle = xlContinuous
        End If
        iMonth = Month(CDate(Range("A" & x).Value))
        For y = 3 To 7
            If CInt(Cells(x, y)) > 0 Then .Cells(iRow + (y - 3), 2 + iMonth) = .Cells(iRow + (y - 3), 2 + iMonth) + Cells(x, y)
        Next
    Next
    .Activate
    .Columns("A:B").AutoFit
    .Range("C:N").HorizontalAlignment = xlHAlignCenter
    .Range("C1:N1").HorizontalAlignment = xlCenterAcrossSelection
    .Range("C1").Value = Year(CDate(Range("A2").Value)) & "  -  Totaux d'entrées par mois"
    .Range("C1").Font.Bold = True
    .Range("C1").Font.Size = 16
    .Range("C2").Resize(1, 12).Value = Array("Janv.", "Fév.", "Mars", "Avr.", "Mai", "Juin", "Juil.", "Août", "Sept.", "Oct.", "Nov.", "Déc.")
    .Range("C1").Resize(1, 12).Interior.ColorIndex = 45
    .Range("C2").Resize(1, 12).Interior.ColorIndex = 15
    .Range("C1:N2").Borders.LineStyle = xlContinuous
    .Range("C1:N2").BorderAround Weight:=xlMedium
    ActiveWindow.FreezePanes = False
    .Range("A3").Select
    ActiveWindow.FreezePanes = True
End With
'
Application.ScreenUpdating = True
On Error GoTo 0
'
End Sub

A+

0duplain.xlsm (23.23 Ko)
Rechercher des sujets similaires à "changement mise forme"