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

VB-insérer la valeur d'une variable dans une formule ?

13 réponses
Avatar
kalinaja
Bonsoir à tous,

à chaque jour son impasse ...

je stocke un chemin vers un fichier xls dans une variable nommée Chem

or je souhaite l'injecter dans un code de type :

For Each sh In Array("1A1", "1B1")
Sheets(sh).Activate
'encore merci cousinhub !
Range("I38").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC1,'[Chem]Import'!C1:C20,3,FALSE)"

J'ai essayé des variantes :

ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC1,'[" & Chem & " ]Import'!C1:C20,3,FALSE)"

ou en utilisant une variable intermédiaire :

Formule = "=VLOOKUP(RC1,'[" & Chem & "]Import'!C1:C20,3,FALSE)"
ActiveCell.FormulaR1C1 = _
Formule
Formule me donne bien la formule complétée mais au moment du
ActiveCell.FormulaR1C1 cela ne marche pas ...

Si vous avez une idée ...

En vous remerciant,

Cordialement,

FFO.

10 réponses

1 2
Avatar
FFO
Salut à toi

J'ai testé ton code et aprés l'avoir adapté comme ceci:

For Each sh In Array("1A1", "1B1")
Sheets("Feuil1").Activate
'encore merci cousinhub !
Range("I38").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC1,'[Chem]Import'!C1:C20,3,FALSE)"
Next

j'ai corrigé : Sheets("Feuil1").Activate
tu avait mis : Sheets(sh).Activate
or sh est la variable déclaré censé représenté chaque cellule de la zone
Array ("1A1", "1B1")
A moins que tu ais toutes feuilles avec le nom représentant la valeur de
toutes ces cellules
J'ai mis à la fin de code l'instruction NEXT qui faisait cruellement défaut

Et ton code a fonctionné
J'ai bien eu en cellule I38 la formule =
=RECHERCHEV($A38;[Chem]Feuil2!$A:$T;3;FAUX)


Voila donc l'état de mes constatations concernant ton code
Peut être t'aurais je aidé
Dis moi !!!



Bonsoir à tous,

à chaque jour son impasse ...

je stocke un chemin vers un fichier xls dans une variable nommée Chem

or je souhaite l'injecter dans un code de type :

For Each sh In Array("1A1", "1B1")
Sheets(sh).Activate
'encore merci cousinhub !
Range("I38").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC1,'[Chem]Import'!C1:C20,3,FALSE)"

J'ai essayé des variantes :

ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC1,'[" & Chem & " ]Import'!C1:C20,3,FALSE)"

ou en utilisant une variable intermédiaire :

Formule = "=VLOOKUP(RC1,'[" & Chem & "]Import'!C1:C20,3,FALSE)"
ActiveCell.FormulaR1C1 = _
Formule
Formule me donne bien la formule complétée mais au moment du
ActiveCell.FormulaR1C1 cela ne marche pas ...

Si vous avez une idée ...

En vous remerciant,

Cordialement,

FFO.





Avatar
kalinaja
Bonjour FFO,

Merci de ton aide

En fait j'aurais du mettre le code complet :

Sub Bouton35_QuandClic()
Dim Formule As Variant
Dim Chem As Variant
'1
With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = False
.Show
For Each Chem In .SelectedItems
Formule = "=VLOOKUP(RC1,'[Chem]Import'!C1:C20,3,FALSE)"
Next
End With
'2
For Each sh In Array("1A1", "1B1")
Sheets(sh).Activate
'3
Range("i38").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC1,'[Chem]Import'!C1:C20,3,FALSE)"
'Formule
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:úlse, Transpose:úlse
Next
End Sub

'1 : demander à l'utilisateur de sélectionner le fichier concerné afin de
récupérer son chemin.
'2 : avec array définir les feuilles qui doivent être traitées par la macro
puis sélectionner la première feuille concernée, puis la seconde, ....
'3 : sélection de la cellule à alimenter dans la feuille, ajout de la
formule rechercheV ... et copier coller pour ne garder au final que la valeur

or au '3 cela ne fonctionne pas (toujours pas) à chaque passage excel ouvre
une fenêtre de type "ouvrir" intitulée mettre à jour la valeur Chem or ce que
je voulais c'était bien que l'utilisateur n'ait à la déclarer qu'une fois au
début de la macro le chemin et non pas pour chaque cellule de chaque feuille
contenue dans Array ...

Si tu vois ou cela peut pêcher ...

Merci encore,

Cordialement,

FFO.



Salut à toi

J'ai testé ton code et aprés l'avoir adapté comme ceci:

For Each sh In Array("1A1", "1B1")
Sheets("Feuil1").Activate
'encore merci cousinhub !
Range("I38").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC1,'[Chem]Import'!C1:C20,3,FALSE)"
Next

j'ai corrigé : Sheets("Feuil1").Activate
tu avait mis : Sheets(sh).Activate
or sh est la variable déclaré censé représenté chaque cellule de la zone
Array ("1A1", "1B1")
A moins que tu ais toutes feuilles avec le nom représentant la valeur de
toutes ces cellules
J'ai mis à la fin de code l'instruction NEXT qui faisait cruellement défaut

Et ton code a fonctionné
J'ai bien eu en cellule I38 la formule =
=RECHERCHEV($A38;[Chem]Feuil2!$A:$T;3;FAUX)


Voila donc l'état de mes constatations concernant ton code
Peut être t'aurais je aidé
Dis moi !!!



