Vba :

Résolu/Fermé
Usgpa - 11 févr. 2010 à 10:42
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 18 févr. 2010 à 17:28
Bonjour,

Je souhaiterais avoir un renseignement. Dans une feuille excel, j'ai un tableau. Lorsque la personne remplit le formulaire, vba identifie deux cellules de ce tableau. Je souhaiterai connaître le code (si il existe) qui permet d'aditionner les valeurs des cellules comprises entre les deux cellules identifiées (qui se trouvent dans la même colonne).

Merci d'avance.

12 réponses

garion28 Messages postés 1545 Date d'inscription mardi 16 juin 2009 Statut Membre Dernière intervention 3 avril 2011 406
11 févr. 2010 à 15:43
voila ce que j'ai fait:
'on estime que l'adresse de la cellule est donné en string (via un .adresse par exemple, ce qui donne une forme A1)

Sub sumdifcel(debut As String, fin As String)' c'est une fonction

    Dim l_d As Integer
    Dim l_f As Integer
    Dim c As Integer
    Dim somme As Long
    With ActiveSheet
        l_d = .Range(debut).Row + 1
        l_f = .Range(fin).Row - 1
        c = .Range(debut).Column
        somme = 0
        For i = l_d To l_f
            somme = somme + .Cells(i, c).Value
        Next i
    End With
sumdifcel=somme
End Sub

1
Artamos Messages postés 165 Date d'inscription vendredi 5 février 2010 Statut Membre Dernière intervention 28 mars 2011 16
11 févr. 2010 à 10:45
Sheet("Feuil1").cell("B1") = Sheet("Feuil1").cell("A1").value + Sheet("Feuil1").cell("A2").value

bonne chance
Artamos
0
alaryk Messages postés 79 Date d'inscription mercredi 10 février 2010 Statut Membre Dernière intervention 22 août 2016 36
11 févr. 2010 à 10:54
Salut,

Pour additionner deux cellules sur excel, il faut que dans la troisième commencer par le signe =
Ensuite, tu cliques sur une cellule que tu veux additionner + l'autre cellule. Puis tu fais entrée
Exemple :
=A1+A2
Entrée
Et tu as le résultat.

Pour bloquer une cellule, suivant la colonne ou la ligne que tu veux additionner, tu fais f4 ou $ avant le code de la cellule.
Exemple : =$A$1+ A2 → Entrée.

J'espère avoir pu t'aider.
0
Artamos Messages postés 165 Date d'inscription vendredi 5 février 2010 Statut Membre Dernière intervention 28 mars 2011 16
11 févr. 2010 à 11:01
il fait un script VBA, pas une formule a saisir dans une cellule =)
0
En fait j'ai très mal expliqué mes besoins... Je suis désolé.

Grâce au formulaire j'aurai deux cellules : (col_cib; lig_cibl1) ; (col_cib;lig_cibl2).

J'aimerai savoir si il existe une procédure qui permet à chaque fois de faire un calcul qui multiplie ses deux cellules mais aussi chacune des cellules comprises entre celles-ci, par la valeur d'une cellule donnée.

Si Lig_cibl1 = 2 et Lig_Cibl2 = 5

(col_cibl ; Lig_cibl1) * A1
(col-cibl ; 3) * A1
(col-cibl ; 4) * A1
(col-cilb ; Lig_cibl2) * A1

Je ne sais pas si vous avez compris mais je cherche depuis un petit moment et mon esprit est un peu embué...
0

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

Posez votre question
En me relisant je ne me trouve pas très très clair... en fait ce que je voudrais c'est une formule vba remplacant plus ou moins tel quel le fameux : =Somme(A1:A12) .
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 752
11 févr. 2010 à 15:26
Salut,
Tu veux : une formule vba remplacant plus ou moins tel quel le fameux : =Somme(A1:A12)
Voici :
ActiveCell.Formula = "=SUM(A1:A12)"


