OVH Cloud OVH Cloud

Formules avec VBA

3 réponses
Avatar
Samuel DeCarmel
Hello!

J'ai une formule qui va chercher des valeurs dans un=20
autre fichier Excel (ferm=E9 ou ouvert). Est-ce possible=20
d'assigner le r=E9sultat =E0 une variable sans placer la=20
valeur dans la cellule E14? Voici les lignes de code :=20

Sub test()
Dim Path As String, onglet1 As String, onglet2 As String
Dim fichier As String, Cell_1 As Range, Cell_11 As String
Dim Cell_2 As Range, Cell_21 As String

Path =3D ActiveWorkbook.Path
onglet1 =3D "Donn=E9es Base"
onglet2 =3D "Tab Gestion"
fichier =3D "test2.xls"
Set Cell_1 =3D Range("F12")
Set Cell_2 =3D Range("E6")

Cell_11 =3D Cell_1.Address(0, 0)
Cell_21 =3D Cell_2.Address(0, 0)

[E14] =3D _
"=3DROUND('" & Path & "\" & "[" & fichier & "]" & onglet1=20
& "'!" & _
Cell_11 & "*('" & Path & "\" & "[" & fichier & "]" & _
onglet2 & "'!" & Cell_21 & "*1.2),0)"
=20
End Sub

Merci =E9norm=E9ment!
Sam

3 réponses

Avatar
j
pas très sur, as-tu essayé
variable=evaluate(.....)
attention il faut que tout le bazar entre parenthèses soit en anglais)

http://jacxl.free.fr


"Samuel DeCarmel" a écrit dans le
message de news: 173201c4e047$587cf2e0$
Hello!

J'ai une formule qui va chercher des valeurs dans un
autre fichier Excel (fermé ou ouvert). Est-ce possible
d'assigner le résultat à une variable sans placer la
valeur dans la cellule E14? Voici les lignes de code :

Sub test()
Dim Path As String, onglet1 As String, onglet2 As String
Dim fichier As String, Cell_1 As Range, Cell_11 As String
Dim Cell_2 As Range, Cell_21 As String

Path = ActiveWorkbook.Path
onglet1 = "Données Base"
onglet2 = "Tab Gestion"
fichier = "test2.xls"
Set Cell_1 = Range("F12")
Set Cell_2 = Range("E6")

Cell_11 = Cell_1.Address(0, 0)
Cell_21 = Cell_2.Address(0, 0)

[E14] = _
"=ROUND('" & Path & "" & "[" & fichier & "]" & onglet1
& "'!" & _
Cell_11 & "*('" & Path & "" & "[" & fichier & "]" & _
onglet2 & "'!" & Cell_21 & "*1.2),0)"

End Sub

Merci énormément!
Sam
Avatar
Samuel DeCarmel
Désolé,

ça ne fonctionne pas. J'obtiens un type mismatch Run-
time error '13'. Il faut peut-être adapter la formule...?

Sam
-----Message d'origine-----
pas très sur, as-tu essayé
variable=evaluate(.....)
attention il faut que tout le bazar entre parenthèses
soit en anglais)


http://jacxl.free.fr


"Samuel DeCarmel"
a écrit dans le

message de news: 173201c4e047$587cf2e0
$

Hello!

J'ai une formule qui va chercher des valeurs dans un
autre fichier Excel (fermé ou ouvert). Est-ce possible
d'assigner le résultat à une variable sans placer la
valeur dans la cellule E14? Voici les lignes de code :

Sub test()
Dim Path As String, onglet1 As String, onglet2 As String
Dim fichier As String, Cell_1 As Range, Cell_11 As String
Dim Cell_2 As Range, Cell_21 As String

Path = ActiveWorkbook.Path
onglet1 = "Données Base"
onglet2 = "Tab Gestion"
fichier = "test2.xls"
Set Cell_1 = Range("F12")
Set Cell_2 = Range("E6")

Cell_11 = Cell_1.Address(0, 0)
Cell_21 = Cell_2.Address(0, 0)

[E14] = _
"=ROUND('" & Path & "" & "[" & fichier & "]" & onglet1
& "'!" & _
Cell_11 & "*('" & Path & "" & "[" & fichier & "]" & _
onglet2 & "'!" & Cell_21 & "*1.2),0)"

End Sub

Merci énormément!
Sam


.



Avatar
michdenis
Bonjour Samuel,

Essaie ceci : Tu dois passer par une cellule qui va recevoir la formule... ce type de syntaxe n'est disponible seulement
dans une cellule de la feuille de calcul et non en VBA.

La formule est copiée vers la cellule G1 de la feuille active.... à toi de déterminer quelle cellule tu veux utiliser !

'---------------------------------
Sub test()
Dim Path As String, onglet1 As String, onglet2 As String
Dim fichier As String, Cell_1 As Range, Cell_11 As String
Dim Cell_2 As Range, Cell_21 As String
Dim Toto As String

Path = ActiveWorkbook.Path
onglet1 = "Données Base"
onglet2 = "Tab Gestion"
fichier = "test2.xls"
Set Cell_1 = Range("A12")
Set Cell_2 = Range("B6")

Cell_11 = Cell_1.Address(0, 0)
Cell_21 = Cell_2.Address(0, 0)

Range("G1").FormulaLocal = _
"='" & Path & "" & "[" & fichier & "]" & _
onglet1 & "'!" & Cell_11 & "" & "*" & "'" & _
Path & "" & "[" & fichier & "]" & _
onglet2 & "'!" & Cell_21 & "" & "*" & 1.2

MsgBox WorksheetFunction.Round(Range("G1"), 0)

End Sub
'----------------------------------


Salutations!




"Samuel DeCarmel" a écrit dans le message de news:
088a01c4e04b$7bb5d660$
Désolé,

ça ne fonctionne pas. J'obtiens un type mismatch Run-
time error '13'. Il faut peut-être adapter la formule...?

Sam
-----Message d'origine-----
pas très sur, as-tu essayé
variable=evaluate(.....)
attention il faut que tout le bazar entre parenthèses
soit en anglais)


http://jacxl.free.fr


"Samuel DeCarmel"
a écrit dans le

message de news: 173201c4e047$587cf2e0
$

Hello!

J'ai une formule qui va chercher des valeurs dans un
autre fichier Excel (fermé ou ouvert). Est-ce possible
d'assigner le résultat à une variable sans placer la
valeur dans la cellule E14? Voici les lignes de code :

Sub test()
Dim Path As String, onglet1 As String, onglet2 As String
Dim fichier As String, Cell_1 As Range, Cell_11 As String
Dim Cell_2 As Range, Cell_21 As String

Path = ActiveWorkbook.Path
onglet1 = "Données Base"
onglet2 = "Tab Gestion"
fichier = "test2.xls"
Set Cell_1 = Range("F12")
Set Cell_2 = Range("E6")

Cell_11 = Cell_1.Address(0, 0)
Cell_21 = Cell_2.Address(0, 0)

[E14] = _
"=ROUND('" & Path & "" & "[" & fichier & "]" & onglet1
& "'!" & _
Cell_11 & "*('" & Path & "" & "[" & fichier & "]" & _
onglet2 & "'!" & Cell_21 & "*1.2),0)"

End Sub

Merci énormément!
Sam


.