Aide pour tableau commission

Bonsoir GMB, bonsoir le forum,

GMB, suite à l'embauche d'un salarié, j'ai enfin pu mettre en place le tableau que tu m'a aidé à finaliser comme je voulais.

Ta V6 qui se trouve en pièce jointe.

Cependant je viens de remarquer que le tableau s'agrandit bien tout seul lorsque j'atteint la 13e ligne, par contre la ligne 16 et 17 n'integre pas les lignes des nouveaux chantier inscrit au dela de la ligne 13. Ton code est trop compliqué pour mon cerveau, j'ai tenté de fouiner dedans mais je n'ai fait que des betises.

Pourrais tu m'aide stp?

J'ai aussi remarquer que j'ai absolument besoin que le tableau contienne de janvier 2015 à decembre 2017. actuellement, lorsque je rentre un chantier, il affiche les commissions seulement jusqu'à decembre 2015.

Comment faire pour que tous les mois d'après soit aussi rempli par l'ajout d'un nouveau chantier?

Si je rentre un chantier le 15/01/2016 il me l'inscrit en janvier 2015.

Merci d'avance pour ton aide qui m'est vraiment preciseuse.

Bonjour

Nouvelle version à tester.

A y être, j'ai mis des formules dans la ligne 1 à partir de la cellule i1. Cela te permettra d'ajouter des années ou d'en supprimer.

A noter toutefois que la cellule H1 doit avoir la date du 1er janvier de la 1ère année (ex : 1/01/2015) puisque toutes les autres dates, à sa droite sur la ligne, en dépendent.

Cela te convient-il ?

Bye !

Bonsoir GMB bonsoir tous le monde.

Cette V7 est super par contre, lorsque je rentre un chantier par exemple le 01/01/2015 j'ai besoin que la commission se remplisse jusqu'à dec 2018 et non jusqu'a dec 2015. idem si je rentre un chantier le 05 janvier 2016, j'ai besoin que la comm se remplisse jusqu'à decembre 2018.

Je ne comprend pas beaucoup ton code, il est vachement compliqué. merci de ton aide precieuse GMB

Bonjour

Nouvelle version à tester.

Bye !

Bonjour GMB bonjour le Forum,

Je viens de tester la V8.

je rencontre les soucis suivants :

Le chantier 16 rue test à était démonté le 01/08/2015, la commission de 0.50 centimes s'inscrit en decembre 2018 et non en aout 2015. et ca m'affiche les commissions en 2016, 2017 et 2018 alors qu'elle devrait s'arreter en aout 2015.

Le chantier 17 rue test à était démonté le 02/02/2016, la commission de 1 euro se met aussi en decembre 2018, et m'efface les commissions des mois de 2015.

En regardant ton tableau tu comprendra + que mois. ce soir je vais fouiner ton code pour le comprendre un peu mieux.

Merci en tous cas de ton aide.

Ptite questions? tu te situe dans quel région de la France?

Bonjour

Nouvel essai

Bye !

BOnjour GMB bonjour tous le monde.

Merci pour cette V9 qui me semble parfaite.

Je suis en train de tester des installations chaque mois, et des demontes, pour voir si tout est fonctionnel, pour l'instant c'est nickel, merciiiii beaucoup GBM pour ton aide.

Je vais embaucher un nouveau commercial en janvier 2017. Du coup je vais avoir besoin de lui creer un classeur pour lui, mais qui debutera en 2017. Quel sera la manip à faire pour que le tableau debute en 2017 et non en 2015?

Ptite question : en ligne 14 puis-je effacer les cellules en jaune?

Merci

Il me semble que je t'ai déjà donné la réponse par avance.

En détaillant :

• Tu sélectionnes les colonnes H à S et tu les supprimes : Alt + S

• Tu effaces la cellule de la colonne H qui correspond à la rubrique : ‘’ Commissions versées en fin de mois’’

• Tu saisies en H1 la date du 1er janvier de la nouvelle année du tableau :1/1/2016 par exemple et toutes les autres dates se mettront à jour.

Et si tu veux ajouter une année à la droite du tableau, tu sélectionnes la dernière colonne de décembre et tu tires vers la droite sur 12 colonnes

OK ?

Bye !

Bonjour GMB bonjour le forum,

Ta V9 est parfaite merciiiiiiii infiniment !!!

Bonsoir GMB, bonsoir tous le monde.

Désolé pour cette modif, mais J'ai dû inserer une ligne, car j'ai pas mal de bouton à rajouter en ligne 1.

Je doit remplacer quoi dans ton code? Après cette modif, je n'aurais plus rien à faire. Merci encore.

Option Explicit

Dim ln&, lgn&, i&, j&, rep, cell As Range, flag&, col&, colDem&

Dim dteD As Date, dteF As Date, colD&, colF&