pour le reste, pas tout compris...
0
Personne n'a donc d'idée sur comment Additionner un nombre indéterminé de cellules comprises entre deux cellules identifier à l'aide de variable ?
0
garion28 Messages postés 1545 Date d'inscription mardi 16 juin 2009 Statut Membre Dernière intervention 3 avril 2011 406
11 févr. 2010 à 15:22
je te rassure tu as été très clair et parfaitement compréhensible :)
ta question c'est de faire la somme des valeurs des cellules qui se trouve entre 2 cellule donnée (par exemple entre A1 et A4 tu veu additionner A2 et A3)

comment est identifié la cellule de début et celle de fin ?
0
Les cellules de début et de fin sont trouvés grâce à un Userform qui recherche une valeur colonne (la même pour les deux cellules) et deux valeurs lignes (début et fin) contenus dans trois textbox.

La colonne est trouvé par le type d'objet et les lignes pas l'entrée en stock et la sortie.
0
Merci beaucoup Garion !!! Bonne soirée à vous !
0
garion28 Messages postés 1545 Date d'inscription mardi 16 juin 2009 Statut Membre Dernière intervention 3 avril 2011 406
11 févr. 2010 à 15:52
de rien, je rectifie un truc: c'est pas .adresse mais .adress (ya un e en trop)
0
Désolé de vous déranger de nouveau à ce sujet mais je ne réussis pas à adapter votre solution à mon outil... Je n'en peux plus, j'ai tenté de substituer d'autre procédure à celle-ci pour arriver à mes fins mais je n'y arrive pas , j'ai demandé conseil sur ce site, en vais et je suis très embêté car même si je m'y étais pris très tôt, je commence à me rapprocher dangereusement de la borderline...

Si vous pouvier m'aider, je vous en serais très reconnaissant. Je vous copie la procédure dans laquelle doit s'inscrire le calcul de la somme des cellules comprise entre (c , l_d) et (c , l_f).

Dim Z As Integer
Dim l_d As Integer
Dim l_f As Integer
Dim c As Integer
Dim somme As Long
Dim cherche9 As String
Dim cherche8 As String
Dim cherche7 As String
cherche9 = TextBox6.Value
c = Feuil5.Cells.Find(what:=cherche9, LookIn:=xlValues, lookat:=xlWhole, searchorder:=xlNext).Column
cherche8 = TextBox4.Value
l_d = Feuil5.Cells.Find(what:=cherche8, LookIn:=xlValues, lookat:=xlWhole, searchorder:=xlNext).Row
cherche7 = TextBox5.Value
l_f = Feuil5.Cells.Find(what:=cherche7, LookIn:=xlValues, lookat:=xlWhole, searchorder:=xlNext).Row


Cette procédure se déclenche au click sur un commandbutton. J'espère vraiment que vous pourrez m'aider... merci d'avance
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 752
18 févr. 2010 à 17:05
Salut,
Tu as c pour colonne, l_d pour ligne de début et l_f pour ligne de fin et tu veux la somme dans une variable :

somme = Application.WorksheetFunction.Sum(Range(Cells(l_d, c), Cells(l_f, c)))
0
Merci beaucoup pijaku ! Pouvez vous me dire où je dois spécifier dans la formule, de quelle feuille excel sont les cells en question ?
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 752 > Usgpa
18 févr. 2010 à 17:22
Ach zo! En plus! Et après c'est tout?
Je plaisante.
Je pense que le plus sage dans ce cas serait de nous faire un petit wizzzzz :
With Sheets("Feuil18") 'en gras le nom de ta feuille
somme = Application.WorksheetFunction.Sum(.Range(.Cells(l_d, c), .Cells(l_f, c))) '!!! attention 
'les points sont hyper importants!!!!!
End With
0
Usgpa > pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024
18 févr. 2010 à 17:28
Pijaku ca marche !!! Merci infiniement, je ne sais pas comment te remercier. Tu me sauves vraiment !!!

Bonne soirée !!!
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 752
18 févr. 2010 à 17:28
bonne soirée.
La prochaine c'est toi qui m'aidera...
EDIT : je suis arrivé en fin de parcours, le plus dur a été fait par d'autres, tu pourrais penser à eux!
0