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

Somme validée par VBA

9 réponses
Avatar
zOrg2net
Bonjour tout le monde,

J'ai encore besoin de vos lumières. Ci-dessous une macro qui ajoute à un
formulaire de synthèse les lignes dont les valeurs d'unité sont <> de "".

Sub Ajouter_FRAIS_ADMIN()
NbLignes = 0
For i = 2 To 8
Sheets("FRAIS ADM.").Select
If Cells(i, 5).Value <> "" Then
NbLignes = NbLignes + 1
Range(Cells(i, 1), Cells(i, 6)).Select
Selection.Copy
'Sélection de la feuille détails
Sheets("DETAILS_DEVIS").Select
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlValues,
Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
'Sélection de la nouvelle ligne créée et
formatage des bordures

Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 0).Resize(1, 6).Select

Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle =
xlNone
Selection.Borders(xlEdgeLeft).LineStyle =
xlContinuous
Selection.Borders(xlEdgeTop).LineStyle = xlContinuous
Selection.Borders(xlEdgeBottom).LineStyle = xlContinuous
Selection.Borders(xlEdgeRight).LineStyle = xlContinuous
Selection.Borders(xlInsideVertical).LineStyle = xlContinuous
End If
Next i
'Insertion de la ligne sous total
Sheets("DETAILS_DEVIS").Select
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(1, 0).Value = "SOUS
TOTAL"
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(1,
0).HorizontalAlignment = xlLeft
'Insertion de la formule somme
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 5).FormulaLocal = _
"=somme(F" & Cellule.Row & ":F" & Cellule.Row - NbLignes & ")"
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 0).Resize(1,
6).Select
Selection.RowHeight = 22.5
Selection.VerticalAlignment = xlCenter

Range("D:D,F:F").Select
Range("F1").Activate
Selection.Style = "Currency"
Range("A1").Select
Sheets("FRAIS ADM.").Select
[E2:E8].ClearContents
Range("A1").Select
Call RETOUR
End Sub

Le problème se situe au moment de l'inscription de la formule somme. Il doit
sûrement y avoir une erreur de syntaxe, mais je n'arrive pas à mettre le
doigt dessus. Merci de m'éclairer.
P.S. Si ma macro peut être améliorée, n'hésitez surtout pas à me faire des
propositions.

zOrg2net
7OuNet
Avec tout ce que je sais on pourrait faire un livre...Il est vrai qu'avec
tout ce que je ne sais pas, on pourrait faire une bibliothèque.

9 réponses

Avatar
garnote
Bonjour,

Au lieu d'écrire somme, écris sum.

Serge

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

Bonjour tout le monde,

J'ai encore besoin de vos lumières. Ci-dessous une macro qui ajoute à un
formulaire de synthèse les lignes dont les valeurs d'unité sont <> de "".

Sub Ajouter_FRAIS_ADMIN()
NbLignes = 0
For i = 2 To 8
Sheets("FRAIS ADM.").Select
If Cells(i, 5).Value <> "" Then
NbLignes = NbLignes + 1
Range(Cells(i, 1), Cells(i, 6)).Select
Selection.Copy
'Sélection de la feuille détails
Sheets("DETAILS_DEVIS").Select
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlValues,
Operation:=xlNone, SkipBlanks:= _
False, Transpose:úlse
'Sélection de la nouvelle ligne créée et
formatage des bordures

Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 0).Resize(1, 6).Select

Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle > xlNone
Selection.Borders(xlEdgeLeft).LineStyle > xlContinuous
Selection.Borders(xlEdgeTop).LineStyle = xlContinuous
Selection.Borders(xlEdgeBottom).LineStyle = xlContinuous
Selection.Borders(xlEdgeRight).LineStyle = xlContinuous
Selection.Borders(xlInsideVertical).LineStyle = xlContinuous
End If
Next i
'Insertion de la ligne sous total
Sheets("DETAILS_DEVIS").Select
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(1, 0).Value = "SOUS
TOTAL"
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(1,
0).HorizontalAlignment = xlLeft
'Insertion de la formule somme
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 5).FormulaLocal = _
"=somme(F" & Cellule.Row & ":F" & Cellule.Row - NbLignes & ")"
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 0).Resize(1,
6).Select
Selection.RowHeight = 22.5
Selection.VerticalAlignment = xlCenter

Range("D:D,F:F").Select
Range("F1").Activate
Selection.Style = "Currency"
Range("A1").Select
Sheets("FRAIS ADM.").Select
[E2:E8].ClearContents
Range("A1").Select
Call RETOUR
End Sub

