XL 2019 VBA : Utiliser le résultat d'une InputBox comme critère dans une formule recherche de fichier

Pierre111

XLDnaute Nouveau
Bonjour, je travaille sur un fichier et j'aimerai pouvoir utiliser le résultat obtenu dans ma fonction inputbox dans une formule.
Par exemple, si ma variable qui collecte le résultat de mon inputbox s'appelle "mavaleur"; je voudrais qu'une formule se calcule automatiquement en A2 telle que cela recherche un dossier dans mon ordinateur :
=A2 - Commun\Mes Données \Excel\Rapport semaine "mavaleur"

Je suis novice en VBA donc merci à tous ceux qui prendront le temps de m'aider !
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Vous pouvez soit :
1 - mettre le contenu de la variable "mavaleur' dans une cellule

VB:
ThisWorkbook.Sheets("LaFeuille").Range("A1") = mavaleur

2- mettre le contenu de la variable "mavaleur" dans un nom
non testé :
Code:
Sub test()
    Dim mavaleur As Variant
    mavaleur = CInt(Application.InputBox(Prompt:="Entrez un entier de 1 à 10", Default:=0, Type:=1))
    If mavaleur > 0 And mavaleur < 11 Then Application.Names.Add "toto", mavaleur
End Sub

Mais au vu de votre formule qui a toutes les chances de ne pas fonctionner telle quelle, je crois qu'il vous faudra nous donner plus d'explication et pourquoi pas un classeur exemple.

Cordialement
 

Pierre111

XLDnaute Nouveau
Bonjour,

Vous pouvez soit :
1 - mettre le contenu de la variable "mavaleur' dans une cellule

VB:
ThisWorkbook.Sheets("LaFeuille").Range("A1") = mavaleur

2- mettre le contenu de la variable "mavaleur" dans un nom
non testé :
Code:
Sub test()
    Dim mavaleur As Variant
    mavaleur = CInt(Application.InputBox(Prompt:="Entrez un entier de 1 à 10", Default:=0, Type:=1))
    If mavaleur > 0 And mavaleur < 11 Then Application.Names.Add "toto", mavaleur
End Sub

Mais au vu de votre formule qui a toutes les chances de ne pas fonctionner telle quelle, je crois qu'il vous faudra nous donner plus d'explication et pourquoi pas un classeur exemple.

Cordialement
Bonjour,
J'aimerais que le numéro de semaine qui est stockée grâce au inputbox "mavaleur" remplace le numéro de semaine qui est calculé automatiquement dans la cellule B2
Je sais pas si je suis clair
Mais merci pour votre aide
 

Pièces jointes

  • Réductions semaine 10.xlsx
    20.9 KB · Affichages: 1
  • Montant commandes semaine 10.xlsm
    28.4 KB · Affichages: 1

job75

XLDnaute Barbatruc
Téléchargez les fichiers joints dans le même dossier (le bureau).

Ouvrez le fichier .xlsm et cliquez sur le bouton pour exécuter cette macro :
VB:
Sub Choix()
Dim chemin$, x$, n As Byte
chemin = ThisWorkbook.Path & "\" 'à adapter
Do
    x = InputBox("Entrez 1, 2 ou 3 :", "Choix semaine", x)
    If x = "" Then Exit Sub
    n = Val(x)
Loop While IsError(Application.Match(n, [ROW(1:3)], 0))
[A2] = "='" & chemin & "[Rapport semaine " & n & ".xlsx]Feuil1'!A2" 'formule de liaison adaptable
End Sub
 

Pièces jointes

  • Rapport semaine 1.xlsx
    8.7 KB · Affichages: 1
  • Rapport semaine 2.xlsx
    8.7 KB · Affichages: 1
  • Rapport semaine 3.xlsx
    8.7 KB · Affichages: 1
  • Choix(1).xlsm
    17.6 KB · Affichages: 3

job75

XLDnaute Barbatruc
Avec les fichiers du post #4 c'est très simple, pas besoin d'InputBox :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If [E1] = "" Or Intersect(Target, [E1]) Is Nothing Then Exit Sub
Application.ScreenUpdating = False
[B:B].Replace "semaine *.xlsx", "semaine " & [E1] & ".xlsx", xlPart
End Sub
La macro se déclenche quand on modifie la valeur en E1.
 

Pièces jointes

  • Réductions semaine 1.xlsx
    21.6 KB · Affichages: 1
  • Réductions semaine 2.xlsx
    21.6 KB · Affichages: 0
  • Réductions semaine 3.xlsx
    21.6 KB · Affichages: 0
  • Montant commandes.xlsm
    29.3 KB · Affichages: 0

Discussions similaires