Bonjour à tous,
J'ai créé un petit programme qui me permet depuis une boite de dialogue de selectionner un fichier, de réaliser des calculs et de les copier dans mon fichier d'origine.
Ma boite de dialogue contient 3 boutons :
- explorer (pour selectionner un fichier comme dans windows)
- valider (qui permet d'exécuter les macros)
- fermer (sui femre simplement la boite de dialogue)
Et 2 afficheurs :
- textNameMOAP (permet d'afficher le nom du fichier avant de le charger)
- textboxMOAP (permet d'afficher le chemin du fichier)
Mon progamme est le suivant :
Et ma macro permettant d'ouvrir l'explorateur de fichier est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
40
41
42
43
44 Private Sub cmdValider_Click() Dim Chemin_Fichier_Modele As String, Chemin_MOAP As String, Chemin_Complet_MOAP As String, Feuille As String Dim PlageAT As String ' Chemin du Fichier Feuille = "MED-FML-2010-000129" Chemin_Complet_MOAP = TextBoxMOAP.Text Chemin_MOAP = TextNameMOAP.Text Chemin_Fichier_Modele = ThisWorkbook.Name PlageAT = "AT5:AT1500" ' Vérifie si un fichier a été choisie If TextBoxMOAP.Text = "" Then MsgBox "Choisissez un fichier Excel (xlsx ou xlsm)" TextBoxMOAP.SetFocus Else ' Désactive le mise à jour de l'écran Application.ScreenUpdating = False Application.DisplayStatusBar = True Application.StatusBar = "En cours..." DoEvents ' Montant décidés de l'année en cours If Month(Now()) = 12 Then Range("M23").Formula = "=SUM('" & Chemin_Complet_MOAP & "[" & Chemin_MOAP & "]" & Feuille & "'!" & PlageAT & ")/1000" Range("M23").Interior.ColorIndex = 34 Else Range("M23").Interior.ColorIndex = 2 End If Range("M23").Value = Range("M23").Value Unload Me End If End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 Private Sub cmdExplorerMOAP_Click() Dim Fd As FileDialog Dim Fdfs As FileDialogFilters Dim Plage As Range Dim cell As Range Dim Name_Fichier As String, i As Integer ' choix du fichier Excel par l'explorateur Set Fd = Application.FileDialog(msoFileDialogOpen) Set Fdfs = Application.FileDialog(msoFileDialogOpen).Filters Fdfs.Clear ' ajout de la seule extension Excel Set Fdf = Fdfs.Add("All files", "*.xlsm; *.xlsx", 1) ' récupération du nom et du chemin du fichier sélectionné With Fd .AllowMultiSelect = False If .Show = -1 Then Path = .SelectedItems(1) Name_Fichier = Mid(Path, InStrRev(Path, "\") + 1) ' MsgBox name_fichier TextBoxMOAP.Text = Path TextNameMOAP.Text = Name_Fichier menu.TextBoxFichierMOAP.Text = Path Else 'The user pressed Cancel. Exit Sub End If End With ' Set Fd = Nothing End Sub
1 - Mon premier problème est que l'explorateur me demande à chaque fois de selectionner 2 fois le fichier.
2 - Mon deuxième souci est que je souhaiterais utiliser la première feuille du classeur que je selectionne et non pas forcer le nom du fichier (ici c'est MED-FML-2010-000129).
Est ce que quelqu'un pourrait m'éclairer sur ces deux problèmes ?
Merci et bonne fêtes
Partager