• Initiateur de la discussion Initiateur de la discussion roza
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

R

roza

Guest
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
 
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:
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
 
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

Dernière édition:
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:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
19
Affichages
2 K
A l l i g a t o r 427
A
H
Réponses
5
Affichages
1 K
Retour