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

Faire une recherche avec un nom qui change

8 réponses
Avatar
Bruno RCSC
Bonjour,

Sous Win Xp, Excel 2002

Est il possible et, dans ce cas, comment faire pour que dans une formule de
recherche, par le biais d'une inputbox, je puisse changer tous les mois le
nom du tableau de référence ?

Mon code actuel :
Range("F4995").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC[-4],'C:\BH\budget 2008-1.xls'!tablo_budget,10,FALSE)"
Selection.NumberFormat = "#,##0 $"

Mon objectif :
rep1 = InputBox("Saisir le nom du tableau (exemple : tablo_fevrier)")
Range("F4995").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC[-4],'C:\BH\budget 2008-1.xls'!tablo_fevrier ,10,FALSE)"
Selection.NumberFormat = "#,##0 $"

Si je remplace "bêtement" tablo_fevrier par & rep1, cela ne fonctionne pas.

Dans le même ordre d'idée, je voudrais pouvoir agir sur le numéro de la
colonne (16) en fonction du mois.

Merci pour votre aide.

BH.

8 réponses

Avatar
MichDenis
Utilise une variable comme ceci :

tblo = "tablo_fevrier" ' tu changes ici le nom du tableau
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC[-4],'C:Classeur1.xls'!" & tblo & ",10,FALSE)"



"Bruno RCSC" a écrit dans le message de news:
479b3b26$0$901$
Bonjour,

Sous Win Xp, Excel 2002

Est il possible et, dans ce cas, comment faire pour que dans une formule de
recherche, par le biais d'une inputbox, je puisse changer tous les mois le
nom du tableau de référence ?

Mon code actuel :
Range("F4995").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC[-4],'C:BHbudget 2008-1.xls'!tablo_budget,10,FALSE)"
Selection.NumberFormat = "#,##0 $"

Mon objectif :
rep1 = InputBox("Saisir le nom du tableau (exemple : tablo_fevrier)")
Range("F4995").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC[-4],'C:BHbudget 2008-1.xls'!tablo_fevrier ,10,FALSE)"
Selection.NumberFormat = "#,##0 $"

Si je remplace "bêtement" tablo_fevrier par & rep1, cela ne fonctionne pas.

Dans le même ordre d'idée, je voudrais pouvoir agir sur le numéro de la
colonne (16) en fonction du mois.

Merci pour votre aide.

BH.
Avatar
Bruno RCSC
Génial,
Merci.

Autre (petite !) question :
J'applique ma macro, onglet par onglet, à 8 onglets.
Or, si certaines variables différent en fonction de l'onglet, celle ci est
la même et je suis obligé de la saisir 8 fois.
Comment doit on procéder pour que cette variable ne soit saisie qu'une fois
?

Merci d'avance.

BH.

--
Utilise une variable comme ceci :

tblo = "tablo_fevrier" ' tu changes ici le nom du tableau
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC[-4],'C:Classeur1.xls'!" & tblo & ",10,FALSE)"



Bonjour,

Sous Win Xp, Excel 2002

Est il possible et, dans ce cas, comment faire pour que dans une formule
de
recherche, par le biais d'une inputbox, je puisse changer tous les mois le
nom du tableau de référence ?

Mon code actuel :
Range("F4995").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC[-4],'C:BHbudget 2008-1.xls'!tablo_budget,10,FALSE)"
Selection.NumberFormat = "#,##0 $"

Mon objectif :
rep1 = InputBox("Saisir le nom du tableau (exemple : tablo_fevrier)")
Range("F4995").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC[-4],'C:BHbudget 2008-1.xls'!tablo_fevrier
,10,FALSE)"
Selection.NumberFormat = "#,##0 $"

Si je remplace "bêtement" tablo_fevrier par & rep1, cela ne fonctionne
pas.

Dans le même ordre d'idée, je voudrais pouvoir agir sur le numéro de la
colonne (16) en fonction du mois.

