Accéder à un Range d'une feuille sur VBA

Résolu
Mouaffak_Mohammed Messages postés 20 Statut Membre -  
Mouaffak_Mohammed Messages postés 20 Statut Membre -
Bonjour,

J'essaye d'accéder à des données sur la feuille "Donnees", pour pouvoir accéder à Range("I2")
Dans le code suivant ( oubliez ce qui est en commentaire ) je teste pour savoir si le while accède à la feuille "Donnees" que j'ai activée, mais il fait le calcul sur la feuille où j'appelle la fonction, du coup il considère Range("I2") sur la feuille où j'effectue le calcul et non "Donnees".
Voici mon code :

Public Function PrixUnitaire(Depot, Base_Oil, Transaction, Year, Week)
'Worksheets("Donnees").Activate
Sheets("Donnees").Activate
Dim i As Integer
Dim Sum As Double
Dim j As Integer
i = 0
Sum = 0
j = 0
While (Range("I2").Offset(i, 0) <> "")
'If Range("I2").Offset(i, -8) = Depot And Range("I2").Offset(i, -7) = Base_Oil And Range("I2").Offset(i, -5) = Transaction And Range("I2").Offset(i, -2) = Year And Range("I2").Offset(i, 0) = Week Then
'Sum = Sum + Range("I2").Offset(i, 7)
'j = j + 1
'End If
i = i + 1
Wend
'PrixUnitaire = Sum / j
PrixUnitaire = i
End Function



Merci infiniment pour votre aide.
A voir également:

2 réponses

Patrice33740 Messages postés 8930 Statut Membre 1 781
 
Bonjour,

Si les valeurs se trouvent sur la feuille "Donnees", essaies :
Public Function PrixUnitaire(Depot, Base_Oil, Transaction, Year, Week)
Dim w As Worksheet
Dim i As Integer
Dim Sum As Double
Dim j As Integer

  Set w = Worksheets("Donnees")
  i = 0
  Sum = 0
  j = 0
  With w
    While .Range("I2").Offset(i, 0) <> ""
      'If .Range("I2").Offset(i, -8) = Depot And .Range("I2").Offset(i, -7) = Base_Oil And .Range("I2").Offset(i, -5) = Transaction And .Range("I2").Offset(i, -2) = Year And .Range("I2").Offset(i, 0) = Week Then
      'Sum = Sum + .Range("I2").Offset(i, 7)
      'j = j + 1
      'End If
      i = i + 1
    Wend
  End With
  'PrixUnitaire = Sum / j
  PrixUnitaire = i
End Function


0
Mouaffak_Mohammed Messages postés 20 Statut Membre
 
Bonjour;
Merci de votre réponse.
J'ai testé votre Code tel qu'il est mais ça m'affiche une erreur " #Value "
Normalement votre code et le mien devrait marcher !! je n'ai aucune idée où l'erreur peut être.
J'attends vos retours, Merci.
0
Patrice33740 Messages postés 8930 Statut Membre 1 781
 
Peut-être que ...
Dim i As Long
0
Mouaffak_Mohammed Messages postés 20 Statut Membre
 
Excellent , J'ai pas pensé à ça.Merci .
0