Bonsoir à tous,

à chaque jour son impasse ...

je stocke un chemin vers un fichier xls dans une variable nommée Chem

or je souhaite l'injecter dans un code de type :

For Each sh In Array("1A1", "1B1")
Sheets(sh).Activate
'encore merci cousinhub !
Range("I38").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC1,'[Chem]Import'!C1:C20,3,FALSE)"

J'ai essayé des variantes :

ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC1,'[" & Chem & " ]Import'!C1:C20,3,FALSE)"

ou en utilisant une variable intermédiaire :

Formule = "=VLOOKUP(RC1,'[" & Chem & "]Import'!C1:C20,3,FALSE)"
ActiveCell.FormulaR1C1 = _
Formule
Formule me donne bien la formule complétée mais au moment du
ActiveCell.FormulaR1C1 cela ne marche pas ...

Si vous avez une idée ...

En vous remerciant,

Cordialement,

FFO.







Avatar
FFO
ReBonjour
Sur quelle base sont définie les onglets à traiter
L'instructions :
For Each sh In Array("1A1", "1B1")
Fait appel aux cellules d'un tableau pour déterminer le nom des onglets
Est ce toujours d'actualité ???
Sinon sur quoi doit on se baser pour déterminer les onglets ???

Merci de me répondre



Bonjour FFO,

Merci de ton aide

En fait j'aurais du mettre le code complet :

Sub Bouton35_QuandClic()
Dim Formule As Variant
Dim Chem As Variant
'1
With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = False
.Show
For Each Chem In .SelectedItems
Formule = "=VLOOKUP(RC1,'[Chem]Import'!C1:C20,3,FALSE)"
Next
End With
'2
For Each sh In Array("1A1", "1B1")
Sheets(sh).Activate
'3
Range("i38").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC1,'[Chem]Import'!C1:C20,3,FALSE)"
'Formule
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:úlse, Transpose:úlse
Next
End Sub

'1 : demander à l'utilisateur de sélectionner le fichier concerné afin de
récupérer son chemin.
'2 : avec array définir les feuilles qui doivent être traitées par la macro
puis sélectionner la première feuille concernée, puis la seconde, ....
'3 : sélection de la cellule à alimenter dans la feuille, ajout de la
formule rechercheV ... et copier coller pour ne garder au final que la valeur

or au '3 cela ne fonctionne pas (toujours pas) à chaque passage excel ouvre
une fenêtre de type "ouvrir" intitulée mettre à jour la valeur Chem or ce que
je voulais c'était bien que l'utilisateur n'ait à la déclarer qu'une fois au
début de la macro le chemin et non pas pour chaque cellule de chaque feuille
contenue dans Array ...

Si tu vois ou cela peut pêcher ...

Merci encore,

Cordialement,

FFO.



Salut à toi

J'ai testé ton code et aprés l'avoir adapté comme ceci:

For Each sh In Array("1A1", "1B1")
Sheets("Feuil1").Activate
'encore merci cousinhub !
Range("I38").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC1,'[Chem]Import'!C1:C20,3,FALSE)"
Next

j'ai corrigé : Sheets("Feuil1").Activate
tu avait mis : Sheets(sh).Activate
or sh est la variable déclaré censé représenté chaque cellule de la zone
Array ("1A1", "1B1")
A moins que tu ais toutes feuilles avec le nom représentant la valeur de
toutes ces cellules
J'ai mis à la fin de code l'instruction NEXT qui faisait cruellement défaut

Et ton code a fonctionné
J'ai bien eu en cellule I38 la formule =
=RECHERCHEV($A38;[Chem]Feuil2!$A:$T;3;FAUX)


Voila donc l'état de mes constatations concernant ton code
Peut être t'aurais je aidé
Dis moi !!!



Bonsoir à tous,

à chaque jour son impasse ...

je stocke un chemin vers un fichier xls dans une variable nommée Chem

or je souhaite l'injecter dans un code de type :

For Each sh In Array("1A1", "1B1")
Sheets(sh).Activate
'encore merci cousinhub !
Range("I38").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC1,'[Chem]Import'!C1:C20,3,FALSE)"

J'ai essayé des variantes :

ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC1,'[" & Chem & " ]Import'!C1:C20,3,FALSE)"

ou en utilisant une variable intermédiaire :

Formule = "=VLOOKUP(RC1,'[" & Chem & "]Import'!C1:C20,3,FALSE)"
ActiveCell.FormulaR1C1 = _
Formule
Formule me donne bien la formule complétée mais au moment du
ActiveCell.FormulaR1C1 cela ne marche pas ...

Si vous avez une idée ...

En vous remerciant,

Cordialement,

FFO.









Avatar
kalinaja
Oups oui en fait cela peut prêter à confusion "1a1" et "1b1" sont ici les
noms des onglets !


ReBonjour
Sur quelle base sont définie les onglets à traiter
L'instructions :
For Each sh In Array("1A1", "1B1")
Fait appel aux cellules d'un tableau pour déterminer le nom des onglets
Est ce toujours d'actualité ???
Sinon sur quoi doit on se baser pour déterminer les onglets ???

Merci de me répondre



Bonjour FFO,

Merci de ton aide

En fait j'aurais du mettre le code complet :

