Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Incrémenter valeur VBA

12 réponses
Avatar
François
Bonjour,

Dans le code ci joint, j'essaie de compter le nombre de valeur, puis de
stocker la valeur de la cellule +1, et ensuite de positionner ces valeurs
dans une somme. Je n'y arrive vraiment pas....

Si quelqu'un a une idée :-))

Cordialement,
François

For Departcol = 9 To Derc Step 13
For Each Cel In Range("A4:A" & Derl)
DateD = Cells(1, Departcol)
DateD = CDate(DateD)
Brut = Cells(Cel.Row, 8)
If Cel = "JT" Then
If DateD >= Cells(Cel.Row, 6) And (DateD <= Cells(Cel.Row, 7) Or
Cells(Cel.Row, 7) = "") Then
For i = 1 To Cel.Count
If Month(DateD) = 12 Then
Brut = Brut * 2
ElseIf Month(DateD) = 5 Then
Brut = Brut + (Brut * (1 / 30))
Else
Brut = Brut
End If
Brut = Application.WorksheetFunction.Substitute(Brut, ",", ".")
ici==> Brut = Brut & "" & Brut(i) & "" & ","
Next i
ici==> .Cells(Ligne, 4) = "=sum(" & Brut & ")"

End If

10 réponses

1 2
Avatar
Daniel
Bonjour.
Sans voir l'agencement des données, c'est difficile à comprendre.
Peux-tu mettre un classeur exemple, en effaçant les données confidentielles,
sur www.cjoint.com
Cordialement.
Daniel
"François" a écrit dans le message de news:

Bonjour,

Dans le code ci joint, j'essaie de compter le nombre de valeur, puis de
stocker la valeur de la cellule +1, et ensuite de positionner ces valeurs
dans une somme. Je n'y arrive vraiment pas....

Si quelqu'un a une idée :-))

Cordialement,
François

For Departcol = 9 To Derc Step 13
For Each Cel In Range("A4:A" & Derl)
DateD = Cells(1, Departcol)
DateD = CDate(DateD)
Brut = Cells(Cel.Row, 8)
If Cel = "JT" Then
If DateD >= Cells(Cel.Row, 6) And (DateD <= Cells(Cel.Row, 7)
Or Cells(Cel.Row, 7) = "") Then
For i = 1 To Cel.Count
If Month(DateD) = 12 Then
Brut = Brut * 2
ElseIf Month(DateD) = 5 Then
Brut = Brut + (Brut * (1 / 30))
Else
Brut = Brut
End If
Brut = Application.WorksheetFunction.Substitute(Brut, ",", ".")
ici==> Brut = Brut & "" & Brut(i) & "" & ","
Next i
ici==> .Cells(Ligne, 4) = "=sum(" & Brut & ")"

End If




Avatar
François
Bonjour Daniel,

Je te remercie pour ton aide. Ci joint le fichier en question.
http://cjoint.com/?hnpIh2MOBL
Je reste à ta disposition pour tout complément d'info.

Cordialement.
François
"Daniel" a écrit dans le message de news:

Bonjour.
Sans voir l'agencement des données, c'est difficile à comprendre.
Peux-tu mettre un classeur exemple, en effaçant les données
confidentielles, sur www.cjoint.com
Cordialement.
Daniel
"François" a écrit dans le message de news:

Bonjour,

Dans le code ci joint, j'essaie de compter le nombre de valeur, puis de
stocker la valeur de la cellule +1, et ensuite de positionner ces valeurs
dans une somme. Je n'y arrive vraiment pas....

Si quelqu'un a une idée :-))

Cordialement,
François

For Departcol = 9 To Derc Step 13
For Each Cel In Range("A4:A" & Derl)
DateD = Cells(1, Departcol)
DateD = CDate(DateD)
Brut = Cells(Cel.Row, 8)
If Cel = "JT" Then
If DateD >= Cells(Cel.Row, 6) And (DateD <= Cells(Cel.Row, 7)
Or Cells(Cel.Row, 7) = "") Then
For i = 1 To Cel.Count
If Month(DateD) = 12 Then
Brut = Brut * 2
ElseIf Month(DateD) = 5 Then
Brut = Brut + (Brut * (1 / 30))
Else
Brut = Brut
End If
Brut = Application.WorksheetFunction.Substitute(Brut, ",", ".")
ici==> Brut = Brut & "" & Brut(i) & "" & ","
Next i
ici==> .Cells(Ligne, 4) = "=sum(" & Brut & ")"

