Modification d'un chemin d'accès dans code par boite de dialogue
Le
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.
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.

Poser une question


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" news:
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.
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" news: