> Tous les forums > Forum Bureautique
 VBA Excel utilisation de la fonction OFFSETSujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
davkinder
  Posté le 08/07/2013 @ 11:30 
Aller en bas de la page 
Nouvel astucien

Bonjour,

Alors j'ai une boucle while avec a l'interieur une formule qui contient la fonction OFFSET.

J'aimerais faire varier un des parametres de la fonction OFFSET, i, comme ceci:

ActiveCell.FormulaR1C1 = _
"=SQRT(SUMSQ(OFFSET(RC,i,-1)-RC[-1],OFFSET(RC,i,-2)-RC[-2],OFFSET(RC,i,-3)-RC[-3],OFFSET(RC,i,-4)-RC[-4],OFFSET(RC,i,-5)-RC[-5],OFFSET(RC,i,-6)-RC[-6]))"

Mais cela ne marche pas car la formule prend i en parametre et non sa valeur.

Voici la fonction complete:

Sub CalculateCalculateDistances()
Dim c As String
c = ActiveCell.Value
i = 1
Do
ActiveCell.FormulaR1C1 = _
"=SQRT(SUMSQ(OFFSET(RC,i,-1)-RC[-1],OFFSET(RC,i,-2)-RC[-2],OFFSET(RC,i,-3)-RC[-3],OFFSET(RC,i,-4)-RC[-4],OFFSET(RC,i,-5)-RC[-5],OFFSET(RC,i,-6)-RC[-6]))"
ActiveCell.Range("A1").Select
ActiveCell.Offset(-1, 0).Range("A1").Select
c = ActiveCell.Value
i = i + 1
Loop While c <> "$End"
ActiveCell.Offset(1, 1).Range("A1").Select
End Sub

Dites moi si ce nést pas clait

Merci de votre aide.

David

Publicité
ferrand
 Posté le 08/07/2013 à 13:14 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Salut,

J'aurais tendance à trouver plus économique et plus aisé de réaliser les calculs en VBA et d'affecter le résultat à la cellule voulue, plutôt que d'affecter une formule...

En tout cas, si tu affectes une formule, tu l'affectes sous forme de chaîne. Si tu insères dans ta formule la valeur d'une variable i, le i doit être hors des parties de formules entre guillemets : "=xxxxxxxxxxxx" & i & "xxxxxxxxxxxxxxxxxxx" & i &....

davkinder
 Posté le 08/07/2013 à 14:05 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Nouvel astucien

Salut,

J'ai finalement trouve la solution, en faisant:

ActiveCell.FormulaR1C1 = _
"=SQRT(SUMSQ(OFFSET(RC," + CStr(i) + ",-1)-RC[-1],OFFSET(RC," + CStr(i) + ",-2)-RC[-2],OFFSET(RC," + CStr(i) + ",-3)-RC[-3],OFFSET(RC," + CStr(i) + ",-4)-RC[-4],OFFSET(RC," + CStr(i) + ",-5)-RC[-5],OFFSET(RC," + CStr(i) + ",-6)-RC[-6]))"

Merci

David

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Sujets relatifs
EXCEL: Fonction DATEDIF
VBA Excel valeur en fonction de cellules
[Excel 2007] Fonction NB.SI - problème
Recherche d'une fonction dans EXCEL
Fonction "repeter" sur eXcel
fonction excel ( lien feuille)
Fonction SI Excel (Excel 2007)
(Macro Excel) Sélectionner cellule en fonction de sa couleur
excel 2010 : sélection de valeurs mensuelles en fonction du mois choisi
Limiter d'utilisation d'un fichier Excel
Plus de sujets relatifs à VBA Excel utilisation de la fonction OFFSET
 > Tous les forums > Forum Bureautique