Le problème se situe au moment de l'inscription de la formule somme. Il doit
sûrement y avoir une erreur de syntaxe, mais je n'arrive pas à mettre le
doigt dessus. Merci de m'éclairer.
P.S. Si ma macro peut être améliorée, n'hésitez surtout pas à me faire des
propositions.

zOrg2net
7OuNet
Avec tout ce que je sais on pourrait faire un livre...Il est vrai qu'avec
tout ce que je ne sais pas, on pourrait faire une bibliothèque.


Avatar
zOrg2net
Bonjour Serge,

J'y avais pensé déjà et ça n'enlève pas l'erreur. Je crois avoir un pb au
niveau de la définition des cellules à sommer, mais je ne vois pas où.

Merci quand même

zOrg2net


Bonjour,

Au lieu d'écrire somme, écris sum.

Serge

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

Bonjour tout le monde,

J'ai encore besoin de vos lumières. Ci-dessous une macro qui ajoute à un
formulaire de synthèse les lignes dont les valeurs d'unité sont <> de "".

Sub Ajouter_FRAIS_ADMIN()
NbLignes = 0
For i = 2 To 8
Sheets("FRAIS ADM.").Select
If Cells(i, 5).Value <> "" Then
NbLignes = NbLignes + 1
Range(Cells(i, 1), Cells(i, 6)).Select
Selection.Copy
'Sélection de la feuille détails
Sheets("DETAILS_DEVIS").Select
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlValues,
Operation:=xlNone, SkipBlanks:= _
False, Transpose:úlse
'Sélection de la nouvelle ligne créée et
formatage des bordures

Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 0).Resize(1, 6).Select

Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle > > xlNone
Selection.Borders(xlEdgeLeft).LineStyle > > xlContinuous
Selection.Borders(xlEdgeTop).LineStyle = xlContinuous
Selection.Borders(xlEdgeBottom).LineStyle = xlContinuous
Selection.Borders(xlEdgeRight).LineStyle = xlContinuous
Selection.Borders(xlInsideVertical).LineStyle = xlContinuous
End If
Next i
'Insertion de la ligne sous total
Sheets("DETAILS_DEVIS").Select
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(1, 0).Value = "SOUS
TOTAL"
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(1,
0).HorizontalAlignment = xlLeft
'Insertion de la formule somme
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 5).FormulaLocal = _
"=somme(F" & Cellule.Row & ":F" & Cellule.Row - NbLignes & ")"
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 0).Resize(1,
6).Select
Selection.RowHeight = 22.5
Selection.VerticalAlignment = xlCenter

Range("D:D,F:F").Select
Range("F1").Activate
Selection.Style = "Currency"
Range("A1").Select
Sheets("FRAIS ADM.").Select
[E2:E8].ClearContents
Range("A1").Select
Call RETOUR
End Sub

Le problème se situe au moment de l'inscription de la formule somme. Il doit
sûrement y avoir une erreur de syntaxe, mais je n'arrive pas à mettre le
doigt dessus. Merci de m'éclairer.
P.S. Si ma macro peut être améliorée, n'hésitez surtout pas à me faire des
propositions.

zOrg2net
7OuNet
Avec tout ce que je sais on pourrait faire un livre...Il est vrai qu'avec
tout ce que je ne sais pas, on pourrait faire une bibliothèque.







Avatar
garnote
Dans ces lignes de code :
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 5).FormulaLocal = _
"=Sum(F" & Cellule.Row & ":F" & Cellule.Row - NbLignes & ")"
que représente Cellule ?

Serge

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

Bonjour Serge,

J'y avais pensé déjà et ça n'enlève pas l'erreur. Je crois avoir un pb au
niveau de la définition des cellules à sommer, mais je ne vois pas où.

Merci quand même

zOrg2net


Bonjour,

Au lieu d'écrire somme, écris sum.

Serge

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

Bonjour tout le monde,

J'ai encore besoin de vos lumières. Ci-dessous une macro qui ajoute à un
formulaire de synthèse les lignes dont les valeurs d'unité sont <> de "".