End If








Avatar
Daniel
Je ne comprends pas ce que tu fais avec la variable "brut", tu fais des
calculs, et après, tu veux remplacer la virgule par un point ? Quel est ton
caractère décimal ? Peux-tu donner un exemple de ce que tu veux ? Le code
que tu as publié dans ton premier post n'est pas tout à fait le même que
celui de la macro.
Daniel
"François" a écrit dans le message de news:

Bonjour Daniel,

Je te remercie pour ton aide. Ci joint le fichier en question.
http://cjoint.com/?hnpIh2MOBL
Je reste à ta disposition pour tout complément d'info.

Cordialement.
François
"Daniel" a écrit dans le message de news:

Bonjour.
Sans voir l'agencement des données, c'est difficile à comprendre.
Peux-tu mettre un classeur exemple, en effaçant les données
confidentielles, sur www.cjoint.com
Cordialement.
Daniel
"François" a écrit dans le message de news:

Bonjour,

Dans le code ci joint, j'essaie de compter le nombre de valeur, puis de
stocker la valeur de la cellule +1, et ensuite de positionner ces
valeurs dans une somme. Je n'y arrive vraiment pas....

Si quelqu'un a une idée :-))

Cordialement,
François

For Departcol = 9 To Derc Step 13
For Each Cel In Range("A4:A" & Derl)
DateD = Cells(1, Departcol)
DateD = CDate(DateD)
Brut = Cells(Cel.Row, 8)
If Cel = "JT" Then
If DateD >= Cells(Cel.Row, 6) And (DateD <= Cells(Cel.Row, 7)
Or Cells(Cel.Row, 7) = "") Then
For i = 1 To Cel.Count
If Month(DateD) = 12 Then
Brut = Brut * 2
ElseIf Month(DateD) = 5 Then
Brut = Brut + (Brut * (1 / 30))
Else
Brut = Brut
End If
Brut = Application.WorksheetFunction.Substitute(Brut, ",", ".")
ici==> Brut = Brut & "" & Brut(i) & "" & ","
Next i
ici==> .Cells(Ligne, 4) = "=sum(" & Brut & ")"

End If












Avatar
François
Daniel,

La variable brut me permet, si le mois = 12 de multiplier la valeur par 2
(Cells(Cel.row,8)) car c'est un mois qui compte double.

Dans les paramètres régionaux, mon caractère décimal est la virgule. La
macro en question s'appelle "Sub RemplirTableau"

Résultat recherché : Chaque fois que ma valeur en colonne 1 = "JT", je
prends la valeur brut, je teste le mois (variable brut), et je positionne ce
montant dans une fonction somme.
Exemple : Si JT = 4, j'aurais "=Sum(Brut1, Brut2, Brut3, Brut4)
Si JT = 2, j'aurais "=Sum(Brut1, Brut2)

Merci encore pour ton aide.

"Daniel" a écrit dans le message de news:
ugrqA$
Je ne comprends pas ce que tu fais avec la variable "brut", tu fais des
calculs, et après, tu veux remplacer la virgule par un point ? Quel est
ton caractère décimal ? Peux-tu donner un exemple de ce que tu veux ? Le
code que tu as publié dans ton premier post n'est pas tout à fait le même
que celui de la macro.
Daniel
"François" a écrit dans le message de news:

Bonjour Daniel,

Je te remercie pour ton aide. Ci joint le fichier en question.
http://cjoint.com/?hnpIh2MOBL
Je reste à ta disposition pour tout complément d'info.

Cordialement.
François
"Daniel" a écrit dans le message de news:

