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

Modification d'un chemin d'accès dans code par boite de dialogue

3 réponses
Avatar
ydemarin
Bonjour,

Sous Excel 2003

Mon niveau en VBA est assez faible.
Néanmoins j'ai dévellopé un petit programme très simple de gestion de stock
spécifique dans excel.
Et dans mon code vba, je fais appel à deux reprises à des fichiers excel qui
se trouvent sur le disque dur avec un chemin d'accès fixe. Mais souhaitant
pouvoir distribuer facilement le classeur-programme, je cherche à concevoir
une macro qui me permetterait à la première ouverture duclasseur, de
paramétrer les chemins d'accès. (Et donc laisser le choix à l'utilisateur
d'installer où il le souhaite le programme; d'autant plus quej'ai prévu
d'utiliser un programme d'installation automatique tel que InnoSetup).

Voila comment je conçois les choses:
Seulement lors de la première ouverture du classeur (bloquer la répétition
du processus par une option du genre :" ne plus poser cette question
aprochaine fois" à cocher)
Puis une boite de dialogue invite l'utilisateur à indiquer le chemin d'accès
à un répértoire spécifique dans lequel se trouve les fichiers excel qui
doivent être ouverts pendant l'utilisation du programme.
Enfin une confirmation est donnée comme quoi le chemin d'accès a bien été
pris en compte.
Reprise du cours normal du programme.

J'espère avoir été assez clair.

Je vous remercie d'avance de l'aide que vous pourriez m'apporter.

3 réponses

Avatar
Daniel
Bonjour.
La macro suivante utilise une feuille cachée pour stocker le chemin.

Sub test()
On Error Resume Next
Sheets("Repert").Visible = True
If Err.Number <> 0 Then
Err.Clear
Sheets.Add
ActiveSheet.Name = "Repert"
With Application.FileDialog(msoFileDialogFolderPicker)
.Show
Sheets("Repert").Range("A1") = .SelectedItems(1)
End With
End If
Sheets("Repert").Visible = xlVeryHidden
End Sub

Cordialement.
Daniel
"ydemarin" a écrit dans le message de
news:
Bonjour,

Sous Excel 2003

Mon niveau en VBA est assez faible.
Néanmoins j'ai dévellopé un petit programme très simple de gestion de
stock
spécifique dans excel.
Et dans mon code vba, je fais appel à deux reprises à des fichiers excel
qui
se trouvent sur le disque dur avec un chemin d'accès fixe. Mais
souhaitant
pouvoir distribuer facilement le classeur-programme, je cherche à
concevoir
une macro qui me permetterait à la première ouverture duclasseur, de
paramétrer les chemins d'accès. (Et donc laisser le choix à l'utilisateur
d'installer où il le souhaite le programme; d'autant plus quej'ai prévu
d'utiliser un programme d'installation automatique tel que InnoSetup).

Voila comment je conçois les choses:
Seulement lors de la première ouverture du classeur (bloquer la répétition
du processus par une option du genre :" ne plus poser cette question
aprochaine fois" à cocher)
Puis une boite de dialogue invite l'utilisateur à indiquer le chemin
d'accès
à un répértoire spécifique dans lequel se trouve les fichiers excel qui
doivent être ouverts pendant l'utilisation du programme.
Enfin une confirmation est donnée comme quoi le chemin d'accès a bien été
pris en compte.
Reprise du cours normal du programme.

J'espère avoir été assez clair.

Je vous remercie d'avance de l'aide que vous pourriez m'apporter.


Avatar
ydemarin
Merci de m'avoir répondu aussi vite.
La solution proposée est en effet très intéréssante;

Mais j'aurais deux questions:

1) comment et où récupérer l'information (et donc le chemin d'accès) saisie
dans la boîte de dialogue?

2) comment faire en sorte que cette macro s'execute automatiquement à
l'ouverture du classeur.

Merci beaucoup.




Bonjour.
La macro suivante utilise une feuille cachée pour stocker le chemin.

Sub test()
On Error Resume Next
Sheets("Repert").Visible = True
If Err.Number <> 0 Then
Err.Clear
Sheets.Add
ActiveSheet.Name = "Repert"
With Application.FileDialog(msoFileDialogFolderPicker)
.Show
Sheets("Repert").Range("A1") = .SelectedItems(1)
End With
End If
Sheets("Repert").Visible = xlVeryHidden
End Sub

Cordialement.
Daniel
"ydemarin" a écrit dans le message de
news:
Bonjour,

Sous Excel 2003

