> 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
Mini PC GEEKOM A8 (Ryzen 9 8945HS, 32 Go RAM, SSD 2 To, Radeon RX 780M, Windows 11 Pro)
828,56 € 1049 € -21%
@Amazon Allemagne
Bureau Assis Debout électrique SANODESK QS1 + plateau 110x60 cm
99,99 € 139 € -28%
@Amazon
Sac à dos de voyage Taygeer compatible cabine avion 45x36x20 cm
26,49 € 36,99 € -28%
@Amazon
FatBike électrique pliable Touroll S1 (20 pouces, 100 km)
699 € 999 € -30%
@Geekbuying
Switch TP-Link TL-SG105-M2 5 Ports 2.5G
53,57 € 79,99 € -33%
@Amazon
Mini PC GMK G3 Plus (Intel N150, 16 Go RAM, SSD NVMe 1 To, WiFi 6, Windows 11 Pro)
208,01 € 259 € -20%
@Amazon

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