Private Sub CommandButton1_Click()  'Bouton créer un nouveau chantier

    If TextBox2 = "" Or TextBox3 = "" Or TextBox4 = "" Or TextBox5 = "" Then
        MsgBox "Saisie incomplète.", 16
        Exit Sub
    End If

    lgn = Range("A" & Rows.Count).End(xlUp)(2).Row

    'On vérifie les saisies
    flag = 0
    For i = 2 To 5
        Controls("Label" & i).ForeColor = RGB(0, 0, 0)
        If Controls("TextBox" & i) = "" Then
            flag = 1
            Controls("Label" & i).ForeColor = RGB(255, 0, 0)
        End If
    Next i
    If flag = 1 Then
        MsgBox "Saisie incomplète.", 16
        Exit Sub
    End If

    'On vérifie si les données saisies ne font pas l'objet d'une ligne dans le tableau
    flag = 0
    For ln = 2 To lgn
        If (TextBox1 = "" Or Range("A" & ln) = TextBox1) _
                And Range("B" & ln) = TextBox2 _
                And Range("C" & ln) = TextBox3 _
                And Range("D" & ln) = TextBox4 * 1 _
                And Range("E" & ln) = CDate(TextBox5) Then
            flag = 1
            Exit For
        End If
    Next ln

    If flag = 1 Then
        'Cas où les données saisies existent déjà sur une ligne du tableau
        Label8.Visible = True
        TextBox1 = Range("A" & ln)
        TextBox1.Visible = True
        MsgBox "Ce chantier existe déjà." & Chr(13) & Chr(13) & _
                "Vous ne pouvez que le modifier.", 16
        CommandButton1.Enabled = False
        Exit Sub
    Else
        'Cas où on doit écrire les saisies sur une nouvelle ligne
        If lgn = 2 Then
            Range("A" & lgn) = 1
        Else
            If Left(Range("E" & lgn + 2), 6) = "Total " Then
                'Cas où le tableau est plein ; on insere une ligne
                Rows(lgn & ":" & lgn).Insert shift:=xlDown
                Rows(lgn - 1 & ":" & lgn - 1).Copy
                Rows(lgn & ":" & lgn).PasteSpecial xlPasteFormats
                Application.CutCopyMode = False
            End If
            Range("A" & lgn) = Range("A" & lgn - 1) + 1
        End If
        For j = 2 To 3
            Cells(lgn, j).Value = Controls("TextBox" & j)
        Next j

        Cells(lgn, 4).Value = TextBox4 * 1
        Cells(lgn, 5).Value = CDate(TextBox5)
        If TextBox6 <> "" Then
            Cells(lgn, 6).Value = CDate(TextBox6)
        Else
            Cells(lgn, 6).ClearComments
            Cells(lgn, 6).AddComment
            Cells(lgn, 6).Comment.Visible = False
            Cells(lgn, 6).Comment.Text Text:= _
                "Double cliquer ici pour mettre fin au chantier" & Chr(10) & ""
        End If
    End If

    'Primes
    Call Primes
        MsgBox "Le nouveau chantier a été pris en compte."
        Unload nouveauchantier
End Sub

Sub Primes()

    dteD = Range("E" & lgn)
    flag = 0
    For col = 8 To Cells(1, Columns.Count).End(xlToLeft).Column
        If Month(Range("E" & lgn)) = Month(Cells(1, col)) _
                And Year(Range("E" & lgn)) = Year(Cells(1, col)) Then
            flag = 1
            Exit For
        End If
    Next col
    If flag = 1 Then
        colD = col
    Else
        MsgBox "La date saisie ne figure pas sur le tableau.", 16
        Rows(lgn & ":" & lgn).ClearContents
        End
    End If

    flag = 0
    If Range("F" & lgn) <> "" Then
        dteF = Range("F" & lgn)
    Else
        flag = 1
    End If

    colF = Cells(1, Columns.Count).End(xlToLeft).Column
    For col = colD To colF
        If col = colF Then
            If flag = 0 Then
                Cells(lgn, col).FormulaR1C1 = "=RC[" & 4 - col & "]*(MIN(30,DAY(RC[" & 6 - col & "])))*0.05"
            Else
                Cells(lgn, col).FormulaR1C1 = "=RC[" & 4 - col & "] * 0.05 * 30"
            End If
        ElseIf col > colD And col < colF Then
            Cells(lgn, col).FormulaR1C1 = "=RC[" & 4 - col & "] * 0.05 * 30"
        ElseIf col = colD Then
            Cells(lgn, col).FormulaR1C1 = "=RC[" & 4 - col & "]*(30 - DAY(RC[" & 5 - col & "]))*0.05"
        End If
    Next col
End Sub
Private Sub CommandButton2_Click()  'Bouton Fermer
    Unload Me
