Faire une recherche avec un nom qui change

Le
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: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.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichDenis
Le #5140591
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" 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.
Bruno RCSC
Le #5140571
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.





MichDenis
Le #5140551
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" 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.





Bruno RCSC
Le #5140511
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.










MichDenis
Le #5140501
| 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
Bruno RCSC
Le #5140271
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





MichDenis
Le #5140261
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" 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





Bruno RCSC
Le #5140231
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" 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










Publicité
Poster une réponse
Anonyme