Sub Ajouter_FRAIS_ADMIN()
NbLignes = 0
For i = 2 To 8
Sheets("FRAIS ADM.").Select
If Cells(i, 5).Value <> "" Then
NbLignes = NbLignes + 1
Range(Cells(i, 1), Cells(i, 6)).Select
Selection.Copy
'Sélection de la feuille détails
Sheets("DETAILS_DEVIS").Select
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlValues,
Operation:=xlNone, SkipBlanks:= _
False, Transpose:úlse
'Sélection de la nouvelle ligne créée et
formatage des bordures

Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 0).Resize(1, 6).Select

Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle >> > xlNone
Selection.Borders(xlEdgeLeft).LineStyle >> > xlContinuous
Selection.Borders(xlEdgeTop).LineStyle = xlContinuous
Selection.Borders(xlEdgeBottom).LineStyle = xlContinuous
Selection.Borders(xlEdgeRight).LineStyle = xlContinuous
Selection.Borders(xlInsideVertical).LineStyle = xlContinuous
End If
Next i
'Insertion de la ligne sous total
Sheets("DETAILS_DEVIS").Select
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(1, 0).Value = "SOUS
TOTAL"
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(1,
0).HorizontalAlignment = xlLeft
'Insertion de la formule somme
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 5).FormulaLocal = _
"=somme(F" & Cellule.Row & ":F" & Cellule.Row - NbLignes & ")"
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 0).Resize(1,
6).Select
Selection.RowHeight = 22.5
Selection.VerticalAlignment = xlCenter

Range("D:D,F:F").Select
Range("F1").Activate
Selection.Style = "Currency"
Range("A1").Select
Sheets("FRAIS ADM.").Select
[E2:E8].ClearContents
Range("A1").Select
Call RETOUR
End Sub

Le problème se situe au moment de l'inscription de la formule somme. Il doit
sûrement y avoir une erreur de syntaxe, mais je n'arrive pas à mettre le
doigt dessus. Merci de m'éclairer.
P.S. Si ma macro peut être améliorée, n'hésitez surtout pas à me faire des
propositions.

zOrg2net
7OuNet
Avec tout ce que je sais on pourrait faire un livre...Il est vrai qu'avec
tout ce que je ne sais pas, on pourrait faire une bibliothèque.









Avatar
zOrg2net
Théoriquement Cellule.Row renvoi le n° de ligne de la cellule sélectionnée
avec Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 5). Donc F &
Cellule.Row, devraient renvoyer, par exemple F5. Enfin je crois.

zOrg2net



Dans ces lignes de code :
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 5).FormulaLocal = _
"=Sum(F" & Cellule.Row & ":F" & Cellule.Row - NbLignes & ")"
que représente Cellule ?

Serge

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

Bonjour Serge,

J'y avais pensé déjà et ça n'enlève pas l'erreur. Je crois avoir un pb au
niveau de la définition des cellules à sommer, mais je ne vois pas où.

Merci quand même

zOrg2net


Bonjour,

Au lieu d'écrire somme, écris sum.

Serge

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

Bonjour tout le monde,

J'ai encore besoin de vos lumières. Ci-dessous une macro qui ajoute à un
formulaire de synthèse les lignes dont les valeurs d'unité sont <> de "".

Sub Ajouter_FRAIS_ADMIN()
NbLignes = 0
For i = 2 To 8
Sheets("FRAIS ADM.").Select
If Cells(i, 5).Value <> "" Then
NbLignes = NbLignes + 1
Range(Cells(i, 1), Cells(i, 6)).Select
Selection.Copy
'Sélection de la feuille détails
Sheets("DETAILS_DEVIS").Select
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlValues,
Operation:=xlNone, SkipBlanks:= _
False, Transpose:úlse
'Sélection de la nouvelle ligne créée et
formatage des bordures

Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 0).Resize(1, 6).Select

Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle > >> > xlNone
Selection.Borders(xlEdgeLeft).LineStyle > >> > xlContinuous
Selection.Borders(xlEdgeTop).LineStyle = xlContinuous
Selection.Borders(xlEdgeBottom).LineStyle = xlContinuous
Selection.Borders(xlEdgeRight).LineStyle = xlContinuous
Selection.Borders(xlInsideVertical).LineStyle = xlContinuous
End If
Next i
'Insertion de la ligne sous total
Sheets("DETAILS_DEVIS").Select
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(1, 0).Value = "SOUS
TOTAL"
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(1,
0).HorizontalAlignment = xlLeft
'Insertion de la formule somme
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 5).FormulaLocal = _
"=somme(F" & Cellule.Row & ":F" & Cellule.Row - NbLignes & ")"
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 0).Resize(1,
6).Select
Selection.RowHeight = 22.5
Selection.VerticalAlignment = xlCenter

Range("D:D,F:F").Select
Range("F1").Activate
Selection.Style = "Currency"
Range("A1").Select
Sheets("FRAIS ADM.").Select
[E2:E8].ClearContents
Range("A1").Select
Call RETOUR
End Sub

Le problème se situe au moment de l'inscription de la formule somme. Il doit
sûrement y avoir une erreur de syntaxe, mais je n'arrive pas à mettre le
doigt dessus. Merci de m'éclairer.
P.S. Si ma macro peut être améliorée, n'hésitez surtout pas à me faire des
propositions.