Merci pour votre aide.

BH.





Avatar
MichDenis
Je ne suis pas certain de suivre ton raisonnement,
Si une variable doit conserver toujours sa valeur,
pourquoi ne pas déclarer dans le haut du module
une constante en utilisant une des syntaxes suivantes :

Private Const Denis = 5
Const Denis1 = 10
Public Const Denis2 = 50
(une constante public n'est possible que dans un module Standard)

Et dans ton code, tu appelles la constante définie.




"Bruno RCSC" a écrit dans le message de news:
479b4703$0$838$
Génial,
Merci.

Autre (petite !) question :
J'applique ma macro, onglet par onglet, à 8 onglets.
Or, si certaines variables différent en fonction de l'onglet, celle ci est
la même et je suis obligé de la saisir 8 fois.
Comment doit on procéder pour que cette variable ne soit saisie qu'une fois
?

Merci d'avance.

BH.

--
Utilise une variable comme ceci :

tblo = "tablo_fevrier" ' tu changes ici le nom du tableau
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC[-4],'C:Classeur1.xls'!" & tblo & ",10,FALSE)"



Bonjour,

Sous Win Xp, Excel 2002

Est il possible et, dans ce cas, comment faire pour que dans une formule
de
recherche, par le biais d'une inputbox, je puisse changer tous les mois le
nom du tableau de référence ?

Mon code actuel :
Range("F4995").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC[-4],'C:BHbudget 2008-1.xls'!tablo_budget,10,FALSE)"
Selection.NumberFormat = "#,##0 $"

Mon objectif :
rep1 = InputBox("Saisir le nom du tableau (exemple : tablo_fevrier)")
Range("F4995").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC[-4],'C:BHbudget 2008-1.xls'!tablo_fevrier
,10,FALSE)"
Selection.NumberFormat = "#,##0 $"

Si je remplace "bêtement" tablo_fevrier par & rep1, cela ne fonctionne
pas.

Dans le même ordre d'idée, je voudrais pouvoir agir sur le numéro de la
colonne (16) en fonction du mois.

Merci pour votre aide.

BH.





Avatar
Bruno RCSC
Michdenis : ma réponse est simple
Pourquoi ne pas déclarer dans le haut du module ?
car je ne sais pas qu'il faut faire comme cela !!
Je ne sais faire que :
Dim rep1 As variant
rep1 = InputBox("")
Dim rep2 As integer
rep2= InputBox("")
Et dans mon cas, il faudrait que rep1 soit définie comme une constante.

Je vais donc essayer car si je réussi, je vais gagner en efficacité.

Peux t'on définir la constante par InputBox ?

Encore merci.
BH

--------------
Je ne suis pas certain de suivre ton raisonnement,
Si une variable doit conserver toujours sa valeur,
pourquoi ne pas déclarer dans le haut du module
une constante en utilisant une des syntaxes suivantes :

Private Const Denis = 5
Const Denis1 = 10
Public Const Denis2 = 50
(une constante public n'est possible que dans un module Standard)

Et dans ton code, tu appelles la constante définie.


-----------------


Génial,
Merci.

Autre (petite !) question :
J'applique ma macro, onglet par onglet, à 8 onglets.
Or, si certaines variables différent en fonction de l'onglet, celle ci est
la même et je suis obligé de la saisir 8 fois.
Comment doit on procéder pour que cette variable ne soit saisie qu'une
fois
?

Merci d'avance.

BH.

--
Utilise une variable comme ceci :

tblo = "tablo_fevrier" ' tu changes ici le nom du tableau
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC[-4],'C:Classeur1.xls'!" & tblo & ",10,FALSE)"



Bonjour,

Sous Win Xp, Excel 2002

Est il possible et, dans ce cas, comment faire pour que dans une formule
de
recherche, par le biais d'une inputbox, je puisse changer tous les mois
le
nom du tableau de référence ?

