VBA - Erreur 1004 - définition du RANGE

VBeginner

XLDnaute Nouveau
Bonjour,

je suis actuellement bloqué avec une "simple" définition d'une variable range (en fait quelques cellules d'une colonne) que je souhaite par la suite utiliser pour le calcul d'une moyenne.
J'ai en fait 2 feuilles:
- l'une contient les valeurs brutes (feuille_origine)
- l'autre contiendra le résultat du calcul
Dans le code ci-dessous, j'ai testé avec une entrée "manuel" de la plage (A3:A20) et cela fonctionne. Par contre impossible de rentrer la plage en utilisant la propriété "Cells". Je pense faire une erreur avec l'utilisation de cette propriété mais ....?
Voici le code actuel :

With mafeuille_destination.Range("A1")
For i = 0 To colonne_max 'parcours des colonnes
.Offset(0, i) = mafeuille_origine.Range("A1").Offset(0, i)
.Offset(1, i) = mafeuille_origine.Range("A1").Offset(1, i)
For j = N + 2 To 100 'parcours des lignes
Set plage = mafeuille_origine.Range("A3:A20") '<--- ca fonctionne
Set plage = .Range(.Cells(3, 0), .Cells(20, 0)) '<---- pas ça erreur 1004
moyenne = WorksheetFunction.Average(plage)
.Offset(j - N, i).Value = moyenne
Next


Merci d'avance pour votre aide.
 

tototiti2008

XLDnaute Barbatruc
Re : VBA - Erreur 1004 - définition du RANGE

Bonjour VBeginner,

Bienvenue sur XLD,

Cells attend un numéro de ligne et un numéro de colonne, les numérotations des lignes et colonnes commençant à 1
C'est pour ça qu'il n'aime pas tes 0 dans les numéros de colonnes...

Edit : Bing, Bonjour Pierrot ;)
 

VBeginner

XLDnaute Nouveau
Re : VBA - Erreur 1004 - définition du RANGE

Comme quoi j'ai vraiment bien choisi mon pseudo !

Par contre, en remplaçant les 0 par des 1, j'ai toujours l'erreur.
Ce qui me surprend c'est que, quand j'utilise le pas à pas, l'évaluation de .Cells(3,1) par exemple me donne la valeur de la feuille de destination et non pas celle de la feuille d'origine.
 

Pierrot93

XLDnaute Barbatruc
Re : VBA - Erreur 1004 - définition du RANGE

Re, bonjour toto

Ce qui me surprend c'est que, quand j'utilise le pas à pas, l'évaluation de .Cells(3,1) par exemple me donne la valeur de la feuille de destination et non pas celle de la feuille d'origine.

tu es dans un bloc "with" représentant la feuille de destination à priori...
With mafeuille_destination.Range("A1")
 
C

Compte Supprimé 979

Guest
Re : VBA - Erreur 1004 - définition du RANGE

Salut VBeginner

Il ne faut pas oublier le "conteneur"
Code:
Set plage = mafeuille_origine.Range(mafeuille_origine.Cells(3, 1), mafeuille_origine.Cells(20, 1))

A+
 

Discussions similaires

Statistiques des forums

Discussions
312 294
Messages
2 086 920
Membres
103 404
dernier inscrit
sultan87