zOrg2net
7OuNet
Avec tout ce que je sais on pourrait faire un livre...Il est vrai qu'avec
tout ce que je ne sais pas, on pourrait faire une bibliothèque.














Avatar
garnote
D'abord, toutes mes excuses, il n'est pas nécessaire de
remplacer Somme par Sum. Je n'avais pas remarqué
le Local de FormulaLocal !
Pour ta somme, j'arrive à une référence circulaire.
Si Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 5)
correspond à F21, quelles cellules veux-tu additionner ?

Serge


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

Théoriquement Cellule.Row renvoi le n° de ligne de la cellule sélectionnée
avec Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 5). Donc F &
Cellule.Row, devraient renvoyer, par exemple F5. Enfin je crois.

zOrg2net



Dans ces lignes de code :
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 5).FormulaLocal = _
"=Sum(F" & Cellule.Row & ":F" & Cellule.Row - NbLignes & ")"
que représente Cellule ?

Serge

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

Bonjour Serge,

J'y avais pensé déjà et ça n'enlève pas l'erreur. Je crois avoir un pb au
niveau de la définition des cellules à sommer, mais je ne vois pas où.

Merci quand même

zOrg2net


Bonjour,

Au lieu d'écrire somme, écris sum.

Serge

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

Bonjour tout le monde,

J'ai encore besoin de vos lumières. Ci-dessous une macro qui ajoute à un
formulaire de synthèse les lignes dont les valeurs d'unité sont <> de "".

Sub Ajouter_FRAIS_ADMIN()
NbLignes = 0
For i = 2 To 8
Sheets("FRAIS ADM.").Select
If Cells(i, 5).Value <> "" Then
NbLignes = NbLignes + 1
Range(Cells(i, 1), Cells(i, 6)).Select
Selection.Copy
'Sélection de la feuille détails
Sheets("DETAILS_DEVIS").Select
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlValues,
Operation:=xlNone, SkipBlanks:= _
False, Transpose:úlse
'Sélection de la nouvelle ligne créée et
formatage des bordures

Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 0).Resize(1, 6).Select

Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle >> >> > xlNone
Selection.Borders(xlEdgeLeft).LineStyle >> >> > xlContinuous
Selection.Borders(xlEdgeTop).LineStyle = xlContinuous
Selection.Borders(xlEdgeBottom).LineStyle = xlContinuous
Selection.Borders(xlEdgeRight).LineStyle = xlContinuous
Selection.Borders(xlInsideVertical).LineStyle = xlContinuous
End If
Next i
'Insertion de la ligne sous total
Sheets("DETAILS_DEVIS").Select
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(1, 0).Value = "SOUS
TOTAL"
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(1,
0).HorizontalAlignment = xlLeft
'Insertion de la formule somme
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 5).FormulaLocal = _
"=somme(F" & Cellule.Row & ":F" & Cellule.Row - NbLignes & ")"
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 0).Resize(1,
6).Select
Selection.RowHeight = 22.5
Selection.VerticalAlignment = xlCenter

Range("D:D,F:F").Select
Range("F1").Activate
Selection.Style = "Currency"
Range("A1").Select
Sheets("FRAIS ADM.").Select
[E2:E8].ClearContents
Range("A1").Select
Call RETOUR
End Sub

Le problème se situe au moment de l'inscription de la formule somme. Il doit
sûrement y avoir une erreur de syntaxe, mais je n'arrive pas à mettre le
doigt dessus. Merci de m'éclairer.
P.S. Si ma macro peut être améliorée, n'hésitez surtout pas à me faire des
propositions.

zOrg2net
7OuNet
Avec tout ce que je sais on pourrait faire un livre...Il est vrai qu'avec
tout ce que je ne sais pas, on pourrait faire une bibliothèque.
















Avatar
zOrg2net
Euréka, j'ai trouvé !!

J'ai remplacé :
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 5).FormulaLocal = _
"=somme(F" & Cellule.Row & ":F" & Cellule.Row - NbLignes & ")"
par:
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 5).Select
ActiveCell.FormulaR1C1 = "=sum(R[-1]C:R[-" & NbLignes & "]C)"

Et pour répondre à ta question, si
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 5) correspond à F21, je
veux additionner toutes les lignes du dessus, qui ont été rajoutées dans la
feuille. Le nombre en est variables suivant les quantités sélectionnées dans
la feuille de saisie des valeurs. Le nombre de lignes est contenu dans la
variable NbLignes. Par exemple si NbLignes = 3, je veux faire la somme de la
cellule au dessus de celle qui contient la formule et l'étendre à - 3 lignes.
Pfuitt!! Quand je me relis, je suis pas bien sûr de me comprendre.

Merci quand même d'avoir passé du temps sur mon problème.
@ciao et encore merci.

