Somme validée par VBA

Le
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:ú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 livreIl est vrai qu'avec
tout ce que je ne sais pas, on pourrait faire une bibliothèque.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
garnote
Le #4329691
Bonjour,

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

Serge

"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:ú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.


zOrg2net
Le #4329651
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"
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.







garnote
Le #4329611
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"
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"
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.









zOrg2net
Le #4329601
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"
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"
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.














garnote
Le #4329551
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"
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"
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"
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.
















zOrg2net
Le #4329541
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"
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"
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"
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.





















garnote
Le #4329531
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"
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"
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"
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"
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.























zOrg2net
Le #4329261
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"
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"
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"
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"
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.




























garnote
Le #4329121
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"
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"
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"
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"
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"
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.






























Publicité
Poster une réponse
Anonyme