Macro tri automatique

Bonjour à tous.

Je tente de me faire un petit fichier de comptabilité perso (pour apprendre quelques macros qui mes serviront à d'autres fins).

J'ai mis une trame en pièce jointe.

Ce que j'aimerai faire (je pense que les macros sont incontournables):

- dans les onglets "mois", je rentre les opérations sur la dernière ligne vide (avec pour chaque appuie sur la touche "entrée", la cinématique suivante s'opère dans l'exemple :A14, B14, C14, D14, E14, F14). Lorsque je valide la case F14, la ligne de l’opération se classe dans le tableau dessus par rapport à la date. (bien sur en gardant la "mise en page" des lignes (alternance de couleur)

- Les données rentrées dans l'onglet "mensualisation" doivent sur action de ma part (bouton par exemple), s'incrémenter sur le mois que l'on choisit. (je ne sais pas si c'est clair)

J'en demande peut être beaucoup mais je bloque sur sur ces 2 points. Le fichier final est un peu différent mais je saurais adapter les macros à celui-ci.

Je vous remercie de toute l'aide que vous pourrez m'apporter.

David

22test-david.xlsx (13.68 Ko)

Salut David,

Premier jet à tester en conditions réelles.
- il y a des MFC à copier via le petit pinceau de feuille en feuille en ciblant la feuille entière (coin supérieur gauche de la feuille) ;
- la macro de tri se déclenche lorsque la cellule [H] est complétée ;
- les bordures suivent + 1 ligne pour l'entrée suivant

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
'
If Sh.Name <> "MENSUALISATION" Then
    Application.EnableEvents = False
    With Sh
        If .Range("H" & Target.Row).Value <> "" Then
            .Range("A2:H" & .UsedRange.Rows.Count).Sort key1:=.[A3], order1:=xlAscending, Orientation:=xlTopToBottom, Header:=xlYes
            .Range("A3").Resize(.UsedRange.Rows.Count, 8).Borders.LineStyle = xlLineStyleNone
            For x = 1 To 8
                .Range(Chr(64 + x) & "3:" & Chr(64 + x) & .Range("A" & Rows.Count).End(xlUp).Row + 1).BorderAround LineStyle:=xlContinuous, Weight:=xlMedium
            Next
        End If
    End With
    Application.EnableEvents = True
End If
'
End Sub

Pour insérer les mensualisations, il faut double-cliquer sur la somme ciblée.
Celle-ci se colore de vert, les données sont transférées dans la feuille ad hoc et celle-ci activée pour que tu complètes la ligne.
- j'ai inversé les deux colonnes 'Mode' et 'Débit/Crédit' pour coller à la disposition des feuilles mensuelles ;
- attention à l'orthographe des Mois qui DOIT correspondre aux noms des feuilles, sinon, bardaf

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'
If Not Intersect(Target, Range("E2:P" & Range("A" & Rows.Count).End(xlUp).Row)) Is Nothing And Target.Interior.Color = RGB(255, 255, 255) Then
    Cancel = True
    Target.Interior.Color = RGB(195, 215, 155)
    With Worksheets(CStr(Cells(1, Target.Column)))
        iRowT = .Range("A" & Rows.Count).End(xlUp).Row + 1
        .Range("A" & iRowT).Resize(1, 3).Value = Range("A" & Target.Row).Resize(1, 3).Value
        .Range(IIf(.Range("D" & Target.Row).Value = "Crédit", "D", "E") & iRowT).Value = Target
        .Activate
    End With
End If
'
End Sub
16david.xlsm (29.79 Ko)


A+

Merci beaucoup de cette réponse.

Je regarde cela dès que possible et reviens vers vous.

Excellente journée

David

Rechercher des sujets similaires à "macro tri automatique"