VBA: Somme en ligne

roza

XLDnaute Nouveau
Bonjour,

J'ai un tableau dans lequel je souhaiterai faire la somme de plusieurs valeurs.
Celles-ci, sont en ligne et doivent être réalisées en colonne, comme suit:

DN=DK+DL+DM
DT=DQ+DR+DS
EC=DX+DY+DZ+EA+EB
EW=ET+EU+EV

Merci de votre aide
 

Paf

XLDnaute Barbatruc
Re : VBA: Somme en ligne

Bonjour,

je n'ai sans doute rien compris, mais, pourquoi du VBA?

en DN6 : =SOMME(DK6 : DM6)
en DT6 : =SOMME(DQ6 : DS6)
etc....
puis "tirer" les formules vers le bas

Bonne suite
 
Dernière édition:

roza

XLDnaute Nouveau
Re : VBA: Somme en ligne

Bonjour Paf,

J'ai en effet commencé par faire "somme" de cette façon, mais si je supprime la personne sélectionnée, ca efface toute
la ligne, ainsi que les additions des cellules (DN, DT, EC, EW).
D'où, le souhait de le faire en VBA.

En espérant que tu aies une idée,

Merci
 

laurent950

XLDnaute Accro
Re : VBA: Somme en ligne

Bonsoir

Ca devrait être ok.

VB:
Sub test()
Dim wkb As Workbook
Dim wksf1 As Worksheet
Dim DN As Range
Dim DT As Range
Dim EC As Range
Dim EW As Range

Set wksf1 = Worksheets("Lectures Electriciens de Quart")
der = wksf1.Cells(65536, 1).End(xlUp).Row

For i = 6 To der
'somme plage
Set DN = wksf1.Range(wksf1.Cells(i, 115), wksf1.Cells(i, 117))
Set DT = wksf1.Range(wksf1.Cells(i, 121), wksf1.Cells(i, 123))
Set EC = wksf1.Range(wksf1.Cells(i, 128), wksf1.Cells(i, 132))
Set EW = wksf1.Range(wksf1.Cells(i, 150), wksf1.Cells(i, 152))

If wksf1.Cells(i, 115) <> "" Or wksf1.Cells(i, 116) <> "" Or wksf1.Cells(i, 117) <> "" Then
wksf1.Cells(i, 118) = "=Sum(" & DN.Address & ")"
End If

If wksf1.Cells(i, 121) <> "" Or wksf1.Cells(i, 122) <> "" Or wksf1.Cells(i, 123) <> "" Then
wksf1.Cells(i, 124) = "=Sum(" & DT.Address & ")"
End If

If wksf1.Cells(i, 128) <> "" Or wksf1.Cells(i, 129) <> "" Or wksf1.Cells(i, 130) <> "" _
Or wksf1.Cells(i, 131) <> "" Or wksf1.Cells(i, 132) <> "" Then
wksf1.Cells(i, 133) = "=Sum(" & EC.Address & ")"
End If

If wksf1.Cells(i, 150) <> "" Or wksf1.Cells(i, 151) <> "" Or wksf1.Cells(i, 152) <> "" Then
wksf1.Cells(i, 153) = "=Sum(" & EW.Address & ")"
End If

Set DN = Nothing
Set DT = Nothing
Set EC = Nothing
Set EW = Nothing
Next i

End Sub

PS : Si quelqu'un a plus simpe ou peux compresser le code je serais content de m'amlioré encore
un peux plus chaque jour
laurent
 

Pièces jointes

  • Copie de 3LgqdYlnqAX_fichierxld decembre 06 2012.xlsm
    675.4 KB · Affichages: 227
Dernière édition:

laurent950

XLDnaute Accro
Re : VBA: Somme en ligne

Je ne sais pas d'ou peux venir l'erreur en faite der donne la position de la
derniere ligne de votre feuille colonne A donc peut être avec votre fichier
je vais pouvoir detecter cette erreur et peux être mettre l'option explicit
en entête.
 
Dernière édition:

Statistiques des forums

Discussions
312 493
Messages
2 088 957
Membres
103 990
dernier inscrit
lamiadebz