Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Aide sur formule de cellule!

1 réponse
Avatar
Dany Soucy
J'ai un fichier excel qui fait de l'acquisition de données à partir d'un
logiciel nommé datahub avec la macro suivante:

Dim temps
Dim mArret
Sub ACQUI()
[C7].FormulaLocal = "=datahub|AQX!'1A1.Analog Input.1.object-name'"
[D7].FormulaLocal = "=datahub|AQX!'1A1.Analog Input.2.object-name'"
[E7].FormulaLocal = "=datahub|AQX!'1A1.Analog Input.3.object-name'"
[F7].FormulaLocal = "=datahub|AQX!'1A1.Analog Input.4.object-name'"
[G7].FormulaLocal = "=datahub|AQX!'1A1.Analog Input.5.object-name'"
[H7].FormulaLocal = "=datahub|AQX!'1A1.Analog Input.6.object-name'"
[I7].FormulaLocal = "=datahub|AQX!'1A1.Analog Input.7.object-name'"
[J7].FormulaLocal = "=datahub|AQX!'1A1.Analog Input.8.object-name'"
[K7].FormulaLocal = "=datahub|AQX!'1A1.Analog Value.1.object-name'"
[L7].FormulaLocal = "=datahub|AQX!'1A1.Analog Value.2.object-name'"
[M7].FormulaLocal = "=datahub|AQX!'1A1.Analog Value.3.object-name'"
[N7].FormulaLocal = "=datahub|AQX!'1A1.Analog Value.4.object-name'"
[O7].FormulaLocal = "=datahub|AQX!'1A1.Analog Value.5.object-name'"
[P7].FormulaLocal = "=datahub|AQX!'1A1.Analog Value.6.object-name'"
[Q7].FormulaLocal = "=datahub|AQX!'1A1.Analog Value.7.object-name'"
[R7].FormulaLocal = "=datahub|AQX!'1A1.Analog Value.8.object-name'"
[S7].FormulaLocal = "=datahub|AQX!'1A2.Analog Input.1.object-name'"
[T7].FormulaLocal = "=datahub|AQX!'1A2.Analog Input.2.object-name'"
[U7].FormulaLocal = "=datahub|AQX!'1A2.Analog Input.3.object-name'"
[V7].FormulaLocal = "=datahub|AQX!'1A2.Analog Input.4.object-name'"
[W7].FormulaLocal = "=datahub|AQX!'1A2.Analog Input.5.object-name'"
[X7].FormulaLocal = "=datahub|AQX!'1A2.Analog Input.6.object-name'"
[Y7].FormulaLocal = "=datahub|AQX!'1A2.Analog Input.7.object-name'"
[Z7].FormulaLocal = "=datahub|AQX!'1A2.Analog Input.8.object-name'"
[AA7].FormulaLocal = "=datahub|AQX!'1A2.Analog Value.1.object-name'"
[AB7].FormulaLocal = "=datahub|AQX!'1A2.Analog Value.2.object-name'"
[AC7].FormulaLocal = "=datahub|AQX!'1A2.Analog Value.3.object-name'"
[AD7].FormulaLocal = "=datahub|AQX!'1A2.Analog Value.4.object-name'"
[AE7].FormulaLocal = "=datahub|AQX!'1A2.Analog Value.5.object-name'"
[AF7].FormulaLocal = "=datahub|AQX!'1A2.Analog Value.6.object-name'"
[AG7].FormulaLocal = "=datahub|AQX!'1A2.Analog Value.7.object-name'"
[AH7].FormulaLocal = "=datahub|AQX!'1A2.Analog Value.8.object-name'"
If Time >= [F5] And Time <= [H5] And Date >= [F4] And Date <= [H4] Then
Sheets(1).[A65000].End(xlUp).Offset(1, 0) = Date
Sheets(1).[A65000].End(xlUp).Offset(0, 1) = Time
Sheets(1).[A65000].End(xlUp).Offset(0, 2).FormulaLocal =
"=datahub|AQX!'1A1.Analog Input.1.presentvalue'"
End If
If Not mArret Then
temps = Now + [K3]
Application.OnTime temps, "ACQUI"
End If
End Sub
Sub Demarre()
mArret = False
ACQUI

End Sub
Sub Arret()
mArret = True
End Sub
Sub auto_close()
On Error Resume Next
Application.OnTime temps, Procedure:="ACQUI", Schedule:=False
End Sub


Les première ligne vont seulement aller chercher le titres de chaque point
enregistré (.object-name ) ceci fonctionne très bien, le problème est cette
ligne :

Sheets(1).[A65000].End(xlUp).Offset(0, 2).FormulaLocal =
"=datahub|AQX!'1A1.Analog Input.1.presentvalue'"

Elle inscrit la formule dans la cellule, alors que je voudrais uniquement le
résultat de cette formule pour éviter qu'elle ne se mettre toujours à jour.
Il s'agit d'une macro d'acquisition donc il me faut la valeur au moment de
la prise de lecture à chaque ligne.

Quelqu'un pourrais m'aider ?


Merci!

1 réponse

Avatar
JB
Bonsoir,

Peut-être:

Sheets(1).[A65000].End(xlUp).Offset(0, 2) = _
Evaluate("datahub|AQX!'1A1.Analog Input.1.presentvalue'")

ou

