Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

faire une somme en VBA

  • Initiateur de la discussion Initiateur de la discussion seb631
  • 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 !

S

seb631

Guest
salut
voilà mon problème

j'ai un même tableau sur 3 feuilles.
Je dois effectuer une somme (colonne C = Col A + Col B)

j'ai fait le programme suivant.

Sub Somme()
For i = 1 To 3
With Worksheets("Feuil" & i)
.Range("C1").Select
.Range("C1") = "=SUM(A1:B1)"
.Range("C1").Select
Selection.AutoFill Destination:=.Range("C1:C5"), Type:=xlFillDefault
.Range("C1:C5").Select
End With
Next

End Sub


Mais le code ne fonctionne pas? Pourquoi?

PS j'ai modifié le programme, oublie des guillemets à "Feuil" mais ça marche toujours pas.
l'erreur est : la méthode Select de la classe range a échoué.
 
Dernière modification par un modérateur:
Re : faire une somme en VBA

Bsr à tous

Essaye ainsi


Code:
Sub Somme()
For i = 1 To 3
With Worksheets("Feuil" & i)
.Activate
.Range("C1") = "=SUM(A1:B1)"
.Range("C1").AutoFill Destination:=.Range("C1:C5"), Type:=xlFillDefault
End With
Next
End Sub

NB: Les feuilles doivent se nommées Feuil1, Feuil2, Feuil3

A+
 
Re : faire une somme en VBA

bonsoir seb631,
un essai si j'ai bien compris le probleme,


#
Sub Somme()
Dim Ws As Worksheet
Dim a, i As Integer
For Each Ws In ActiveWorkbook.Worksheets
a = Application.CountA(Ws.Range("A1:A65536"))
For i = 1 To a
Ws.Range("C" & i) = Application.Sum(Ws.Range("A" & i & ":B" & i))
Next i
Next
End Sub
#

bonne soirée
 
Re : faire une somme en VBA

Bonjour le fil, le forum,

En VBA la sélection de cellules ou feuilles est presque toujours inutile :

Code:
Sub Somme()
Dim i As Byte
For i = 1 To 3
Worksheets("Feuil" & i).Range("C1:C5").FormulaR1C1 = "=SUM(RC[-2]:RC[-1])"
Next
End Sub

ou encore :

Code:
Sub Somme()
Dim i As Byte
For i = 1 To 3
With Worksheets("Feuil" & i)
.Range("C1:C5").FormulaR1C1 = "=SUM(RC[-2]:RC[-1])"
.Range("C1:C5").Value = .Range("C1:C5").Value 'ne conserve que les valeurs
End With
Next
End Sub

Bonne journée.
 
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

  • Question Question
XL 2021 listbox
Réponses
18
Affichages
767
Réponses
14
Affichages
487
Réponses
5
Affichages
931
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…