Sub Bouton35_QuandClic()
Dim Formule As Variant
Dim Chem As Variant
'1
With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = False
.Show
For Each Chem In .SelectedItems
Formule = "=VLOOKUP(RC1,'[Chem]Import'!C1:C20,3,FALSE)"
Next
End With
'2
For Each sh In Array("1A1", "1B1")
Sheets(sh).Activate
'3
Range("i38").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC1,'[Chem]Import'!C1:C20,3,FALSE)"
'Formule
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:úlse, Transpose:úlse
Next
End Sub

'1 : demander à l'utilisateur de sélectionner le fichier concerné afin de
récupérer son chemin.
'2 : avec array définir les feuilles qui doivent être traitées par la macro
puis sélectionner la première feuille concernée, puis la seconde, ....
'3 : sélection de la cellule à alimenter dans la feuille, ajout de la
formule rechercheV ... et copier coller pour ne garder au final que la valeur

or au '3 cela ne fonctionne pas (toujours pas) à chaque passage excel ouvre
une fenêtre de type "ouvrir" intitulée mettre à jour la valeur Chem or ce que
je voulais c'était bien que l'utilisateur n'ait à la déclarer qu'une fois au
début de la macro le chemin et non pas pour chaque cellule de chaque feuille
contenue dans Array ...

Si tu vois ou cela peut pêcher ...

Merci encore,

Cordialement,

FFO.



Salut à toi

J'ai testé ton code et aprés l'avoir adapté comme ceci:

For Each sh In Array("1A1", "1B1")
Sheets("Feuil1").Activate
'encore merci cousinhub !
Range("I38").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC1,'[Chem]Import'!C1:C20,3,FALSE)"
Next

j'ai corrigé : Sheets("Feuil1").Activate
tu avait mis : Sheets(sh).Activate
or sh est la variable déclaré censé représenté chaque cellule de la zone
Array ("1A1", "1B1")
A moins que tu ais toutes feuilles avec le nom représentant la valeur de
toutes ces cellules
J'ai mis à la fin de code l'instruction NEXT qui faisait cruellement défaut

Et ton code a fonctionné
J'ai bien eu en cellule I38 la formule =
=RECHERCHEV($A38;[Chem]Feuil2!$A:$T;3;FAUX)


Voila donc l'état de mes constatations concernant ton code
Peut être t'aurais je aidé
Dis moi !!!



Bonsoir à tous,

à chaque jour son impasse ...

je stocke un chemin vers un fichier xls dans une variable nommée Chem

or je souhaite l'injecter dans un code de type :

For Each sh In Array("1A1", "1B1")
Sheets(sh).Activate
'encore merci cousinhub !
Range("I38").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC1,'[Chem]Import'!C1:C20,3,FALSE)"

J'ai essayé des variantes :

ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC1,'[" & Chem & " ]Import'!C1:C20,3,FALSE)"

ou en utilisant une variable intermédiaire :

Formule = "=VLOOKUP(RC1,'[" & Chem & "]Import'!C1:C20,3,FALSE)"
ActiveCell.FormulaR1C1 = _
Formule
Formule me donne bien la formule complétée mais au moment du
ActiveCell.FormulaR1C1 cela ne marche pas ...

Si vous avez une idée ...

En vous remerciant,

Cordialement,

FFO.











Avatar
FFO
Rebonjours
J'en conclue que tu as résolu ton PB
Dis moi !!!



Oups oui en fait cela peut prêter à confusion "1a1" et "1b1" sont ici les
noms des onglets !


ReBonjour
Sur quelle base sont définie les onglets à traiter
L'instructions :
For Each sh In Array("1A1", "1B1")
Fait appel aux cellules d'un tableau pour déterminer le nom des onglets
Est ce toujours d'actualité ???
Sinon sur quoi doit on se baser pour déterminer les onglets ???

Merci de me répondre



Bonjour FFO,

Merci de ton aide

En fait j'aurais du mettre le code complet :

Sub Bouton35_QuandClic()
Dim Formule As Variant
Dim Chem As Variant
'1
With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = False
.Show
For Each Chem In .SelectedItems
Formule = "=VLOOKUP(RC1,'[Chem]Import'!C1:C20,3,FALSE)"
Next
End With
'2
For Each sh In Array("1A1", "1B1")
Sheets(sh).Activate
'3
Range("i38").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC1,'[Chem]Import'!C1:C20,3,FALSE)"
'Formule
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:úlse, Transpose:úlse
Next
End Sub

'1 : demander à l'utilisateur de sélectionner le fichier concerné afin de
récupérer son chemin.
'2 : avec array définir les feuilles qui doivent être traitées par la macro
puis sélectionner la première feuille concernée, puis la seconde, ....
'3 : sélection de la cellule à alimenter dans la feuille, ajout de la
formule rechercheV ... et copier coller pour ne garder au final que la valeur

or au '3 cela ne fonctionne pas (toujours pas) à chaque passage excel ouvre
une fenêtre de type "ouvrir" intitulée mettre à jour la valeur Chem or ce que
je voulais c'était bien que l'utilisateur n'ait à la déclarer qu'une fois au
début de la macro le chemin et non pas pour chaque cellule de chaque feuille
contenue dans Array ...

Si tu vois ou cela peut pêcher ...

Merci encore,

Cordialement,

FFO.



Salut à toi

J'ai testé ton code et aprés l'avoir adapté comme ceci:

For Each sh In Array("1A1", "1B1")
Sheets("Feuil1").Activate
'encore merci cousinhub !
Range("I38").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC1,'[Chem]Import'!C1:C20,3,FALSE)"
Next

