Concernant le dialogue vous n’êtes pas obligé d'importer les APIs de windows et tout le tralala qui peut causer il est possible de sélectionner un fichier via le dialogue natif de l'application:
Pour éviter l'activation manuelle des références utiliser plutôt CreateObjet à la place de New
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 Public Function OuvrirUnFichier(Handle As Long, _ Titre As String, _ TypeRetour As Byte, _ Optional TitreFiltre As String, _ Optional TypeFichier As String, _ Optional RepParDefaut As String) As String Dim sFiltre, I As Long, sAll As Boolean sFiltre = Split(TitreFiltre, "|") With Application.FileDialog(1) .Title = Titre .Filters.Clear sAll = False If TitreFiltre <> "" Then For I = 0 To ((UBound(sFiltre) + 1) \ 2 - 1) Step 2 .Filters.Add sFiltre(I), sFiltre(I + 1) If Not sAll And (sFiltre(I + 1) = "*.*") Then sAll = True End If Next End If If Not sAll Then: .Filters.Add "Tout les fichiers", "*.*" .InitialFileName = RepParDefaut If .Show <> 0 Then OuvrirUnFichier = .SelectedItems(1) End If End With End Function
Chercher les instances de New et remplacez les dans le code
Exemple:
à remplacer par
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Dim objOutlook As Outlook.Application .. Dim objWord As Word.Application 'Assigner l'objet Outlook et Word Set objOutlook = New Outlook.Application Set objWord = New Word.Application
si CreateObject échoue cela veut dire que les bibliothèques ne sont pas installés
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Dim objOutlook .. Dim objWord 'Assigner l'objet Outlook et Word Set objOutlook = CreateObject("Outlook.Application") Set objWord = CreateObject("Word.Application")
bonne chance

Répondre avec citation







Partager