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

trie / somme / sous total / mise en page

  • Initiateur de la discussion Initiateur de la discussion boby
  • 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 !

B

boby

Guest
Bonjour à tous,

j'ai un nouveau defit
tous les jours et meme plusieurs fois par jours, je part d'une extraction Excel, que je retravaille à la main(ça me prends beaucoup trop de temps)
voici un echantillon du tableau qui est generalement beaucoup plus fourni en lignes

je suis sure que les programmeurs que vous etes voupez me faire gagner du temps en me proposant un code qui puisse partir du fichier "avant" et arriver au fichier "apres"

c'est à dire

1 - mette un fond blanc
2 - trie les colonne par ordre croissant: F G et I
3 - fasse des sous totaux comme indiqué
4 - respecte les couleurs, les mises en forme conditionnelles et la mise en page

je tiens à remercier Jacques , Porcinet et Tito pour l'aide qu'ils m'ont apporté précedemment sur un autre problème


merci à tous pour votre aide

si vous avez des questions n'hesitez pas à me les poser
 

Pièces jointes

Re : trie / somme / sous total / mise en page

re Boby,

Juste pour te dire que j'ai commencer a tafer sur ton classeur, mais j'aurais certainement pas finit ce soir, peut etre demain, donc soit patient...

@+
 
Re : trie / somme / sous total / mise en page

Salut Boby;

Voici une macro qui fait pratiquement ce que tu veux, je n'ai pas mis les tris, mais tu as deja un code sur l'autre fil, et sinon tu n'as qu'a utiliser l'enregistreur de macro, ni les rectangle avec ombre que je n'ai pas mis, mais si tu as envie de t'amuser un peu, ne te gene pas :

PHP:
Sub test()
Dim i&, x&
'mise en gras des colonnes
Range("D:D,M:O,Q:T").Font.Bold = True
'couleur suivant les caractères
For i = 2 To Range("A65536").End(xlUp).Row
    If Cells(i, 4).Value = "S" Then Cells(i, 4).Font.Color = vbRed
    If Cells(i, 19).Value = "UPAID" Then Cells(i, 19).Font.Color = vbRed
    If Cells(i, 20).Value = "X - DONE" Then Cells(i, 20).Font.Color = vbRed
    If Cells(i, 20).Value = "X-MTCH-MACH" Then Cells(i, 20).Font.Color = vbBlue
Next i
'boucle sur les lignes
For i = Range("A65536").End(xlUp).Row To 3 Step -1
    If Not Cells(i, 8).Value = Cells(i - 1, 8).Value Then
        Rows(i & ":" & i + 3).Insert
    End If
Next i
'boucle sur les lignes pour mise en forme
For i = 2 To Range("A65536").End(xlUp).Row + 3
    If IsEmpty(Cells(i, 8)) = True And IsEmpty(Cells(i + 1, 8)) = True Then
        With Cells(i, 8)
            .Value = "Somme " & Cells(i - 1, 8).Value
            .Font.Bold = True
            .Font.Color = vbBlack
            With Cells(i, 10)
                .Value = x
                .Font.Bold = True
            End With
            x = 0
        End With
        With Cells(i + 1, 8)
            .Value = "YESTERDAY HOLDING STOCK POSITION"
            .Font.Bold = True
            .Font.Color = vbBlue
        End With
        With Cells(i + 2, 8)
            .Value = "TODAY HOLDING STOCK POSITION"
            .Font.Bold = True
            .Font.Color = vbBlue
            With Cells(i + 2, 10)
                .Value = Cells(i, 10).Value + Cells(i + 1, 10).Value
                .Font.Bold = True
                If .Value > 0 Then .Font.Color = vbBlue
                If .Value < 0 Then .Font.Color = vbRed
            End With
        End With
    Else
        If Not Cells(i, 9).Value = "" Then x = x + Cells(i, 10).Value
    End If
Next i

With Range("F65536").End(xlUp)(7)
    .Value = "Somme " & Range("F65536").End(xlUp).Value
    .Font.Bold = True
End With
For i = 2 To Range("A65536").End(xlUp).Row
    x = x + Cells(i, 11).Value
Next i
With Range("F65536").End(xlUp).Offset(0, 5)
    .Value = x
    .Font.Bold = True
    .NumberFormat = "#,##0.00 _€"
End With
With Cells
    .Interior.ColorIndex = 2
    .HorizontalAlignment = xlCenter
    .EntireColumn.AutoFit
End With
Rows("2:2").Insert Shift:=xlDown
Rows("2:2").RowHeight = 31.5
With Range("A1:" & Range("IV1").End(xlToLeft).Address(0, 0))
    .Interior.ColorIndex = 34
    .Font.Bold = True
    .RowHeight = 44.25
End With
End Sub

@+
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
2
Affichages
711
Réponses
8
Affichages
699
T
Réponses
0
Affichages
1 K
TimtExcel
T
A
Réponses
6
Affichages
2 K
alain.dutoit
A
O
  • Question Question
Réponses
1
Affichages
1 K
P
Réponses
2
Affichages
2 K
piou14
P
M
Réponses
3
Affichages
1 K
S
Réponses
1
Affichages
934
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…