zOrg2net


D'abord, toutes mes excuses, il n'est pas nécessaire de
remplacer Somme par Sum. Je n'avais pas remarqué
le Local de FormulaLocal !
Pour ta somme, j'arrive à une référence circulaire.
Si Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 5)
correspond à F21, quelles cellules veux-tu additionner ?

Serge


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

Théoriquement Cellule.Row renvoi le n° de ligne de la cellule sélectionnée
avec Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 5). Donc F &
Cellule.Row, devraient renvoyer, par exemple F5. Enfin je crois.

zOrg2net



Dans ces lignes de code :
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 5).FormulaLocal = _
"=Sum(F" & Cellule.Row & ":F" & Cellule.Row - NbLignes & ")"
que représente Cellule ?

Serge

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

Bonjour Serge,

J'y avais pensé déjà et ça n'enlève pas l'erreur. Je crois avoir un pb au
niveau de la définition des cellules à sommer, mais je ne vois pas où.

Merci quand même

zOrg2net


Bonjour,

Au lieu d'écrire somme, écris sum.

Serge

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

Bonjour tout le monde,

J'ai encore besoin de vos lumières. Ci-dessous une macro qui ajoute à un
formulaire de synthèse les lignes dont les valeurs d'unité sont <> de "".

Sub Ajouter_FRAIS_ADMIN()
NbLignes = 0
For i = 2 To 8
Sheets("FRAIS ADM.").Select
If Cells(i, 5).Value <> "" Then
NbLignes = NbLignes + 1
Range(Cells(i, 1), Cells(i, 6)).Select
Selection.Copy
'Sélection de la feuille détails
Sheets("DETAILS_DEVIS").Select
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlValues,
Operation:=xlNone, SkipBlanks:= _
False, Transpose:úlse
'Sélection de la nouvelle ligne créée et
formatage des bordures

Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 0).Resize(1, 6).Select

Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle > >> >> > xlNone
Selection.Borders(xlEdgeLeft).LineStyle > >> >> > xlContinuous
Selection.Borders(xlEdgeTop).LineStyle = xlContinuous
Selection.Borders(xlEdgeBottom).LineStyle = xlContinuous
Selection.Borders(xlEdgeRight).LineStyle = xlContinuous
Selection.Borders(xlInsideVertical).LineStyle = xlContinuous
End If
Next i
'Insertion de la ligne sous total
Sheets("DETAILS_DEVIS").Select
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(1, 0).Value = "SOUS
TOTAL"
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(1,
0).HorizontalAlignment = xlLeft
'Insertion de la formule somme
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 5).FormulaLocal = _
"=somme(F" & Cellule.Row & ":F" & Cellule.Row - NbLignes & ")"
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 0).Resize(1,
6).Select
Selection.RowHeight = 22.5
Selection.VerticalAlignment = xlCenter

Range("D:D,F:F").Select
Range("F1").Activate
Selection.Style = "Currency"
Range("A1").Select
Sheets("FRAIS ADM.").Select
[E2:E8].ClearContents
Range("A1").Select
Call RETOUR
End Sub

Le problème se situe au moment de l'inscription de la formule somme. Il doit
sûrement y avoir une erreur de syntaxe, mais je n'arrive pas à mettre le
doigt dessus. Merci de m'éclairer.
P.S. Si ma macro peut être améliorée, n'hésitez surtout pas à me faire des
propositions.

zOrg2net
7OuNet
Avec tout ce que je sais on pourrait faire un livre...Il est vrai qu'avec
tout ce que je ne sais pas, on pourrait faire une bibliothèque.





















Avatar
garnote
Et moi j'avais pensé à :
Set ici = Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 5)
L = ici.Row
ici.Formula = "=sum(F" & L - 1 & ":F" & L - NbLignes & " )"

Serge

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

Euréka, j'ai trouvé !!

J'ai remplacé :
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 5).FormulaLocal = _
"=somme(F" & Cellule.Row & ":F" & Cellule.Row - NbLignes & ")"
par:
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 5).Select
ActiveCell.FormulaR1C1 = "=sum(R[-1]C:R[-" & NbLignes & "]C)"

Et pour répondre à ta question, si
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 5) correspond à F21, je
veux additionner toutes les lignes du dessus, qui ont été rajoutées dans la
feuille. Le nombre en est variables suivant les quantités sélectionnées dans
la feuille de saisie des valeurs. Le nombre de lignes est contenu dans la
variable NbLignes. Par exemple si NbLignes = 3, je veux faire la somme de la
cellule au dessus de celle qui contient la formule et l'étendre à - 3 lignes.
Pfuitt!! Quand je me relis, je suis pas bien sûr de me comprendre.

