Comment faire une somme automatique avec des variables
2 réponses
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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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.
'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.
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.
'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.
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.
'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.
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
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
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