j'ai corrigé : Sheets("Feuil1").Activate
tu avait mis : Sheets(sh).Activate
or sh est la variable déclaré censé représenté chaque cellule de la zone
Array ("1A1", "1B1")
A moins que tu ais toutes feuilles avec le nom représentant la valeur de
toutes ces cellules
J'ai mis à la fin de code l'instruction NEXT qui faisait cruellement défaut

Et ton code a fonctionné
J'ai bien eu en cellule I38 la formule =
=RECHERCHEV($A38;[Chem]Feuil2!$A:$T;3;FAUX)


Voila donc l'état de mes constatations concernant ton code
Peut être t'aurais je aidé
Dis moi !!!



Bonsoir à tous,

à chaque jour son impasse ...

je stocke un chemin vers un fichier xls dans une variable nommée Chem

or je souhaite l'injecter dans un code de type :

For Each sh In Array("1A1", "1B1")
Sheets(sh).Activate
'encore merci cousinhub !
Range("I38").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC1,'[Chem]Import'!C1:C20,3,FALSE)"

J'ai essayé des variantes :

ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC1,'[" & Chem & " ]Import'!C1:C20,3,FALSE)"

ou en utilisant une variable intermédiaire :

Formule = "=VLOOKUP(RC1,'[" & Chem & "]Import'!C1:C20,3,FALSE)"
ActiveCell.FormulaR1C1 = _
Formule
Formule me donne bien la formule complétée mais au moment du
ActiveCell.FormulaR1C1 cela ne marche pas ...

Si vous avez une idée ...

En vous remerciant,

Cordialement,

FFO.













Avatar
kalinaja
Eh bien à vrai dire non ...

non je remarquais juste que pour une personne extérieure les noms choisis
pour les onglets pouvait prêter à confusion ... mais je continue à chercher !

Merci,




Rebonjours
J'en conclue que tu as résolu ton PB
Dis moi !!!



Oups oui en fait cela peut prêter à confusion "1a1" et "1b1" sont ici les
noms des onglets !


ReBonjour
Sur quelle base sont définie les onglets à traiter
L'instructions :
For Each sh In Array("1A1", "1B1")
Fait appel aux cellules d'un tableau pour déterminer le nom des onglets
Est ce toujours d'actualité ???
Sinon sur quoi doit on se baser pour déterminer les onglets ???

Merci de me répondre



Bonjour FFO,

Merci de ton aide

En fait j'aurais du mettre le code complet :

Sub Bouton35_QuandClic()
Dim Formule As Variant
Dim Chem As Variant
'1
With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = False
.Show
For Each Chem In .SelectedItems
Formule = "=VLOOKUP(RC1,'[Chem]Import'!C1:C20,3,FALSE)"
Next
End With
'2
For Each sh In Array("1A1", "1B1")
Sheets(sh).Activate
'3
Range("i38").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC1,'[Chem]Import'!C1:C20,3,FALSE)"
'Formule
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:úlse, Transpose:úlse
Next
End Sub

'1 : demander à l'utilisateur de sélectionner le fichier concerné afin de
récupérer son chemin.
'2 : avec array définir les feuilles qui doivent être traitées par la macro
puis sélectionner la première feuille concernée, puis la seconde, ....
'3 : sélection de la cellule à alimenter dans la feuille, ajout de la
formule rechercheV ... et copier coller pour ne garder au final que la valeur

or au '3 cela ne fonctionne pas (toujours pas) à chaque passage excel ouvre
une fenêtre de type "ouvrir" intitulée mettre à jour la valeur Chem or ce que
je voulais c'était bien que l'utilisateur n'ait à la déclarer qu'une fois au
début de la macro le chemin et non pas pour chaque cellule de chaque feuille
contenue dans Array ...

Si tu vois ou cela peut pêcher ...

Merci encore,

Cordialement,

FFO.



Salut à toi

J'ai testé ton code et aprés l'avoir adapté comme ceci:

For Each sh In Array("1A1", "1B1")
Sheets("Feuil1").Activate
'encore merci cousinhub !
Range("I38").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC1,'[Chem]Import'!C1:C20,3,FALSE)"
Next

j'ai corrigé : Sheets("Feuil1").Activate
tu avait mis : Sheets(sh).Activate
or sh est la variable déclaré censé représenté chaque cellule de la zone
Array ("1A1", "1B1")
A moins que tu ais toutes feuilles avec le nom représentant la valeur de
toutes ces cellules
J'ai mis à la fin de code l'instruction NEXT qui faisait cruellement défaut

Et ton code a fonctionné
J'ai bien eu en cellule I38 la formule =
=RECHERCHEV($A38;[Chem]Feuil2!$A:$T;3;FAUX)


Voila donc l'état de mes constatations concernant ton code
Peut être t'aurais je aidé
Dis moi !!!



Bonsoir à tous,

à chaque jour son impasse ...

je stocke un chemin vers un fichier xls dans une variable nommée Chem

or je souhaite l'injecter dans un code de type :

For Each sh In Array("1A1", "1B1")
Sheets(sh).Activate
'encore merci cousinhub !
Range("I38").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC1,'[Chem]Import'!C1:C20,3,FALSE)"

J'ai essayé des variantes :

ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC1,'[" & Chem & " ]Import'!C1:C20,3,FALSE)"