Merci quand même d'avoir passé du temps sur mon problème.
@ciao et encore merci.

zOrg2net


D'abord, toutes mes excuses, il n'est pas nécessaire de
remplacer Somme par Sum. Je n'avais pas remarqué
le Local de FormulaLocal !
Pour ta somme, j'arrive à une référence circulaire.
Si Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 5)
correspond à F21, quelles cellules veux-tu additionner ?

Serge


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

Théoriquement Cellule.Row renvoi le n° de ligne de la cellule sélectionnée
avec Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 5). Donc F &
Cellule.Row, devraient renvoyer, par exemple F5. Enfin je crois.

zOrg2net



Dans ces lignes de code :
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 5).FormulaLocal = _
"=Sum(F" & Cellule.Row & ":F" & Cellule.Row - NbLignes & ")"
que représente Cellule ?

Serge

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

Bonjour Serge,

J'y avais pensé déjà et ça n'enlève pas l'erreur. Je crois avoir un pb au
niveau de la définition des cellules à sommer, mais je ne vois pas où.

Merci quand même

zOrg2net


Bonjour,

Au lieu d'écrire somme, écris sum.

Serge

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

Bonjour tout le monde,

J'ai encore besoin de vos lumières. Ci-dessous une macro qui ajoute à un
formulaire de synthèse les lignes dont les valeurs d'unité sont <> de "".

Sub Ajouter_FRAIS_ADMIN()
NbLignes = 0
For i = 2 To 8
Sheets("FRAIS ADM.").Select
If Cells(i, 5).Value <> "" Then
NbLignes = NbLignes + 1
Range(Cells(i, 1), Cells(i, 6)).Select
Selection.Copy
'Sélection de la feuille détails
Sheets("DETAILS_DEVIS").Select
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlValues,
Operation:=xlNone, SkipBlanks:= _
False, Transpose:úlse
'Sélection de la nouvelle ligne créée et
formatage des bordures

Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 0).Resize(1, 6).Select

Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle >> >> >> > xlNone
Selection.Borders(xlEdgeLeft).LineStyle >> >> >> > xlContinuous
Selection.Borders(xlEdgeTop).LineStyle = xlContinuous
Selection.Borders(xlEdgeBottom).LineStyle = xlContinuous
Selection.Borders(xlEdgeRight).LineStyle = xlContinuous
Selection.Borders(xlInsideVertical).LineStyle = xlContinuous
End If
Next i
'Insertion de la ligne sous total
Sheets("DETAILS_DEVIS").Select
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(1, 0).Value = "SOUS
TOTAL"
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(1,
0).HorizontalAlignment = xlLeft
'Insertion de la formule somme
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 5).FormulaLocal = _
"=somme(F" & Cellule.Row & ":F" & Cellule.Row - NbLignes & ")"
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 0).Resize(1,
6).Select
Selection.RowHeight = 22.5
Selection.VerticalAlignment = xlCenter

Range("D:D,F:F").Select
Range("F1").Activate
Selection.Style = "Currency"
Range("A1").Select
Sheets("FRAIS ADM.").Select
[E2:E8].ClearContents
Range("A1").Select
Call RETOUR
End Sub

Le problème se situe au moment de l'inscription de la formule somme. Il doit
sûrement y avoir une erreur de syntaxe, mais je n'arrive pas à mettre le
doigt dessus. Merci de m'éclairer.
P.S. Si ma macro peut être améliorée, n'hésitez surtout pas à me faire des
propositions.

zOrg2net
7OuNet
Avec tout ce que je sais on pourrait faire un livre...Il est vrai qu'avec
tout ce que je ne sais pas, on pourrait faire une bibliothèque.























Avatar
zOrg2net
Hé! Hé! Serge. Bien vu! Ca marche aussi bien que l'autre formule et je crois
bien que ça pourra me servir à l'avenir. Petite question au passage, faut-il
décharger la variable avec un Set ici = Nothing à la fin de la procédure ??

zOrg2net



Et moi j'avais pensé à :
Set ici = Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 5)
L = ici.Row
ici.Formula = "=sum(F" & L - 1 & ":F" & L - NbLignes & " )"

Serge

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

Euréka, j'ai trouvé !!

J'ai remplacé :
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 5).FormulaLocal = _
"=somme(F" & Cellule.Row & ":F" & Cellule.Row - NbLignes & ")"
par:
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 5).Select
ActiveCell.FormulaR1C1 = "=sum(R[-1]C:R[-" & NbLignes & "]C)"