Mon niveau en VBA est assez faible.
Néanmoins j'ai dévellopé un petit programme très simple de gestion de
stock
spécifique dans excel.
Et dans mon code vba, je fais appel à deux reprises à des fichiers excel
qui
se trouvent sur le disque dur avec un chemin d'accès fixe. Mais
souhaitant
pouvoir distribuer facilement le classeur-programme, je cherche à
concevoir
une macro qui me permetterait à la première ouverture duclasseur, de
paramétrer les chemins d'accès. (Et donc laisser le choix à l'utilisateur
d'installer où il le souhaite le programme; d'autant plus quej'ai prévu
d'utiliser un programme d'installation automatique tel que InnoSetup).

Voila comment je conçois les choses:
Seulement lors de la première ouverture du classeur (bloquer la répétition
du processus par une option du genre :" ne plus poser cette question
aprochaine fois" à cocher)
Puis une boite de dialogue invite l'utilisateur à indiquer le chemin
d'accès
à un répértoire spécifique dans lequel se trouve les fichiers excel qui
doivent être ouverts pendant l'utilisation du programme.
Enfin une confirmation est donnée comme quoi le chemin d'accès a bien été
pris en compte.
Reprise du cours normal du programme.

J'espère avoir été assez clair.

Je vous remercie d'avance de l'aide que vous pourriez m'apporter.







Avatar
Daniel
1. Le répertoire est représenté par : .SelectedItems(1)
stocké pour éviter la question lors des utilisations suivantes dans :
Sheets("Repert").Range("A1") :
Dim Chemin as String
Chemin = .SelectedItems(1)
2. tu places ce code dans "ThisWorkbook" :

Private Sub Workbook_Open()
On Error Resume Next
Sheets("Repert").Visible = True
If Err.Number <> 0 Then
Err.Clear
Sheets.Add
ActiveSheet.Name = "Repert"
With Application.FileDialog(msoFileDialogFolderPicker)
.Show
Sheets("Repert").Range("A1") = .SelectedItems(1)
End With
End If
Sheets("Repert").Visible = xlVeryHidden
End Sub

Daniel
"ydemarin" a écrit dans le message de
news:
Merci de m'avoir répondu aussi vite.
La solution proposée est en effet très intéréssante;

Mais j'aurais deux questions:

1) comment et où récupérer l'information (et donc le chemin d'accès)
saisie
dans la boîte de dialogue?

2) comment faire en sorte que cette macro s'execute automatiquement à
l'ouverture du classeur.

Merci beaucoup.




Bonjour.
La macro suivante utilise une feuille cachée pour stocker le chemin.

Sub test()
On Error Resume Next
Sheets("Repert").Visible = True
If Err.Number <> 0 Then
Err.Clear
Sheets.Add
ActiveSheet.Name = "Repert"
With Application.FileDialog(msoFileDialogFolderPicker)
.Show
Sheets("Repert").Range("A1") = .SelectedItems(1)
End With
End If
Sheets("Repert").Visible = xlVeryHidden
End Sub

Cordialement.
Daniel
"ydemarin" a écrit dans le message
de
news:
Bonjour,

Sous Excel 2003

Mon niveau en VBA est assez faible.
Néanmoins j'ai dévellopé un petit programme très simple de gestion de
stock
spécifique dans excel.
Et dans mon code vba, je fais appel à deux reprises à des fichiers
excel
qui
se trouvent sur le disque dur avec un chemin d'accès fixe. Mais
souhaitant
pouvoir distribuer facilement le classeur-programme, je cherche à
concevoir
une macro qui me permetterait à la première ouverture duclasseur, de
paramétrer les chemins d'accès. (Et donc laisser le choix à
l'utilisateur
d'installer où il le souhaite le programme; d'autant plus quej'ai prévu
d'utiliser un programme d'installation automatique tel que InnoSetup).

Voila comment je conçois les choses:
Seulement lors de la première ouverture du classeur (bloquer la
répétition
du processus par une option du genre :" ne plus poser cette question
aprochaine fois" à cocher)
Puis une boite de dialogue invite l'utilisateur à indiquer le chemin
d'accès
à un répértoire spécifique dans lequel se trouve les fichiers excel qui
doivent être ouverts pendant l'utilisation du programme.
Enfin une confirmation est donnée comme quoi le chemin d'accès a bien
été
pris en compte.
Reprise du cours normal du programme.

J'espère avoir été assez clair.

Je vous remercie d'avance de l'aide que vous pourriez m'apporter.