Fonction somme en vba

Fermé
vbastage - 2 mai 2013 à 14:24
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 - 3 mai 2013 à 10:02
Bonjour,
je suis debutante en vba , je souhaite ecrire une fonction qui permet de faire la somme de 2 valeur ( valeur de la colonne 1 et 2) et mettre le resultat dans la colonne 3 sachant que les nombre de lignes augmentent à chaque fois , donc le num ligne est variable.

voila le code que j'ai essayé mais pas de reslt :


R = ActiveCell.Row

OrdreDir = Cells(R, YPCOrdreDir)
CodePole = Cells(R, YPCCodePole)
PIA_BUDGET = Cells(R, 0_BUDGET)
PIA_BUDGET = Cells(R, 1_BUDGET)
TotalBUDGET = Cells(R, TotalBUDGET

TotalBUDGET = Cells(R, 0_BUDGET) + Cells(R, 1_BUDGET)


merci de me repondre ,

19 réponses

Utilisateur anonyme
2 mai 2013 à 14:34
Bonjour,
Il faudrait chercher du coté:
WorksheetFunction.Sum(Range...



Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
0
oui j'ai essayé avec ça :
TotalBUDGET = WorksheetFunction.Sum(Cells(R, 0_BUDGET), Cells(R, 1_BUDGET))

mais tjrs ça marche pas .

j'ai besoin vrmt de vos aides.
merci
0
Utilisateur anonyme
2 mai 2013 à 15:01
La syntaxe est:
Range("C1").Value = Application.WorksheetFunction.Sum(Range("A:B"))


il met dans la cellule C1 la somme de la colonne A et B
Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
0
ct formule permet de faire la somme de tous les valeurs de colonne A et B et met la somme dans une cellule mais moi je voulais la somme de chaque ligne à part !!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
2 mai 2013 à 15:31
Bonjour,

PIA_BUDGET = Cells(R, 0_BUDGET)
PIA_BUDGET = Cells(R, 1_BUDGET)

Ça ne sert à rien d'écrire la 1ere ligne puisque la variable aura la 2e valeur. Même chose pour l'autre variable TotalBUDGET

Tu leur assigne une valeur et tout de suite après tu leur assigne une autre valeur...

Essaie ceci

Range("C" & ActiveCell.Row) = Range("A" & ActiveCell.Row) + Range("B" & ActiveCell.Row)


Ça devrait fonctionner si la cellule active est valable...
Autrement, si tu boucles les lignes, tu changes Activecell.row par la variable de boucle.

Aussi, tu pourrais inscrire les sommes en utilisant Range("C2:C" & nbLignes).Formula = "SUM(A2:B2)"
sachant que nbLignes = le nombre de lignes totales de ta plage et que tu veuilles avoir une somme à chaque ligne



MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
Utilisateur anonyme
2 mai 2013 à 15:38
moi je voulais la somme de chaque ligne à part !!


Dont l'importance de bien expliquer en détail la difficulté sur tes questions:
je souhaite ecrire une fonction qui permet de faire la somme de 2 valeur ( valeur de la colonne 1 et 2) et mettre le resultat dans la colonne 3

Ca devrait être:
je souhaite ecrire une fonction qui permet de faire la somme de 2 valeur ( valeur de la colonne 1 et 2) et mettre les deux resultats dans la colonne 3


Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
0
j'ai pas bien compris ta réponse , mais je te re explique : j'ai un tableau de veingtaines des colonnes et centaines des lignes , moi je cherche une fonction qui permet de calculer la somme ( chaque lignes )de 2 valeurs de colonnes AT et AU et mettre le resultat dans AV , sachant que j'ai un code déja dévélopé et je doit ajouter cette fonction . voila un portion de code :

DefinirNumeroColonnes => 'une fonction pour définir les colonnes
R = ActiveCell.Row
DateValidation = Cells(R, YPCDateValidation)
DateValidationSes = Cells(R, YPCDateValidationSes)
DateDebut = Cells(R, YPCDateDebut)
DateSitepilote = Cells(R, YPCDateSitepilote)
Commentaire = Cells(R, YPCCommentaire)
A0_BUDGET = Cells(R, YPCPIAN0_BUDGET)
A1_BUDGET = Cells(R, YPCPIAN1_BUDGET)
TotalBUDGET = Cells(R, YPCTotalBUDGET)

j'ai essayé avec ça mais ça marche pas :
Range("AV" & ActiveCell.Row) = Range("AT" & ActiveCell.Row) + Range("AU" & ActiveCell.Row)

merci de me repondre
0
Utilisateur anonyme
2 mai 2013 à 16:17
D'après ce que j'ai compris c'est simplement ça que tu veux faire?
Range("AV1").value= Application.WorksheetFunction.Sum(Range("AT:AT"))
Range("AV2").value= Application.WorksheetFunction.Sum(Range("AU:AU"))



Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
0
normalement j'étais claire dans mon msg , la somme de 2 valeurs se trouve dans la colonne AV cad num 48 . j'ai pas compris , vous voulez dire quoi avec AV1 et AV2 .
mais je l'ai essayé comem ça m'affiche un message d'erreur 1004.
0
Utilisateur anonyme
2 mai 2013 à 16:51
normalement j'étais claire dans mon msg
= > Non pas du tout.

- "Erreur 1004"
Sur quelle ligne?

- "la somme de 2 valeurs"
Quels valeurs?
La somme des valeurs de toute la colonne AT et la somme des valeurs de toute la colonne AU ??

- "la somme de 2 valeurs se trouve dans la colonne AV"
Se trouvent déjà ou devront se trouver dans la colonne AV ??

- "colonne AV cad num 48"
C'est quoi le 48? un numéro de ligne?
Si oui que doit-on y inscrire? et la deuxième valeur on la met où?

un conseil: crée un tout nouveau classeur pour tester et tu fais ça:
'Dans la Feuil1
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
   Range("C1").Value  = Application.WorksheetFunction.Sum(Range("A:A"))
   Range("C2").Value = Application.WorksheetFunction.Sum(Range("B:B"))
End Sub


Tu fais F5 en suite tu vas sur ta feuil1 et change les valeurs de la colonne A et B

Cordialement

CF2i - Guadeloupe
Ingénierie Informatique
0
help please
0
Utilisateur anonyme
2 mai 2013 à 17:11
Tu peux pleurer... commence par:

- T'exprimer en français correctement,
- Pas de SMS
- Indenter tes codes avec les balises prévues à cet effet
- Et si tu as la flemme de faire ce qu'on te conseille... on y peut rien.

Tout ça c'est dans CETTE PAGE que j'imagine que tu n'as pas lu.

Bon allez... je vais aller plonger... bon courage.

Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
0
je te rexplique une 3eme fois acive ,
moi je voulais que la fonction fait la somme de valeur de la colonne AT et la valeur de la colonne AU et mettre le resultat dans la colonne AV ,de chaque ligne . cad sur chaque ligne on a un resultat.
donc il faut adapter cette fonction avec le code que j'ai déja (tu le trouve dans les msgs précedants ) de tel sorte que si on ajoute une ligne à chaque fois la fonction tjrs fonctionne .


merci d'avance
0
Utilisateur anonyme
2 mai 2013 à 17:29
Légèrement plus clair !!!

je voulais que la fonction fait fasse la somme de valeur de la colonne AT et la valeur de la colonne AU et mettre le resultat dans la colonne AV ,de chaque ligne . cad c'est à dire que sur chaque ligne on a un resultat.

Essaie ça:
Attention si tu mets une lettre ça génère une erreur (à rectifier)
   For i = 1 To ActiveSheet.UsedRange.Rows.Count
      Range("C" & i).Value = Range("A" & i) + Range("B" & i)
   Next



Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
0
Utilisateur anonyme
2 mai 2013 à 17:34
Tu remplaceras, bien entendu le "C" par "AV", "A" par "AT" et "B" par "AU"


Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
0
Utilisateur anonyme
2 mai 2013 à 20:15
Donc, ils t'ont foutu en stage sur VBA sans te montrer VBA ?
0
Utilisateur anonyme
3 mai 2013 à 03:24
Bonjour cmarcotte,
Surtout que je vois sur sa fiche:

Pseudo : vbastage
Prénom : Nourhane
Pays : (France)

Bon d'accord je ne suis pas à coté, MAIS on écrit français chez nous...

Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
0
merci acive pour ton code qui marche sauf qu'il m'affiche des 0 dans les restes de cellules sur toutes les lignes de la feuille .


PS : 1) je voulais te dire que c'est un forum pour aider les gens à programmer non pas pour leur apprendre le français .
2) t'as pas le droit d'afficher ma fiche sur le forum , c'est impoli monsieur l'ingénieur
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
3 mai 2013 à 10:02
Bonjour,

Pour éviter plus de débordements et suite à un message dans la BAL admin déposé par l'auteur de ce post, je clos ce sujet.
0
Rejoignez-nous