Gerer plage à deux variables

Bonjour,

Je sollicite votre aide pour un petit problème.

Je désire venir calculer la somme d'une plage, cette plage, je souhaite la déclarer en fonction de deux variables "Colonne" et "ligne" déclarés au préalable. Le problème ce que je n'arrive pas à déclarer la plage avec les deux varaibles, si j'utilise que la variable ligne cela fonction, si que la colonne ok aussi.

Plus simplement, je déclare une ligne et un colonne, ce qui n’emmène à une cellule, puis je souhaite sommer toutes les cellules de la ligne qui se situe jusqu’à 30 colonnes en arrière.

J'ai essayé de gérer çà avec :

Set moisglissant = Sheets("CTB").Range("Colonne-4 & Ligne : Colonne & Ligne")

ou bien

Set moisglissant = Sheets("CTB").Columns("Colonne-4 : Colonne").Rows(Ligne)

Ci joint la partie de mon code :

Sub injection_dans_table()

Dim Valeur_Cherchee As String

Dim Ligne As Double

Dim i As Double

Dim Colonne As Integer

Dim anneeencours As String

Dim trimestreencours As String

Dim moisencours As Integer

Dim semaineencours As Integer

'injection dans la table à l'instant "t"

anneeencours = year(Now())

trimestreencours = anneeencours & DatePart("q", Now)

moisencours = anneeencours & Month(Now())

semaineecours = anneeencours & DatePart("ww", Now)

i = 6

While Sheets("table").Cells(i, 4) <> ""

'Affectation de valeurs aux variables :

Valeur_Cherchee = Sheets("Table").Range("D" & i) 'on cherche telle valeur de telle feuille

Ligne = Sheets("CTB").Columns(1).Find(Valeur_Cherchee, lookat:=xlWhole).Row ' L est egal à la ligne ou on a trouvé la valeur correspondante / LookAt:=xlWhole) valeur exacte

Colonne = Sheets("CTB").Rows(5).Find(moisencours, lookat:=xlWhole).Column

Set moisglissant = Sheets("CTB").Range("Colonne-30 & Ligne : Colonne & Ligne")

'Set moisglissant = Sheets("CTB").Columns("Colonne-30 : Colonne").Rows(Ligne)

Sheets("Table").Range("J" & i) = Application.WorksheetFunction.Sum(moisglissant)

Merci d'avance pour votre aide,

Bonne journée à vous

Bonjour à tous,

moi qui suis nul en VBA, j'aurais mis :

=somme(décaler(indirect(adresse(ligne;colonne));0;1;1;30))

Crdlmt

Bonjour à tous,

"Colonne-30 & Ligne : Colonne & Ligne" est une chaine de caractères, impossible à interpréter par un range, puisque les variables ligne et colonne sont considérées comme texte "ligne" ou "colonne".

et en admettant que ça puisse fonctionner en l'écrivant correctement, si colonne=12 et ligne=5 (par exemple), on aurait une plage de la forme :

"12-5 & 5:12 & 5" soit "75:125" ce qui ne constitue pas une plage valide à appliquer à un range.

Essayer plutôt avec Cells:

range(cells(lignedébut , colonne début) , cells(lignefin , colonnefin))

A+

Merci beaucoup, cela fonctionne !

laquelle des deux propositions fonctionne ?

ça pourrait intéresser d'autres personnes dans un cas similaire.

Rechercher des sujets similaires à "gerer plage deux variables"