Et pour répondre à ta question, si
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 5) correspond à F21, je
veux additionner toutes les lignes du dessus, qui ont été rajoutées dans la
feuille. Le nombre en est variables suivant les quantités sélectionnées dans
la feuille de saisie des valeurs. Le nombre de lignes est contenu dans la
variable NbLignes. Par exemple si NbLignes = 3, je veux faire la somme de la
cellule au dessus de celle qui contient la formule et l'étendre à - 3 lignes.
Pfuitt!! Quand je me relis, je suis pas bien sûr de me comprendre.

Merci quand même d'avoir passé du temps sur mon problème.
@ciao et encore merci.

zOrg2net


D'abord, toutes mes excuses, il n'est pas nécessaire de
remplacer Somme par Sum. Je n'avais pas remarqué
le Local de FormulaLocal !
Pour ta somme, j'arrive à une référence circulaire.
Si Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 5)
correspond à F21, quelles cellules veux-tu additionner ?

Serge


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

Théoriquement Cellule.Row renvoi le n° de ligne de la cellule sélectionnée
avec Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 5). Donc F &
Cellule.Row, devraient renvoyer, par exemple F5. Enfin je crois.

zOrg2net



Dans ces lignes de code :
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 5).FormulaLocal = _
"=Sum(F" & Cellule.Row & ":F" & Cellule.Row - NbLignes & ")"
que représente Cellule ?

Serge

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

Bonjour Serge,

J'y avais pensé déjà et ça n'enlève pas l'erreur. Je crois avoir un pb au
niveau de la définition des cellules à sommer, mais je ne vois pas où.

Merci quand même

zOrg2net


Bonjour,

Au lieu d'écrire somme, écris sum.

Serge

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

Bonjour tout le monde,

J'ai encore besoin de vos lumières. Ci-dessous une macro qui ajoute à un
formulaire de synthèse les lignes dont les valeurs d'unité sont <> de "".

Sub Ajouter_FRAIS_ADMIN()
NbLignes = 0
For i = 2 To 8
Sheets("FRAIS ADM.").Select
If Cells(i, 5).Value <> "" Then
NbLignes = NbLignes + 1
Range(Cells(i, 1), Cells(i, 6)).Select
Selection.Copy
'Sélection de la feuille détails
Sheets("DETAILS_DEVIS").Select
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlValues,
Operation:=xlNone, SkipBlanks:= _
False, Transpose:úlse
'Sélection de la nouvelle ligne créée et
formatage des bordures

Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 0).Resize(1, 6).Select

Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle > >> >> >> > xlNone
Selection.Borders(xlEdgeLeft).LineStyle > >> >> >> > xlContinuous
Selection.Borders(xlEdgeTop).LineStyle = xlContinuous
Selection.Borders(xlEdgeBottom).LineStyle = xlContinuous
Selection.Borders(xlEdgeRight).LineStyle = xlContinuous
Selection.Borders(xlInsideVertical).LineStyle = xlContinuous
End If
Next i
'Insertion de la ligne sous total
Sheets("DETAILS_DEVIS").Select
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(1, 0).Value = "SOUS
TOTAL"
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(1,
0).HorizontalAlignment = xlLeft
'Insertion de la formule somme
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 5).FormulaLocal = _
"=somme(F" & Cellule.Row & ":F" & Cellule.Row - NbLignes & ")"
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 0).Resize(1,
6).Select
Selection.RowHeight = 22.5
Selection.VerticalAlignment = xlCenter

Range("D:D,F:F").Select
Range("F1").Activate
Selection.Style = "Currency"
Range("A1").Select
Sheets("FRAIS ADM.").Select
[E2:E8].ClearContents
Range("A1").Select
Call RETOUR
End Sub

Le problème se situe au moment de l'inscription de la formule somme. Il doit
sûrement y avoir une erreur de syntaxe, mais je n'arrive pas à mettre le
doigt dessus. Merci de m'éclairer.
P.S. Si ma macro peut être améliorée, n'hésitez surtout pas à me faire des
propositions.

zOrg2net
7OuNet
Avec tout ce que je sais on pourrait faire un livre...Il est vrai qu'avec
tout ce que je ne sais pas, on pourrait faire une bibliothèque.




























Avatar
garnote
Je sais que Set ici = Nothing libère la mémoire
mais j'ignore jusqu'à quel point c'est important.
Quelqu'un d'autre va sûrement nous éclairer ;-)

Serge


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

Hé! Hé! Serge. Bien vu! Ca marche aussi bien que l'autre formule et je crois
bien que ça pourra me servir à l'avenir. Petite question au passage, faut-il
décharger la variable avec un Set ici = Nothing à la fin de la procédure ??

zOrg2net



Et moi j'avais pensé à :
Set ici = Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 5)
L = ici.Row
ici.Formula = "=sum(F" & L - 1 & ":F" & L - NbLignes & " )"