End Sub

Private Sub CommandButton3_Click()  'Bouton Modifier le chantier

    Label1.Caption = Chr(13) & "Modifier un chantier"
    Label8.Visible = True
    TextBox1.Visible = True
    CommandButton1.Enabled = False
    If TextBox1 = "" Then
        If TextBox2 = "" Or TextBox3 = "" Or TextBox4 = "" Or TextBox5 = "" Then
            MsgBox "Saisie incomplète." & Chr(13) & _
                    "Vous devez saisir le n° du chantier ou tous les autres champs.", 16
            Exit Sub
        End If
    End If
    Set cell = Range("A:A").Find(TextBox1, lookat:=xlWhole)
    If Not cell Is Nothing Then
        ln = cell.Row
        For j = 2 To 3
            Cells(ln, j).Value = Controls("TextBox" & j)
            Controls("TextBox" & j) = ""
        Next j
        Cells(ln, 4).Value = Controls("TextBox" & 4) * 1
        Controls("TextBox" & 4) = ""
        Cells(ln, 5).Value = CDate(Controls("TextBox" & 5))
        Controls("TextBox" & 5) = ""
        If TextBox6 <> "" Then
            Cells(ln, 6).Value = CDate(Controls("TextBox" & 6))
            Controls("TextBox" & 6) = ""
        End If
        TextBox1 = ""
        TextBox1.Visible = False
        Label8.Visible = False
        Range("H" & ln & ":S" & ln).ClearContents
        lgn = ln
        Call Primes
        MsgBox "Les données du chantier " & Range("A" & ln) & " ont été modifiées."
        Unload nouveauchantier
    Else
    End If
End Sub

Private Sub CommandButton4_Click() 'Bouton Demonte Chantier

    'On regarde s'il existe un chantier défini par les 4 1ers TextBox
    If TextBox2 <> "" And TextBox2 <> "" And TextBox3 <> "" And TextBox4 <> "" Then
        flag = 0
        For i = 2 To Range("A" & Rows.Count).End(xlUp).Row
            If Range("B" & i) = TextBox2 And Range("C" & i) = TextBox3 _
                    And CStr(Range("D" & i)) = TextBox4 And Range("E" & i) = CDate(TextBox5) Then
                Label8.Visible = True
                TextBox1.Visible = True
                TextBox1 = Range("A" & i)
                flag = 1
            End If
        Next i
        If flag = 0 And TextBox1 = "" Then
            MsgBox "Ce chantier n'est pas installé.", 16
            Exit Sub
        End If
    End If
    If TextBox6.Visible = False Then
        Label6.Visible = True
        Label7.Visible = True
        Label8.Visible = True
        TextBox1.Visible = True
        TextBox6.Visible = True
        CommandButton1.Enabled = False
        CommandButton3.Enabled = False
    Else
        If TextBox6 = "" Then
            Label6.Visible = False
            Label7.Visible = False
            TextBox6.Visible = False
            CommandButton1.Enabled = True
            CommandButton3.Enabled = True
        Else
            Range("F" & lgn) = CDate(TextBox6)
            MsgBox "La dépose du chantier a été prise en compte"
            Call Primes
            For j = 8 To Cells(1, Columns.Count).End(xlToLeft).Column
                If Cells(1, j) = DateSerial(Year(CDate(TextBox6)), Month(CDate(TextBox6)), 1) Then
                    Exit For
                End If
            Next j
            Range(Cells(lgn, j + 1), Cells(lgn, Cells(1, Columns.Count).End(xlToLeft).Column)).ClearContents

            'On prorate la prime du jour de dépose
            Cells(lgn, j).FormulaR1C1 = "=RC4*(30 - DAY(RC6))*0.05"
            Unload nouveauchantier
            nouveauchantier.Show
        End If
    End If
End Sub

Private Sub TextBox1_Change()
    Set cell = Range("A2:A" & Range("A" & Rows.Count).End(xlUp).Row).Find(TextBox1)
    If Not cell Is Nothing Then
        lgn = cell.Row
        For i = 2 To 6
            Controls("TextBox" & i) = Cells(lgn, i)
        Next i
        Exit Sub

    ElseIf TextBox1 <> "" Then
        MsgBox "Il n'y a pas de chantier qui porte ce numéro.", 16
        Exit Sub
    End If

End Sub

Private Sub TextBox2_Change()
    TextBox2 = UCase(TextBox2)
End Sub

Private Sub TextBox6_Change()
    CommandButton4.Enabled = True
End Sub

Private Sub UserForm_Initialize()
    Label6.Visible = False
    Label7.Visible = False
    TextBox6.Visible = False
    CommandButton4.Enabled = False
End Sub
Rechercher des sujets similaires à "aide tableau commission"