> 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 participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
Webcam Logitech HD Pro C920 à 59,99 €
59,99 € 70 € -14%
@Amazon
Batterie externe Baseus 20 000 mAh (USB C, 65W) à 39,89 €
39,89 € 65 € -39%
@Amazon
Chargeur rapide USB-C Baseus 65W (2xUSB C PD, 2xUSB A, GaN) à 23,99 €
25,99 € 45,99 € -43%
@Amazon
Machine à café Philips SENSEO Original + 200 dosettes à 49,99 €
49,99 € 99 € -50%
@Cdiscount
PC portable 16 pouces Ninkear N16 Pro (2.5K 165 Hz, Intel Core i7-13620H, 32 Go RAM, SSD 1 To, Windows 11, Qwerty, stickers FR) à 649 €
649 € 850 € -24%
@Geekbuying
SSD Interne M.2 NVMe PCIe 5.0 Samsung 990 EVO 2 To à 127,99 €
127,99 € 159,99 € -20%
@Cdiscount

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