OVH Cloud OVH Cloud

Comment faire une somme automatique avec des variables

2 réponses
Avatar
Louise
Bonjour,

J'ai un petit problème, je voudrais inscrire une somme dans ma feuille série
10 après la copie de mes données.

Je pensais utiliser une boucle, car au momment où j'arrête ma copie, je sais
à quelle ligne je suis en utilisant la donnée contenu dans ma variable l et
je veux mettre une somme à mes colonnes de i à w.

ex:
dim k
For k = 9 To 23
Sheets("Serie 10").Cells(l, k) = C'est ici mon problème je veux
avoir la somme de la plage débutant à la ligne 4 de la colonne k jusqu'à la
ligne précédent ma valeur l de la colonne k.

Next k

voici le code complet que j'ai pour faire la copie

Sub bt_click_10()
Range("A4:AI45").Select
Selection.ClearContents
Range("c4").Select
Dim l
l = 4
Application.ScreenUpdating = False
Sheets("Planification").Select

For j = 4 To Range("A65536").End(xlUp).Row
verifie:
' si la valeur de la ligne j de la colonne B est 499 on arrête
If Cells(j, 2).Value = "499" Then
'Ici j'aimerais qu'une formule de somme s'inscrive automatiquement
dans ma feuille serie 10 pour les colonnes de i à w
Sheets("Serie 10").Select
Exit Sub
Else
' Je m'assure de vérifier les colonnes de 9 à 34
For i = 9 To 34
If Cells(j, i).Value = "" Then
'si vide je ne fait rien
Else
'Je m'assure que la colonne b contient un code de priorité
entre 30 et 39.
If (Cells(j, 2).Value >= 10 And Cells(j, 2).Value <= 19) Then
GoTo copie
Else
' rien faire
End If
End If
' Passe à l'autre ligne
Next i
End If
Next j
'la copie est terminé donne le focus à la feuille serie 10
Application.ScreenUpdating = True
Sheets("Serie 10").Select
Exit Sub

copie:


'copie les cellules de la ligne complète de la ligne j dans la feuille
serie 10
For k = 1 To 35
Sheets("Serie 10").Cells(l, k) = Sheets("Planification").Cells(j, k)
Next k
j = j + 1
l = l + 1
'retourne faire la ligne suivante dans la feuille planification
GoTo verifie

End Sub
--
Un gros merci!

2 réponses

Avatar
ClémentMarcotte
Bonjour,

J'ai un petit problème, je voudrais inscrire une somme dans ma feuille
série

10 après la copie de mes données.
Sheets("Serie 10").Cells(l, k) = C'est ici mon problème je veux
avoir la somme de la plage débutant à la ligne 4 de la colonne k jusqu'à
la

ligne précédent ma valeur l de la colonne k.


J'ai pas pensé à la feuille série10; cela fait que cela marche avec la
feuille active, et je ne me suis pas occupé du processus de copie, mais le
principe est là. L'idée est de faire les additions après avoir terminé les
copies.

Sub lestotaux()
derniereligne = [i65536].End(xlUp).Row
' Range("k4").Select
laplage = "i4:i" & derniereligne

'Sélectionner la dernière ligne de la colonne i
Cells(derniereligne + 1, 9).Select
'Mettre la formule une ligne plus bas
Cells(derniereligne + 1, 9).Formula = _
"=" & "sum(" & laplage & ")"
'Préparer une plage de la colonne i
'à la colonne w
laplage = ActiveCell.Address & ":" _
& ActiveCell.Offset(0, 14).Address
'Copier la formule de la colonne i jusqu'à la colonne w
Selection.AutoFill Destination:=Range(laplage), _
Type:=xlFillDefault


Columns("i:w").AutoFit
Range("i4").Select
End Sub

P.S. J'espère que mes lignes ne seront pas trop mal coupées rendues sur le
serveur.

Avatar
MPi
Si tu sais que le début est la ligne 4 et la fin est la ligne l - 1, tu
pourrais y aller ainsi.
Ça copieras la formule de SOMME de I à W sur la ligne l + 1

Dim Début As Long, Fin As Long

Début = 4
Fin = l - 1
Sheets("Serie 10").Range("I" & Fin + 1 & ":W" & Fin +
1).FormulaLocal = _
"=SOMME(I" & Début & ":I" & Fin & ")"

Michel

Bonjour,

J'ai un petit problème, je voudrais inscrire une somme dans ma feuille série
10 après la copie de mes données.

Je pensais utiliser une boucle, car au momment où j'arrête ma copie, je sais
à quelle ligne je suis en utilisant la donnée contenu dans ma variable l et
je veux mettre une somme à mes colonnes de i à w.

ex:
dim k
For k = 9 To 23
Sheets("Serie 10").Cells(l, k) = C'est ici mon problème je veux
avoir la somme de la plage débutant à la ligne 4 de la colonne k jusqu'à la
ligne précédent ma valeur l de la colonne k.

Next k

voici le code complet que j'ai pour faire la copie

Sub bt_click_10()
Range("A4:AI45").Select
Selection.ClearContents
Range("c4").Select
Dim l
l = 4
Application.ScreenUpdating = False
Sheets("Planification").Select

For j = 4 To Range("A65536").End(xlUp).Row
verifie:
' si la valeur de la ligne j de la colonne B est 499 on arrête
If Cells(j, 2).Value = "499" Then
'Ici j'aimerais qu'une formule de somme s'inscrive automatiquement
dans ma feuille serie 10 pour les colonnes de i à w
Sheets("Serie 10").Select
Exit Sub
Else
' Je m'assure de vérifier les colonnes de 9 à 34
For i = 9 To 34
If Cells(j, i).Value = "" Then
'si vide je ne fait rien
Else
'Je m'assure que la colonne b contient un code de priorité
entre 30 et 39.
If (Cells(j, 2).Value >= 10 And Cells(j, 2).Value <= 19) Then
GoTo copie
Else
' rien faire
End If
End If
' Passe à l'autre ligne
Next i
End If
Next j
'la copie est terminé donne le focus à la feuille serie 10
Application.ScreenUpdating = True
Sheets("Serie 10").Select
Exit Sub

copie:


'copie les cellules de la ligne complète de la ligne j dans la feuille
serie 10
For k = 1 To 35
Sheets("Serie 10").Cells(l, k) = Sheets("Planification").Cells(j, k)
Next k
j = j + 1
l = l + 1
'retourne faire la ligne suivante dans la feuille planification
GoTo verifie

End Sub