Bonjour.
Sans voir l'agencement des données, c'est difficile à comprendre.
Peux-tu mettre un classeur exemple, en effaçant les données
confidentielles, sur www.cjoint.com
Cordialement.
Daniel
"François" a écrit dans le message de news:

Bonjour,

Dans le code ci joint, j'essaie de compter le nombre de valeur, puis de
stocker la valeur de la cellule +1, et ensuite de positionner ces
valeurs dans une somme. Je n'y arrive vraiment pas....

Si quelqu'un a une idée :-))

Cordialement,
François

For Departcol = 9 To Derc Step 13
For Each Cel In Range("A4:A" & Derl)
DateD = Cells(1, Departcol)
DateD = CDate(DateD)
Brut = Cells(Cel.Row, 8)
If Cel = "JT" Then
If DateD >= Cells(Cel.Row, 6) And (DateD <= Cells(Cel.Row,
7) Or Cells(Cel.Row, 7) = "") Then
For i = 1 To Cel.Count
If Month(DateD) = 12 Then
Brut = Brut * 2
ElseIf Month(DateD) = 5 Then
Brut = Brut + (Brut * (1 / 30))
Else
Brut = Brut
End If
Brut = Application.WorksheetFunction.Substitute(Brut, ",", ".")
ici==> Brut = Brut & "" & Brut(i) & "" & ","
Next i
ici==> .Cells(Ligne, 4) = "=sum(" & Brut &
")"

End If
















Avatar
isabelle
bonjour Francois,

d = "=Sum("
For i = 1 To 4
d = d & "Brut" & i & ","
Next
Range("A1") = Left(d, Len(d) - 1) & ")"

isabelle


Daniel,

La variable brut me permet, si le mois = 12 de multiplier la valeur par 2
(Cells(Cel.row,8)) car c'est un mois qui compte double.

Dans les paramètres régionaux, mon caractère décimal est la virgule. La
macro en question s'appelle "Sub RemplirTableau"

Résultat recherché : Chaque fois que ma valeur en colonne 1 = "JT", je
prends la valeur brut, je teste le mois (variable brut), et je positionne ce
montant dans une fonction somme.
Exemple : Si JT = 4, j'aurais "=Sum(Brut1, Brut2, Brut3, Brut4)
Si JT = 2, j'aurais "=Sum(Brut1, Brut2)

Merci encore pour ton aide.

"Daniel" a écrit dans le message de news:
ugrqA$

Je ne comprends pas ce que tu fais avec la variable "brut", tu fais des
calculs, et après, tu veux remplacer la virgule par un point ? Quel est
ton caractère décimal ? Peux-tu donner un exemple de ce que tu veux ? Le
code que tu as publié dans ton premier post n'est pas tout à fait le même
que celui de la macro.
Daniel
"François" a écrit dans le message de news:


Bonjour Daniel,

Je te remercie pour ton aide. Ci joint le fichier en question.
http://cjoint.com/?hnpIh2MOBL
Je reste à ta disposition pour tout complément d'info.

Cordialement.
François
"Daniel" a écrit dans le message de news:


Bonjour.
Sans voir l'agencement des données, c'est difficile à comprendre.
Peux-tu mettre un classeur exemple, en effaçant les données
confidentielles, sur www.cjoint.com
Cordialement.
Daniel
"François" a écrit dans le message de news:


Bonjour,

Dans le code ci joint, j'essaie de compter le nombre de valeur, puis de
stocker la valeur de la cellule +1, et ensuite de positionner ces
valeurs dans une somme. Je n'y arrive vraiment pas....

Si quelqu'un a une idée :-))

Cordialement,
François

For Departcol = 9 To Derc Step 13
For Each Cel In Range("A4:A" & Derl)
DateD = Cells(1, Departcol)
DateD = CDate(DateD)
Brut = Cells(Cel.Row, 8)
If Cel = "JT" Then
If DateD >= Cells(Cel.Row, 6) And (DateD <= Cells(Cel.Row,
7) Or Cells(Cel.Row, 7) = "") Then
For i = 1 To Cel.Count
If Month(DateD) = 12 Then
Brut = Brut * 2
ElseIf Month(DateD) = 5 Then
Brut = Brut + (Brut * (1 / 30))
Else
Brut = Brut
End If
Brut = Application.WorksheetFunction.Substitute(Brut, ",", ".")
ici==> Brut = Brut & "" & Brut(i) & "" & ","
Next i
ici==> .Cells(Ligne, 4) = "=sum(" & Brut &
")"

