Une somme avec plusieurs paramètres

Bonjour à tous,
J'ai à nouveau besoin de votre aide. J'ai fait un tableur pour vous expliquer, que je mets en PJ.

Je souhaiterai faire une somme : j'ai des tickets qui sont numérotés : 1er numéro = numéro du carton, 2ème numéro = numéro de la feuille, 3ème numéro = position du ticket sur la feuille.

J'ai un nombre de tickets à donner par jour. J'aimerai connaitre rapidement le dernier numéro à donner dès que je renseigne le nombre de coupons souhaités et le numéro du premier ticket donné.
Je ne sais pas du coup comment faire.

En vous remerciant

bonjour,

une proposition à tester

Bonjour à tous,

une proposition par fonction personnalisée: Dans un module standard :

Function NumTicket(Num1, Nb)
Dim T1, i As Integer
T1 = Split(Num1, "-")

For i = 1 To Nb - 1
    T1(2) = T1(2) + 1
    If T1(2) > 8 Then
        T1(2) = 1
        T1(1) = T1(1) + 1
        If T1(1) > 999 Then
            T1(1) = 1
            T1(0) = T1(0) + 1
        End If
    End If
Next

NumTicket = Format(T1(0), "0000") & "-" & Format(T1(1), "000") & "-" & T1(2)

End Function

et dans la cellule C6:

=NumTicket(C5;C3)

A+

Bonjour le fil, bonjour le forum,

Évidemment quand on passe derrière les balèzes on a l'air c**. Mais bon, ça ne me change pas tellement que ça... Alors j'y vais de ma proposition avec une événementielle Change :

Private Sub Worksheet_Change(ByVal Target As Range) 'au changement dans l'onglet
If Target.Address <> "$C$3" Then Exit Sub 'si le changement a lieu ailleurs que dans la cellule C3, sort de la procédure
Dim N As Integer 'déclare la variable N (Nombre)
Dim PN As String 'déclare la variable PN (Premier Numéro)
Dim NC As Integer 'déclare la variable NC (Numéro de Carton)
Dim NF As Integer 'déclare la variable NF (Numéro de Feuille)
Dim NT As Integer 'déclare la variable NT (Numéro de Ticket)
Dim NNT As Integer 'déclare la variable NNT (Nouveau Numéro de Ticket)
Dim NNF As Integer 'déclare la variable NNF (Nouveau Numéro de Feuille

N = CInt(Range("C3").Value) 'de'finit le nombre N
PN = Range("C5").Value 'définit le premier numéro PN
NC = CInt(Split(PN, "-")(0)) 'récupère le numéro de carton NC
NF = CInt(Split(PN, "-")(1)) 'récupère le numéro de feuille NF
NT = CInt(Split(PN, "-")(2)) 'récupère le numéro de ticket NT
NNT = IIf((NT + N) Mod 8 = 1, 8, ((NT + N) Mod 8) - 1) 'définit le nouveau numéro de ticket NNT
NNF = IIf(N Mod 8 = 0, (NF - 1) + (N \ 8), NF + (N \ 8)) 'définit le nouveau numéro de feuille NNF
If NNF > 99 Then NNF = NNF - 999: NC = NC + 1 'si le nouveau numéro de feuille est supérieur à 999, redéfint NNF et NC
Range("C6").Value = Format(NC, "0000") & "-" & Format(NNF, "000") & "-" & NNT 'renvoie dans C6 le dernier numéro au bon format
End Sub

Bonjour à tous,

Merci pour vos réponses.
Je ne comprends rien en VBA donc je suis partie sur la réponse de H2S04. ça a l'air de fonctionner.
Merci beaucoup

Bonne journée

Rechercher des sujets similaires à "somme parametres"