Mon code actuel :
Range("F4995").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC[-4],'C:BHbudget 2008-1.xls'!tablo_budget,10,FALSE)"
Selection.NumberFormat = "#,##0 $"

Mon objectif :
rep1 = InputBox("Saisir le nom du tableau (exemple : tablo_fevrier)")
Range("F4995").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC[-4],'C:BHbudget 2008-1.xls'!tablo_fevrier
,10,FALSE)"
Selection.NumberFormat = "#,##0 $"

Si je remplace "bêtement" tablo_fevrier par & rep1, cela ne fonctionne
pas.

Dans le même ordre d'idée, je voudrais pouvoir agir sur le numéro de la
colonne (16) en fonction du mois.

Merci pour votre aide.

BH.










Avatar
MichDenis
| Peux t'on définir la constante par InputBox ?

Non, une constante est une constante... mais tu peux
la définir au niveau de la procédure pas seulement dans
le haut du module

Sub toto()
Const Bruno = 10
'Le code
End Sub
Avatar
Bruno RCSC
Bonsoir,

Je pense avoir compris mais question :
Sub toto()
Const Bruno = 10 'pour janvier
'Le code
End Sub

Sub toto()
Const Bruno = 11 'pour février
'Le code
End Sub

- si la constante change tous les mois, je dois aller dans le code changer
manuellement la valeur avant de lancer la macro ?

Merci pour votre réponse.

BH.

----------------

| Peux t'on définir la constante par InputBox ?

Non, une constante est une constante... mais tu peux
la définir au niveau de la procédure pas seulement dans
le haut du module

Sub toto()
Const Bruno = 10
'Le code
End Sub





Avatar
MichDenis
Pourquoi ne pas utiliser une variable ce ce type :

Dim LeMois As string

LeMois = Format(Date, "mmmm")

LeMois aura toujours la valeur texte du mois en cours.



"Bruno RCSC" a écrit dans le message de news:
479b93fb$0$896$
Bonsoir,

Je pense avoir compris mais question :
Sub toto()
Const Bruno = 10 'pour janvier
'Le code
End Sub

Sub toto()
Const Bruno = 11 'pour février
'Le code
End Sub

- si la constante change tous les mois, je dois aller dans le code changer
manuellement la valeur avant de lancer la macro ?

Merci pour votre réponse.

BH.

----------------

| Peux t'on définir la constante par InputBox ?

Non, une constante est une constante... mais tu peux
la définir au niveau de la procédure pas seulement dans
le haut du module

Sub toto()
Const Bruno = 10
'Le code
End Sub





Avatar
Bruno RCSC
Bonne idée.
En l'état actuel, je dispose d'un fichier budget composé de 12 onglets (1
par mois).
Je dois croiser des données pour un certain nombre de personnes (8 et autant
d'onglet) en recherchant des données dans l'onglet budget du mois.
Une partie de la solution consiste effectivement à nommer mes plages du
fichier budget janvier, fevrier,....
Je vais creuser.
Merci pour cet échange.


-------
Pourquoi ne pas utiliser une variable ce ce type :

Dim LeMois As string

LeMois = Format(Date, "mmmm")

LeMois aura toujours la valeur texte du mois en cours.



"Bruno RCSC" a écrit dans le message de news:
479b93fb$0$896$
Bonsoir,

Je pense avoir compris mais question :
Sub toto()
Const Bruno = 10 'pour janvier
'Le code
End Sub

Sub toto()
Const Bruno = 11 'pour février
'Le code
End Sub

- si la constante change tous les mois, je dois aller dans le code changer
manuellement la valeur avant de lancer la macro ?

Merci pour votre réponse.

BH.

----------------

| Peux t'on définir la constante par InputBox ?

Non, une constante est une constante... mais tu peux
la définir au niveau de la procédure pas seulement dans
le haut du module

Sub toto()
Const Bruno = 10
'Le code
End Sub