somme de plage variable

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

Blafi

XLDnaute Occasionnel
Bonsoir à tous,

Mon pb en VBA :

J'ai un tableau dans lequel je désire entrer en bas d'une colonne (dont le numéro et la longueur varient) une formule calculant la somme de toutes les cellules au dessus.

je calcule la dernière ligne de mon tableau que j'appelle l et je relève le numero de la colonne à traiter qui se trouve dans la cellule E1 de mon tableau, je l'appelle j.

Ensuite je donne un nom à mes deux variables de cellules qui seront la cellule la plus haute (Lacel1) et la cellule la plus basse (Lacel2) afin de rentrer ma formule de somme dans la cellule en dessous de Lacel2 (je veux faire : somme(lacel1:lacel2) )

A chaque fois que ma macro arrive à la définition de Lacel2, j'ai un message d'erreur "91" "variable objet ou variable de bloc with non définie".... je ne comprends pas pourquoi puisque ça marche avec Lacel1..

Ci-dessous ma macro, si quelqu'un peut m'aider à résoudre ce mystère (je fais certainement une erreur mais ou ?)...
----------------------------------------
Public Sub RecetteJ()

Sheets("Versements").Select

l = Range("D65536").End(xlUp).Row 'On identifie la dernière ligne en partant du bas
MsgBox "la ligne est " & l, vbOKOnly 'ca marche

j = Range("E1").Value 'ca marche
MsgBox "la colonne est " & j, vbOKOnly 'ca marche

Lacel1 = Cells(3, j) 'ca marche

Lacel2 = Cells(l, j) 'ca marche plus !!


Cells(l + 1, j).Select

ActiveCell.FormulaLocal = "=SOMME(Lacel1" & ":" & "Lacel2" & ")"

end sub
----------------------------------------

Merci d'avance et à bientôt...
 
Re : somme de plage variable

Bonsoir Blafi
Essayez ceci :
Code:
[COLOR="DarkSlateGray"][B]Public Sub RecetteJ()
   Sheets("Versements").Select
   l = Range("D65536").End(xlUp).Row 'On identifie la dernière ligne en partant du bas
   MsgBox "la ligne est " & l, vbOKOnly 'ca marche
   j = Range("E1").Value 'ca marche
   MsgBox "la colonne est " & j, vbOKOnly 'ca marche
   Set Lacel1 = Cells(3, j) 'ca marche
   Set Lacel2 = Cells(l, j) 'ca marche plus !!
   Cells(l + 1, j).Select
   ActiveCell.FormulaLocal = "=SOMME(" & Lacel1.Address & ":" & Lacel2.Address & ")"
End Sub[/B][/COLOR]
ROGER2327
#3633


Mardi 17 Merdre 137 (Saint Saint Woland, professeur, SQ)
15 Prairial An CCXVIII
2010-W22-4T23:04:56Z
 
Re : somme de plage variable

Bonjour,

Merci Roger2327 pour ta réponse et ta solution.... ça marche!.

Je me posais une question : quand on utilise cells(2,3) par exemple, on fait référence à la cellule C2, mais comment traduire cells(2,3) en "C2"... est-ce avec le "address" que tu as utilisé ?

En tout cas merci et bon courage...
 
Re : somme de plage variable

Re...
(...)
Je me posais une question : quand on utilise cells(2,3) par exemple, on fait référence à la cellule C2, mais comment traduire cells(2,3) en "C2"... est-ce avec le "address" que tu as utilisé ?
(...)
Oui, Cells(2, 3).Address renvoie "$C$2".​
Bonne journée.
ROGER2327
#3635


Mercredi 18 Merdre 137 (Saint Anal, cordelier et Sainte Foire, anagogue, SQ)
16 Prairial An CCXVIII
2010-W22-5T07:08:09Z
 
- 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

Discussions similaires

Réponses
8
Affichages
233
  • Question Question
Microsoft 365 Traitement
Réponses
7
Affichages
127
Réponses
5
Affichages
472
Réponses
2
Affichages
153
Réponses
6
Affichages
208
Retour