ou en utilisant une variable intermédiaire :

Formule = "=VLOOKUP(RC1,'[" & Chem & "]Import'!C1:C20,3,FALSE)"
ActiveCell.FormulaR1C1 = _
Formule
Formule me donne bien la formule complétée mais au moment du
ActiveCell.FormulaR1C1 cela ne marche pas ...

Si vous avez une idée ...

En vous remerciant,

Cordialement,

FFO.















Avatar
tissot.emmanuel
Bonjour,

Quelques remarques si ca peut aider:

With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = False
.Show
For Each Chem In .SelectedItems
Formule = "=VLOOKUP(RC1,'[Chem]Import'!C1:C20,3,FALSE)"
Next
End With


Etant donné que MultiSelectúlse, SelectedItems ne peut contenir qu'un
élément, la boucle est inutile.
Rien n'est prévu en cas de clic sur Annuler.
D'autre part la formule semble mélanger les styles de références (A1 et
L1C1).
Je suggere donc ceci:

Sub Bouton35_QuandClic()
Dim Formule As String, sh As Worksheet
With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = False
.Show
If .SelectedItems.Count = 0 Then Exit Sub
Formule = "=VLOOKUP(RC1,'[" & .SelectedItems(1) &
"]Import'!R1C3:R20C3,3,FALSE)"
End With
For Each sh In Sheets(Array("Feuil1", "Feuil2"))
sh.Activate
Range("I38").FormulaR1C1 = Formule
'Range("I38").Value = Range("I38").Value 'Pour remplacer la formule
par la valeur
Next
End Sub

Je te laisse le soin de verifier que les références de formules
correspondent bien à ce que tu veux.

Cordialement,

Manu/



"kalinaja" a écrit dans le message de
news:
Bonjour FFO,

Merci de ton aide

En fait j'aurais du mettre le code complet :

Sub Bouton35_QuandClic()
Dim Formule As Variant
Dim Chem As Variant
'1
With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = False
.Show
For Each Chem In .SelectedItems
Formule = "=VLOOKUP(RC1,'[Chem]Import'!C1:C20,3,FALSE)"
Next
End With
'2
For Each sh In Array("1A1", "1B1")
Sheets(sh).Activate
'3
Range("i38").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC1,'[Chem]Import'!C1:C20,3,FALSE)"
'Formule
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:úlse, Transpose:úlse
Next
End Sub

'1 : demander à l'utilisateur de sélectionner le fichier concerné afin de
récupérer son chemin.
'2 : avec array définir les feuilles qui doivent être traitées par la
macro
puis sélectionner la première feuille concernée, puis la seconde, ....
'3 : sélection de la cellule à alimenter dans la feuille, ajout de la
formule rechercheV ... et copier coller pour ne garder au final que la
valeur

or au '3 cela ne fonctionne pas (toujours pas) à chaque passage excel
ouvre
une fenêtre de type "ouvrir" intitulée mettre à jour la valeur Chem or ce
que
je voulais c'était bien que l'utilisateur n'ait à la déclarer qu'une fois
au
début de la macro le chemin et non pas pour chaque cellule de chaque
feuille
contenue dans Array ...

Si tu vois ou cela peut pêcher ...

Merci encore,

Cordialement,

FFO.



Salut à toi

J'ai testé ton code et aprés l'avoir adapté comme ceci:

For Each sh In Array("1A1", "1B1")
Sheets("Feuil1").Activate
'encore merci cousinhub !
Range("I38").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC1,'[Chem]Import'!C1:C20,3,FALSE)"
Next

j'ai corrigé : Sheets("Feuil1").Activate
tu avait mis : Sheets(sh).Activate
or sh est la variable déclaré censé représenté chaque cellule de la zone
Array ("1A1", "1B1")
A moins que tu ais toutes feuilles avec le nom représentant la valeur de
toutes ces cellules
J'ai mis à la fin de code l'instruction NEXT qui faisait cruellement
défaut

Et ton code a fonctionné
J'ai bien eu en cellule I38 la formule >> =RECHERCHEV($A38;[Chem]Feuil2!$A:$T;3;FAUX)


Voila donc l'état de mes constatations concernant ton code
Peut être t'aurais je aidé
Dis moi !!!



Bonsoir à tous,

à chaque jour son impasse ...

je stocke un chemin vers un fichier xls dans une variable nommée Chem

or je souhaite l'injecter dans un code de type :

For Each sh In Array("1A1", "1B1")
Sheets(sh).Activate
'encore merci cousinhub !
Range("I38").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC1,'[Chem]Import'!C1:C20,3,FALSE)"

J'ai essayé des variantes :

ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC1,'[" & Chem & " ]Import'!C1:C20,3,FALSE)"

ou en utilisant une variable intermédiaire :

Formule = "=VLOOKUP(RC1,'[" & Chem & "]Import'!C1:C20,3,FALSE)"
ActiveCell.FormulaR1C1 = _
Formule
Formule me donne bien la formule complétée mais au moment du
ActiveCell.FormulaR1C1 cela ne marche pas ...

Si vous avez une idée ...

En vous remerciant,

Cordialement,

FFO.









Avatar
kalinaja
Merci beaucoup,
ton code est infiniment plus propre que le mien ! (cf. chapitre VBAiste du
dimanche ...;+)

