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 -
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 :
Merci infiniment pour votre aide.
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:
- Accéder à un Range d'une feuille sur VBA
- Comment imprimer en a5 sur une feuille a4 - Guide
- Comment supprimer une feuille sur word - Guide
- Bruler feuille de laurier - Guide
- Feuille de pointage excel - Télécharger - Tableur
- Feuille de score belote excel - Forum Excel
2 réponses
Bonjour,
Si les valeurs se trouvent sur la feuille "Donnees", essaies :
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