End If


















Avatar
François
Bonjour Isabelle,

Merci pour ta réponse.

Sauf que brut1, 2,... = un nombre donc la formule doit devenir
=Sum(100;256;...)

Comment faire car là, je suis vraiment bloqué !

Merci encore

"isabelle" a écrit dans le message de news:

bonjour Francois,

d = "=Sum("
For i = 1 To 4
d = d & "Brut" & i & ","
Next
Range("A1") = Left(d, Len(d) - 1) & ")"

isabelle



Avatar
isabelle
est ce qu'il faut que la formulle soit placer dans une cellule, ou seulement sont résultat ?

isabelle

Bonjour Isabelle,

Merci pour ta réponse.

Sauf que brut1, 2,... = un nombre donc la formule doit devenir
=Sum(100;256;...)

Comment faire car là, je suis vraiment bloqué !

Merci encore

"isabelle" a écrit dans le message de news:


bonjour Francois,

d = "=Sum("
For i = 1 To 4
d = d & "Brut" & i & ","
Next
Range("A1") = Left(d, Len(d) - 1) & ")"

isabelle








Avatar
François
Seulement son résultat.

François
"isabelle" a écrit dans le message de news:
%
est ce qu'il faut que la formulle soit placer dans une cellule, ou
seulement sont résultat ?

isabelle

Bonjour Isabelle,

Merci pour ta réponse.

Sauf que brut1, 2,... = un nombre donc la formule doit devenir
=Sum(100;256;...)

Comment faire car là, je suis vraiment bloqué !

Merci encore

"isabelle" a écrit dans le message de news:


bonjour Francois,

d = "=Sum("
For i = 1 To 4
d = d & "Brut" & i & ","
Next
Range("A1") = Left(d, Len(d) - 1) & ")"

isabelle









Avatar
isabelle
voici un exemple,

Sub macro1()
Brut1 = 10
Brut2 = 10
Brut3 = 10
Brut4 = 10
v = Array(Brut1, Brut2, Brut3, Brut4)
For i = 0 To 3
resultat = resultat + v(i)
Next
MsgBox resultat
End Sub

isabelle


Seulement son résultat.

François
"isabelle" a écrit dans le message de news:
%

est ce qu'il faut que la formulle soit placer dans une cellule, ou
seulement sont résultat ?

isabelle


Bonjour Isabelle,

Merci pour ta réponse.

Sauf que brut1, 2,... = un nombre donc la formule doit devenir
=Sum(100;256;...)

Comment faire car là, je suis vraiment bloqué !

Merci encore

"isabelle" a écrit dans le message de news:



bonjour Francois,

d = "=Sum("
For i = 1 To 4
d = d & "Brut" & i & ","
Next
Range("A1") = Left(d, Len(d) - 1) & ")"

isabelle












Avatar
François
Bonsoir Isabelle,

Désolé, je n'arrive pas à l'adapter. Ci dessous un exemple. c'est un fichier
dans les lignes sont variables >100 !

Service Montant1 Montant n
JT 100 20
HJ 150 39
YU 20 49
JT 35 56

Je ne passe pas par la fonction sommeprod, car selon la colonne de montant
(n), une opération s'effectue sur la valeur.

Résultat = Si Service = JT alors somme(100;35;somme(20*2;56*2);somme(n))

Je te remercie encore pour tes lumières !

Cordialement,
François
"isabelle" a écrit dans le message de news:

voici un exemple,

Sub macro1()
Brut1 = 10
Brut2 = 10
Brut3 = 10
Brut4 = 10
v = Array(Brut1, Brut2, Brut3, Brut4)
For i = 0 To 3
resultat = resultat + v(i)
Next
MsgBox resultat
End Sub

isabelle




1 2