Malheureusement, ça plante toujours à la ligne Range("I38").FormulaR1C1 =
Formule
la variable formule contient bien la bonne information mais impossible de
l'injecter dans la cellule i38, j'ai essayé ave formula sans plus de succès
...

bref à suivre ...

Merci encore,

Cordialement,

FFO.


Bonjour,

Quelques remarques si ca peut aider:

With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = False
.Show
For Each Chem In .SelectedItems
Formule = "=VLOOKUP(RC1,'[Chem]Import'!C1:C20,3,FALSE)"
Next
End With


Etant donné que MultiSelectúlse, SelectedItems ne peut contenir qu'un
élément, la boucle est inutile.
Rien n'est prévu en cas de clic sur Annuler.
D'autre part la formule semble mélanger les styles de références (A1 et
L1C1).
Je suggere donc ceci:

Sub Bouton35_QuandClic()
Dim Formule As String, sh As Worksheet
With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = False
.Show
If .SelectedItems.Count = 0 Then Exit Sub
Formule = "=VLOOKUP(RC1,'[" & .SelectedItems(1) &
"]Import'!R1C3:R20C3,3,FALSE)"
End With
For Each sh In Sheets(Array("Feuil1", "Feuil2"))
sh.Activate
Range("I38").FormulaR1C1 = Formule
'Range("I38").Value = Range("I38").Value 'Pour remplacer la formule
par la valeur
Next
End Sub

Je te laisse le soin de verifier que les références de formules
correspondent bien à ce que tu veux.

Cordialement,

Manu/



"kalinaja" a écrit dans le message de
news:
Bonjour FFO,

Merci de ton aide

En fait j'aurais du mettre le code complet :

Sub Bouton35_QuandClic()
Dim Formule As Variant
Dim Chem As Variant
'1
With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = False
.Show
For Each Chem In .SelectedItems
Formule = "=VLOOKUP(RC1,'[Chem]Import'!C1:C20,3,FALSE)"
Next
End With
'2
For Each sh In Array("1A1", "1B1")
Sheets(sh).Activate
'3
Range("i38").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC1,'[Chem]Import'!C1:C20,3,FALSE)"
'Formule
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:úlse, Transpose:úlse
Next
End Sub

'1 : demander à l'utilisateur de sélectionner le fichier concerné afin de
récupérer son chemin.
'2 : avec array définir les feuilles qui doivent être traitées par la
macro
puis sélectionner la première feuille concernée, puis la seconde, ....
'3 : sélection de la cellule à alimenter dans la feuille, ajout de la
formule rechercheV ... et copier coller pour ne garder au final que la
valeur

or au '3 cela ne fonctionne pas (toujours pas) à chaque passage excel
ouvre
une fenêtre de type "ouvrir" intitulée mettre à jour la valeur Chem or ce
que
je voulais c'était bien que l'utilisateur n'ait à la déclarer qu'une fois
au
début de la macro le chemin et non pas pour chaque cellule de chaque
feuille
contenue dans Array ...

Si tu vois ou cela peut pêcher ...

Merci encore,

Cordialement,

FFO.



Salut à toi

J'ai testé ton code et aprés l'avoir adapté comme ceci:

For Each sh In Array("1A1", "1B1")
Sheets("Feuil1").Activate
'encore merci cousinhub !
Range("I38").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC1,'[Chem]Import'!C1:C20,3,FALSE)"
Next

j'ai corrigé : Sheets("Feuil1").Activate
tu avait mis : Sheets(sh).Activate
or sh est la variable déclaré censé représenté chaque cellule de la zone
Array ("1A1", "1B1")
A moins que tu ais toutes feuilles avec le nom représentant la valeur de
toutes ces cellules
J'ai mis à la fin de code l'instruction NEXT qui faisait cruellement
défaut

Et ton code a fonctionné
J'ai bien eu en cellule I38 la formule > >> =RECHERCHEV($A38;[Chem]Feuil2!$A:$T;3;FAUX)


Voila donc l'état de mes constatations concernant ton code
Peut être t'aurais je aidé
Dis moi !!!



Bonsoir à tous,

à chaque jour son impasse ...

je stocke un chemin vers un fichier xls dans une variable nommée Chem

or je souhaite l'injecter dans un code de type :

For Each sh In Array("1A1", "1B1")
Sheets(sh).Activate
'encore merci cousinhub !
Range("I38").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC1,'[Chem]Import'!C1:C20,3,FALSE)"

J'ai essayé des variantes :

ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC1,'[" & Chem & " ]Import'!C1:C20,3,FALSE)"

ou en utilisant une variable intermédiaire :

Formule = "=VLOOKUP(RC1,'[" & Chem & "]Import'!C1:C20,3,FALSE)"
ActiveCell.FormulaR1C1 = _
Formule
Formule me donne bien la formule complétée mais au moment du
ActiveCell.FormulaR1C1 cela ne marche pas ...

Si vous avez une idée ...

En vous remerciant,

Cordialement,

FFO.














Avatar
FFO
Rebonjours à toi
Le code de tissot
Chez moi ne plante pas
et s'exécute avec succés
Quel message d'erreur as tu ???
A quelle ligne du code se positionne le débugage ???
Ne pourrais tu pas nous envoyer ton fichier pour le tester ???

Dans l'attente de tes réponses


Merci beaucoup,
ton code est infiniment plus propre que le mien ! (cf. chapitre VBAiste du
dimanche ...;+)

