bonjour je cherche à faire un truc dans le genre
est ce possible?Code:range("a1")= somme(range("b1:b10"))
sinon comment pourrais je faire?
Version imprimable
bonjour je cherche à faire un truc dans le genre
est ce possible?Code:range("a1")= somme(range("b1:b10"))
sinon comment pourrais je faire?
bonjour
essaye cela :
Code:
1
2 Dim a As Double a = Application.WorksheetFunction.Sum(range("B1:B10"))
bien joué
je te remercie
juste une petite question supplementaire
peux t on mettre un
dans une variable pour éviter de toujours retaper?Code:
1
2 with end with
re:
pourquoi faire ?
With est utilisé pour simplifier les codes vba pour éviter de taper à chaque fois une arborescence d'objet.
c'est juste que je utilise plusieurs fois la même commande with à plusieurs endroit dans le module.
donc je me suis dit que je déclare une variable avec la commande en début de module pour pouvoir l'utiliser quand je veux
c'est juste de la féniantise ^^
Ma commande c'est
cela permettrai de soulager la taille de mon module ^^Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 With Range("ae59") .Offset(0, 0) = Application.WorksheetFunction.Sum(Range("ae9:ae53")) .Offset(0, 2) = Application.WorksheetFunction.Sum(Range("ag9:ag53")) .Offset(0, 4) = Application.WorksheetFunction.Sum(Range("ai9:ai53")) .Offset(0, 6) = Application.WorksheetFunction.Sum(Range("ak9:ak53")) .Offset(0, 8) = Application.WorksheetFunction.Sum(Range("am9:am53")) .Offset(0, 10) = Application.WorksheetFunction.Sum(Range("ao9:ao53")) .Offset(0, 12) = Application.WorksheetFunction.Sum(Range("aq9:aq53")) .Offset(0, 14) = Application.WorksheetFunction.Sum(Range("as9:as53")) .Offset(0, 16) = Application.WorksheetFunction.Sum(Range("au9:au53")) .Offset(0, 18) = Application.WorksheetFunction.Sum(Range("aw9:aw53")) .Offset(0, 20) = Application.WorksheetFunction.Sum(Range("ay9:ay53")) .Offset(0, 22) = Application.WorksheetFunction.Sum(Range("ba9:ba53")) End With
re:
pour la repetition de ligne, il existe le copier coller ou encore : ctrl y et ctrl c
sinon dans un module :
ensuite tu peux l'utiliser comme tu veuxCode:
1
2
3 Function somme(valeur as range) as double somme = application.worksheetfunction.sum(valeur) end function
plus facile quand memeCode:
1
2
3 sub essai() msgbox somme(range("A1:A10") end sub
Code:
1
2
3
4
5
6
7 dim i as long With Range("ae59") for i = 0 to 22 step 2 .offset(0,i) = application.worksheetfunction.sum(range(cells(9,31+i).address & ":" & cells(53,31+i).address)) next i end with
pas faut lol j'en apprend tous jours
je te remercie pour les astuces^^