Serge

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

Euréka, j'ai trouvé !!

J'ai remplacé :
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 5).FormulaLocal = _
"=somme(F" & Cellule.Row & ":F" & Cellule.Row - NbLignes & ")"
par:
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 5).Select
ActiveCell.FormulaR1C1 = "=sum(R[-1]C:R[-" & NbLignes & "]C)"

Et pour répondre à ta question, si
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 5) correspond à F21, je
veux additionner toutes les lignes du dessus, qui ont été rajoutées dans la
feuille. Le nombre en est variables suivant les quantités sélectionnées dans
la feuille de saisie des valeurs. Le nombre de lignes est contenu dans la
variable NbLignes. Par exemple si NbLignes = 3, je veux faire la somme de la
cellule au dessus de celle qui contient la formule et l'étendre à - 3 lignes.
Pfuitt!! Quand je me relis, je suis pas bien sûr de me comprendre.

Merci quand même d'avoir passé du temps sur mon problème.
@ciao et encore merci.

zOrg2net


D'abord, toutes mes excuses, il n'est pas nécessaire de
remplacer Somme par Sum. Je n'avais pas remarqué
le Local de FormulaLocal !
Pour ta somme, j'arrive à une référence circulaire.
Si Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 5)
correspond à F21, quelles cellules veux-tu additionner ?

Serge


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

Théoriquement Cellule.Row renvoi le n° de ligne de la cellule sélectionnée
avec Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 5). Donc F &
Cellule.Row, devraient renvoyer, par exemple F5. Enfin je crois.

zOrg2net



Dans ces lignes de code :
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 5).FormulaLocal = _
"=Sum(F" & Cellule.Row & ":F" & Cellule.Row - NbLignes & ")"
que représente Cellule ?

Serge

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

Bonjour Serge,

J'y avais pensé déjà et ça n'enlève pas l'erreur. Je crois avoir un pb au
niveau de la définition des cellules à sommer, mais je ne vois pas où.

Merci quand même

zOrg2net


Bonjour,

Au lieu d'écrire somme, écris sum.

Serge

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

Bonjour tout le monde,

J'ai encore besoin de vos lumières. Ci-dessous une macro qui ajoute à un
formulaire de synthèse les lignes dont les valeurs d'unité sont <> de "".

Sub Ajouter_FRAIS_ADMIN()
NbLignes = 0
For i = 2 To 8
Sheets("FRAIS ADM.").Select
If Cells(i, 5).Value <> "" Then
NbLignes = NbLignes + 1
Range(Cells(i, 1), Cells(i, 6)).Select
Selection.Copy
'Sélection de la feuille détails
Sheets("DETAILS_DEVIS").Select
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlValues,
Operation:=xlNone, SkipBlanks:= _
False, Transpose:úlse
'Sélection de la nouvelle ligne créée et
formatage des bordures

Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 0).Resize(1, 6).Select

Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle >> >> >> >> > xlNone
Selection.Borders(xlEdgeLeft).LineStyle >> >> >> >> > xlContinuous
Selection.Borders(xlEdgeTop).LineStyle = xlContinuous
Selection.Borders(xlEdgeBottom).LineStyle = xlContinuous
Selection.Borders(xlEdgeRight).LineStyle = xlContinuous
Selection.Borders(xlInsideVertical).LineStyle = xlContinuous
End If
Next i
'Insertion de la ligne sous total
Sheets("DETAILS_DEVIS").Select
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(1, 0).Value = "SOUS
TOTAL"
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(1,
0).HorizontalAlignment = xlLeft
'Insertion de la formule somme
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 5).FormulaLocal = _
"=somme(F" & Cellule.Row & ":F" & Cellule.Row - NbLignes & ")"
Sheets("DETAILS_DEVIS").[A65000].End(xlUp).Offset(0, 0).Resize(1,
6).Select
Selection.RowHeight = 22.5
Selection.VerticalAlignment = xlCenter

Range("D:D,F:F").Select
Range("F1").Activate
Selection.Style = "Currency"
Range("A1").Select
Sheets("FRAIS ADM.").Select
[E2:E8].ClearContents
Range("A1").Select
Call RETOUR
End Sub

Le problème se situe au moment de l'inscription de la formule somme. Il doit
sûrement y avoir une erreur de syntaxe, mais je n'arrive pas à mettre le
doigt dessus. Merci de m'éclairer.
P.S. Si ma macro peut être améliorée, n'hésitez surtout pas à me faire des
propositions.

zOrg2net
7OuNet
Avec tout ce que je sais on pourrait faire un livre...Il est vrai qu'avec
tout ce que je ne sais pas, on pourrait faire une bibliothèque.