Sheets(1).[A65000].End(xlUp).Offset(0, 2).FormulaLocal =
"Útahub|AQX!'1A1.Analog Input.1.presentvalue'"
Sheets(1).[A65000].End(xlUp).Offset(0, 2).Value = _
Sheets(1).[A65000].End(xlUp).Offset(0, 2).Value

JB

On 27 mar, 20:04, "Dany Soucy" wrote:
J'ai un fichier excel qui fait de l'acquisition de données à partir d 'un
logiciel nommé datahub avec la macro suivante:

Dim temps
Dim mArret
Sub ACQUI()
[C7].FormulaLocal = "Útahub|AQX!'1A1.Analog Input.1.object-name'"
[D7].FormulaLocal = "Útahub|AQX!'1A1.Analog Input.2.object-name'"
[E7].FormulaLocal = "Útahub|AQX!'1A1.Analog Input.3.object-name'"
[F7].FormulaLocal = "Útahub|AQX!'1A1.Analog Input.4.object-name'"
[G7].FormulaLocal = "Útahub|AQX!'1A1.Analog Input.5.object-name'"
[H7].FormulaLocal = "Útahub|AQX!'1A1.Analog Input.6.object-name'"
[I7].FormulaLocal = "Útahub|AQX!'1A1.Analog Input.7.object-name'"
[J7].FormulaLocal = "Útahub|AQX!'1A1.Analog Input.8.object-name'"
[K7].FormulaLocal = "Útahub|AQX!'1A1.Analog Value.1.object-name'"
[L7].FormulaLocal = "Útahub|AQX!'1A1.Analog Value.2.object-name'"
[M7].FormulaLocal = "Útahub|AQX!'1A1.Analog Value.3.object-name'"
[N7].FormulaLocal = "Útahub|AQX!'1A1.Analog Value.4.object-name'"
[O7].FormulaLocal = "Útahub|AQX!'1A1.Analog Value.5.object-name'"
[P7].FormulaLocal = "Útahub|AQX!'1A1.Analog Value.6.object-name'"
[Q7].FormulaLocal = "Útahub|AQX!'1A1.Analog Value.7.object-name'"
[R7].FormulaLocal = "Útahub|AQX!'1A1.Analog Value.8.object-name'"
[S7].FormulaLocal = "Útahub|AQX!'1A2.Analog Input.1.object-name'"
[T7].FormulaLocal = "Útahub|AQX!'1A2.Analog Input.2.object-name'"
[U7].FormulaLocal = "Útahub|AQX!'1A2.Analog Input.3.object-name'"
[V7].FormulaLocal = "Útahub|AQX!'1A2.Analog Input.4.object-name'"
[W7].FormulaLocal = "Útahub|AQX!'1A2.Analog Input.5.object-name'"
[X7].FormulaLocal = "Útahub|AQX!'1A2.Analog Input.6.object-name'"
[Y7].FormulaLocal = "Útahub|AQX!'1A2.Analog Input.7.object-name'"
[Z7].FormulaLocal = "Útahub|AQX!'1A2.Analog Input.8.object-name'"
[AA7].FormulaLocal = "Útahub|AQX!'1A2.Analog Value.1.object-name'"
[AB7].FormulaLocal = "Útahub|AQX!'1A2.Analog Value.2.object-name'"
[AC7].FormulaLocal = "Útahub|AQX!'1A2.Analog Value.3.object-name'"
[AD7].FormulaLocal = "Útahub|AQX!'1A2.Analog Value.4.object-name'"
[AE7].FormulaLocal = "Útahub|AQX!'1A2.Analog Value.5.object-name'"
[AF7].FormulaLocal = "Útahub|AQX!'1A2.Analog Value.6.object-name'"
[AG7].FormulaLocal = "Útahub|AQX!'1A2.Analog Value.7.object-name'"
[AH7].FormulaLocal = "Útahub|AQX!'1A2.Analog Value.8.object-name'"
If Time >= [F5] And Time <= [H5] And Date >= [F4] And Date <= [ H4] Then
Sheets(1).[A65000].End(xlUp).Offset(1, 0) = Date
Sheets(1).[A65000].End(xlUp).Offset(0, 1) = Time
Sheets(1).[A65000].End(xlUp).Offset(0, 2).FormulaLocal =
"Útahub|AQX!'1A1.Analog Input.1.presentvalue'"
End If
If Not mArret Then
temps = Now + [K3]
Application.OnTime temps, "ACQUI"
End If
End Sub
Sub Demarre()
mArret = False
ACQUI

End Sub
Sub Arret()
mArret = True
End Sub
Sub auto_close()
On Error Resume Next
Application.OnTime temps, Procedure:="ACQUI", Schedule:úlse
End Sub

Les première ligne vont seulement aller chercher le titres de chaque po int
enregistré (.object-name ) ceci fonctionne très bien, le problème e st cette
ligne :

Sheets(1).[A65000].End(xlUp).Offset(0, 2).FormulaLocal =
"Útahub|AQX!'1A1.Analog Input.1.presentvalue'"

Elle inscrit la formule dans la cellule, alors que je voudrais uniquement le
résultat de cette formule pour éviter qu'elle ne se mettre toujours à jour.
Il s'agit d'une macro d'acquisition donc il me faut la valeur au moment de
la prise de lecture à chaque ligne.

Quelqu'un pourrais m'aider ?

Merci!