Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/11/2011, 14h50   #1
Invité régulier
 
Homme
Responsable des études
Inscription : avril 2011
Messages : 31
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Responsable des études
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : avril 2011
Messages : 31
Points : 9
Points : 9
Par défaut permettre à l'utilisateur de modifier une variable chemin sans accès au code

bonjour à tous
je vous sollicite car je n'ai pas réussi a trouver la solution à mon problème/
afin de faciliter l'implantation de mon fichier sur différents sites je souhaiterais pouvoir donner la possibilité aux utilisateurs de modifier la variable chemin sans qu'il puisse toutefois accéder au code ( par l'intermédiaire d'une box ?)
quelqu'un peut 'il m'aider à résoudre

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
Sub initialiser()
Dim fso As Object, x, y, z As Boolean
Dim chemin As Variant
chemin = "N:\documents\"   'c'est ici que devrait s'opérer le choix
Set fso = CreateObject("Scripting.FileSystemObject")
x = fso.FileExists(chemin & "Export1.xls")
y = fso.FileExists(chemin & "Export2.xls")
z = fso.FileExists(chemin & "Export3.xls")
If x = False Then MsgBox " Le fichier Export1 n'est pas présent dans " & chemin & Chr(10) & Chr(10) & _
"Veuillez le rajouter et recommencer la procédure"
If x = False Then Exit Sub
If y = False Then MsgBox " Le fichier Export2 n'est pas présent dans " & chemin & Chr(10) & Chr(10) & _
"Veuillez le rajouter et recommencer la procédure"
If y = False Then Exit Sub
If z = False Then MsgBox " Le fichier Export3 n'est pas présent dans " & chemin & Chr(10) & Chr(10) & _
"Veuillez le rajouter et recommencer la procédure"
If z = False Then Exit Sub
merci d'avance pour votre aide
goldfinger13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/11/2011, 14h59   #2
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
Code :
1
2
3
4
5
6
7
8
9
10
11
12
Dim Chemin As String
 
With Application.FileDialog(msoFileDialogFolderPicker)
    .Show
    If .SelectedItems.Count > 0 Then Chemin = .SelectedItems(1)
End With
If Chemin <> "" Then
    Chemin = Chemin & "\"
    MsgBox Chemin
    'ton code
 
End If
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 05/11/2011, 15h00   #3
Expert Confirmé
 
Homme Philippe
ex Observeur CGG / Analyste prog.
Inscription : juin 2006
Messages : 1 713
Détails du profil
Informations personnelles :
Nom : Homme Philippe
Localisation : France, Finistère (Bretagne)

Informations professionnelles :
Activité : ex Observeur CGG / Analyste prog.

Informations forums :
Inscription : juin 2006
Messages : 1 713
Points : 3 650
Points : 3 650
Salut, ces chemins sont-ils à conserver de session en session ? si oui, passer par une feuille cachée ou les choix seront conservés ou un fichier "*.ini"

Voir aide en ligne sur GetOpenFilename
__________________
Pensez à Voter, d'avance merci. ( Pouces en bas à la droite de Citer )
Balisez votre code après l'avoir indenté sous Excel via Smart Indenter
Autre utilitaire : MZ Tools 3.0 VBA

Contribution : Excel / Word / PDF avec Adobe Acrobat Pro / PDFCreator 1 2
kiki29 est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 05/11/2011, 15h30   #4
Invité régulier
 
Homme
Responsable des études
Inscription : avril 2011
Messages : 31
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Responsable des études
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : avril 2011
Messages : 31
Points : 9
Points : 9
re bonjour,
en fait pour mieux préciser je souhaiterais que le choix soit donné lors de l'installation du fichier et qu'ensuite les données soient conservées j'ai bien regardé l'aide mais je suis un peu perdu sinon ta solution Mercatog fonctionne à merveille mais oblige l'utilisateur à recherche le chemin à chaque fois.
kiki pourrais tu m’aiguiller un peu plus
@+
goldfinger13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/11/2011, 17h12   #5
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
Ajoute une feuille que tu nomme Temp (éventuellement cache la). Dans cette feuille on va écrire notre chemin (avec la possibilité de le changer)

PS: J'ai utilisé Dir dans la 2ème partie du code, tu peux aussi utiliser ta méthode

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Sub Initialiser()
Dim Chemin As String, Msg As String, Rep As String
Dim Choix As Byte, k As Byte
Dim Er As Boolean
 
Rep = Worksheets("Temp").Range("A1")
Choix = MsgBox("Voulez vous changer le répertoire?", vbYesNo)
 
'On choisit de changer le répertoire si:
'1. le chemin n'a pas été sauvegardé dans la feuille Temp
'2. le répertoire est inexistant
'3. par choix de l'utilisateur
If Rep = "" Or Dir(Rep & "*.*") = "" Or Choix = vbYes Then
    With Application.FileDialog(msoFileDialogFolderPicker)
        .Show
        If .SelectedItems.Count > 0 Then Chemin = .SelectedItems(1)
    End With
End If
 
If Chemin <> "" Then
    Chemin = Chemin & "\"
    Worksheets("Temp").Range("A1") = Chemin
Else
    Chemin = Rep
End If
 
If Chemin <> "" Then
    Msg = "Le(s) fichier(s) suivant(s) est (sont) absent(s) du répertoire " & Chemin & " :" & vbCrLf
    For k = 1 To 3
        If Dir(Chemin & "Export" & k & ".xls") = "" Then
            Er = True
            Msg = Msg & "    - Export" & k & vbCrLf
        End If
    Next k
 
    Msg = IIf(Er, Msg & "Veuillez le(s) rajouter et recommencer la procédure.", "Tout est ok")
    MsgBox Msg
End If
End Sub
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 05/11/2011, 18h21   #6
Invité régulier
 
Homme
Responsable des études
Inscription : avril 2011
Messages : 31
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Responsable des études
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : avril 2011
Messages : 31
Points : 9
Points : 9
Milles MERCI Mercatog
mon problème est résolu .
goldfinger13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h43.


 
 
 
 
Partenaires

Hébergement Web