Malheureusement, ça plante toujours à la ligne Range("I38").FormulaR1C1 =
Formule
la variable formule contient bien la bonne information mais impossible de
l'injecter dans la cellule i38, j'ai essayé ave formula sans plus de succès
...

bref à suivre ...

Merci encore,

Cordialement,

FFO.


Bonjour,

Quelques remarques si ca peut aider:

With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = False
.Show
For Each Chem In .SelectedItems
Formule = "=VLOOKUP(RC1,'[Chem]Import'!C1:C20,3,FALSE)"
Next
End With


Etant donné que MultiSelectúlse, SelectedItems ne peut contenir qu'un
élément, la boucle est inutile.
Rien n'est prévu en cas de clic sur Annuler.
D'autre part la formule semble mélanger les styles de références (A1 et
L1C1).
Je suggere donc ceci:

Sub Bouton35_QuandClic()
Dim Formule As String, sh As Worksheet
With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = False
.Show
If .SelectedItems.Count = 0 Then Exit Sub
Formule = "=VLOOKUP(RC1,'[" & .SelectedItems(1) &
"]Import'!R1C3:R20C3,3,FALSE)"
End With
For Each sh In Sheets(Array("Feuil1", "Feuil2"))
sh.Activate
Range("I38").FormulaR1C1 = Formule
'Range("I38").Value = Range("I38").Value 'Pour remplacer la formule
par la valeur
Next
End Sub

Je te laisse le soin de verifier que les références de formules
correspondent bien à ce que tu veux.

Cordialement,

Manu/



"kalinaja" a écrit dans le message de
news:
Bonjour FFO,

Merci de ton aide

En fait j'aurais du mettre le code complet :

Sub Bouton35_QuandClic()
Dim Formule As Variant
Dim Chem As Variant
'1
With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = False
.Show
For Each Chem In .SelectedItems
Formule = "=VLOOKUP(RC1,'[Chem]Import'!C1:C20,3,FALSE)"
Next
End With
'2
For Each sh In Array("1A1", "1B1")
Sheets(sh).Activate
'3
Range("i38").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC1,'[Chem]Import'!C1:C20,3,FALSE)"
'Formule
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:úlse, Transpose:úlse
Next
End Sub

'1 : demander à l'utilisateur de sélectionner le fichier concerné afin de
récupérer son chemin.
'2 : avec array définir les feuilles qui doivent être traitées par la
macro
puis sélectionner la première feuille concernée, puis la seconde, ....
'3 : sélection de la cellule à alimenter dans la feuille, ajout de la
formule rechercheV ... et copier coller pour ne garder au final que la
valeur

or au '3 cela ne fonctionne pas (toujours pas) à chaque passage excel
ouvre
une fenêtre de type "ouvrir" intitulée mettre à jour la valeur Chem or ce
que
je voulais c'était bien que l'utilisateur n'ait à la déclarer qu'une fois
au
début de la macro le chemin et non pas pour chaque cellule de chaque
feuille
contenue dans Array ...

Si tu vois ou cela peut pêcher ...

Merci encore,

Cordialement,

FFO.



Salut à toi

J'ai testé ton code et aprés l'avoir adapté comme ceci:

For Each sh In Array("1A1", "1B1")
Sheets("Feuil1").Activate
'encore merci cousinhub !
Range("I38").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC1,'[Chem]Import'!C1:C20,3,FALSE)"
Next

j'ai corrigé : Sheets("Feuil1").Activate
tu avait mis : Sheets(sh).Activate
or sh est la variable déclaré censé représenté chaque cellule de la zone
Array ("1A1", "1B1")
A moins que tu ais toutes feuilles avec le nom représentant la valeur de
toutes ces cellules
J'ai mis à la fin de code l'instruction NEXT qui faisait cruellement
défaut

Et ton code a fonctionné
J'ai bien eu en cellule I38 la formule > > >> =RECHERCHEV($A38;[Chem]Feuil2!$A:$T;3;FAUX)


Voila donc l'état de mes constatations concernant ton code
Peut être t'aurais je aidé
Dis moi !!!



Bonsoir à tous,

à chaque jour son impasse ...

je stocke un chemin vers un fichier xls dans une variable nommée Chem

or je souhaite l'injecter dans un code de type :

For Each sh In Array("1A1", "1B1")
Sheets(sh).Activate
'encore merci cousinhub !
Range("I38").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC1,'[Chem]Import'!C1:C20,3,FALSE)"

J'ai essayé des variantes :

ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC1,'[" & Chem & " ]Import'!C1:C20,3,FALSE)"

ou en utilisant une variable intermédiaire :

Formule = "=VLOOKUP(RC1,'[" & Chem & "]Import'!C1:C20,3,FALSE)"
ActiveCell.FormulaR1C1 = _
Formule
Formule me donne bien la formule complétée mais au moment du
ActiveCell.FormulaR1C1 cela ne marche pas ...

Si vous avez une idée ...

En vous remerciant,

Cordialement,

FFO.
















Avatar
kalinaja
Re-bonjour FFO,

J'ai une erreur de type 1004

le contenu de Formule ne s'insère qu'à partir du moment ou je supprime le =
de début d'expression ... et si je le rajoute manuellement la formule ne
fonctionne pas donc ce serait un problème directement lié au vlookup mais je
n'ai pas réussi à identifier lequel ... pour l'instant ...

Désolé, je ne peux transmettre aucun document ...

Cordialement,

FFO.


Rebonjours à toi
Le code de tissot
Chez moi ne plante pas
et s'exécute avec succés
Quel message d'erreur as tu ???
A quelle ligne du code se positionne le débugage ???
Ne pourrais tu pas nous envoyer ton fichier pour le tester ???

Dans l'attente de tes réponses


Merci beaucoup,
ton code est infiniment plus propre que le mien ! (cf. chapitre VBAiste du
dimanche ...;+)

Malheureusement, ça plante toujours à la ligne Range("I38").FormulaR1C1 =
Formule
la variable formule contient bien la bonne information mais impossible de
l'injecter dans la cellule i38, j'ai essayé ave formula sans plus de succès
...

bref à suivre ...

Merci encore,

Cordialement,

FFO.


Bonjour,

Quelques remarques si ca peut aider:

With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = False
.Show
For Each Chem In .SelectedItems
Formule = "=VLOOKUP(RC1,'[Chem]Import'!C1:C20,3,FALSE)"
Next
End With


Etant donné que MultiSelectúlse, SelectedItems ne peut contenir qu'un
élément, la boucle est inutile.
Rien n'est prévu en cas de clic sur Annuler.
D'autre part la formule semble mélanger les styles de références (A1 et
L1C1).
Je suggere donc ceci:

Sub Bouton35_QuandClic()
Dim Formule As String, sh As Worksheet
With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = False
.Show
If .SelectedItems.Count = 0 Then Exit Sub
Formule = "=VLOOKUP(RC1,'[" & .SelectedItems(1) &
"]Import'!R1C3:R20C3,3,FALSE)"
End With
For Each sh In Sheets(Array("Feuil1", "Feuil2"))
sh.Activate
Range("I38").FormulaR1C1 = Formule
'Range("I38").Value = Range("I38").Value 'Pour remplacer la formule
par la valeur
Next
End Sub

Je te laisse le soin de verifier que les références de formules
correspondent bien à ce que tu veux.

Cordialement,

Manu/



"kalinaja" a écrit dans le message de
news:
Bonjour FFO,

Merci de ton aide

En fait j'aurais du mettre le code complet :

Sub Bouton35_QuandClic()
Dim Formule As Variant
Dim Chem As Variant
'1
With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = False
.Show
For Each Chem In .SelectedItems
Formule = "=VLOOKUP(RC1,'[Chem]Import'!C1:C20,3,FALSE)"
Next
End With
'2
For Each sh In Array("1A1", "1B1")
Sheets(sh).Activate
'3
Range("i38").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC1,'[Chem]Import'!C1:C20,3,FALSE)"
'Formule
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:úlse, Transpose:úlse
Next
End Sub

'1 : demander à l'utilisateur de sélectionner le fichier concerné afin de
récupérer son chemin.
'2 : avec array définir les feuilles qui doivent être traitées par la
macro
puis sélectionner la première feuille concernée, puis la seconde, ....
'3 : sélection de la cellule à alimenter dans la feuille, ajout de la
formule rechercheV ... et copier coller pour ne garder au final que la
valeur

or au '3 cela ne fonctionne pas (toujours pas) à chaque passage excel
ouvre
une fenêtre de type "ouvrir" intitulée mettre à jour la valeur Chem or ce
que
je voulais c'était bien que l'utilisateur n'ait à la déclarer qu'une fois
au
début de la macro le chemin et non pas pour chaque cellule de chaque
feuille
contenue dans Array ...

Si tu vois ou cela peut pêcher ...

Merci encore,

Cordialement,

FFO.



Salut à toi

J'ai testé ton code et aprés l'avoir adapté comme ceci:

For Each sh In Array("1A1", "1B1")
Sheets("Feuil1").Activate
'encore merci cousinhub !
Range("I38").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC1,'[Chem]Import'!C1:C20,3,FALSE)"
Next

j'ai corrigé : Sheets("Feuil1").Activate
tu avait mis : Sheets(sh).Activate
or sh est la variable déclaré censé représenté chaque cellule de la zone
Array ("1A1", "1B1")
A moins que tu ais toutes feuilles avec le nom représentant la valeur de
toutes ces cellules
J'ai mis à la fin de code l'instruction NEXT qui faisait cruellement
défaut

Et ton code a fonctionné
J'ai bien eu en cellule I38 la formule > > > >> =RECHERCHEV($A38;[Chem]Feuil2!$A:$T;3;FAUX)


Voila donc l'état de mes constatations concernant ton code
Peut être t'aurais je aidé
Dis moi !!!



Bonsoir à tous,

à chaque jour son impasse ...

je stocke un chemin vers un fichier xls dans une variable nommée Chem

or je souhaite l'injecter dans un code de type :

For Each sh In Array("1A1", "1B1")
Sheets(sh).Activate
'encore merci cousinhub !
Range("I38").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC1,'[Chem]Import'!C1:C20,3,FALSE)"

J'ai essayé des variantes :

ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC1,'[" & Chem & " ]Import'!C1:C20,3,FALSE)"

ou en utilisant une variable intermédiaire :

Formule = "=VLOOKUP(RC1,'[" & Chem & "]Import'!C1:C20,3,FALSE)"
ActiveCell.FormulaR1C1 = _
Formule
Formule me donne bien la formule complétée mais au moment du
ActiveCell.FormulaR1C1 cela ne marche pas ...

Si vous avez une idée ...

En vous remerciant,

Cordialement,

FFO.


















1 2