Salut tous,
Voilà je vous explique mon problème qui ne doit pas être sorcier (je pense), si vous pouvez me donner un coup de main, mes connaissances en vba étant ce qu'elles sont ... bref, donc je dois exécuter chaque jour une macro (créant des PDF) d'un fichier sous excel 2016, concernant le lancement de la macro une fois par jour en powershell je maitrise, mon problème se situe autour de la macro elle même, en effet cette dernière me pose 3 questions:
Choix 1: "Veuillez sélectionner le fichier CSV via la fenêtre suivante" -> J'appuie donc sur "OK" et une fenêtre de l'explorateur me permettant de sélectionner le CSV apparait = J'aimerai qu'il n'y ai plus la question et que le CSV soit choisi automatiquement
Choix 2: Une fois le CSV sélectionner -> Message Box 'Confirmez vous l'analyse du fichier CSV suivant" -> Appuie sur OK = J’aimerai que la confirmation n'existe pas
Choix 3: Voulez vous créer un fichier par structure ? -> Appuie sur "Oui" -> Ouverture de l'explorateur pour me demander ou créer les fichiers -> Message Box de sorti "Liste des managers ADA traitée" = J'aimerai que la réponse Oui ainsi que l'emplacement soit fixé dans la macro
Pour résumer mon but est d'automatiser ces trois questions, mais vraiment après avoir essayé plusieurs heures je n'y arrive pas à fixer en dur les réponses. Avez vous une idée ? Si vous avez pas la réponse, au moins des pistes parce que la ...
Merci à tous.
Voici le code:
Choix 1 & 2
Choix 3:
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 Dim Fichier As String x = MsgBox("Localisation de la Liste des Managers issue d'ADA." & vbCrLf & _ "Veuillez sélectionner le fichier CSV via la fenêtre de recherche suivante...", vbOKCancel) If x = vbCancel Then Exit Sub With Application.FileDialog(msoFileDialogFilePicker) 'Définit un titre pour la boîte de dialogue .Title = "Localisation du fichier CSV ""Managers ADA""" ' Affiche la boîte de recherche du ficheir .Show If .SelectedItems.Count = 0 Then MsgBox "Pas de fichier sélectionné. Processus abandonné." Exit Sub End If 'fStr is the file path and name of the file you selected. Fichier = .SelectedItems(1) End With Application.ScreenUpdating = False ' Inutile de présenter le contenu des fichiers x = MsgBox("Confirmez-vous l'analyse du fichier CSV suivant ?" & vbCrLf & _ Fichier, vbOKCancel) If x = vbCancel Then Exit Sub SaveFullPath = Fichier Workbooks.OpenText Filename:=Fichier, Origin:=xlWindows, _ StartRow:=1, DataType:=xlDelimited, Local:=True, Semicolon:=True RC = Build_ADA_Managers(Fichier) 'Exploitons ce fichier CSV If Fichier = "0" Then MsgBox "Liste des Managers ADA traitée. Fichier résultant stocké." Else MsgBox "Processus abandonné pour :" & vbCrLf & _ SaveFullPath & vbCrLf & _ "Dommage..." End If ActiveWorkbook.Close False ' Fermeture de ce classeur Application.Quit ' Sortie d'Excel 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
38
39
40
41
42
43
44
45
46 x = MsgBox("Voulez-vous créer un fichier par Structure ?" & vbCrLf & vbCrLf & _ "Si vous répondez NON, un fichier global sera créé.", vbYesNo) If x = vbYes Then ' Un classeur par structure ' Création d'un classeur par Structure NbFeuille = 0 For Each Feuille In ActiveWorkbook.Sheets NbFeuille = NbFeuille + 1 Call CreateXLS(Feuille.Name, NbFeuille) Next Else ' Un fichier global ' Enregistrement du classeur contenant toutes les feuilles... ActiveWorkbook.BuiltinDocumentProperties.Item("Comments").Value = "Managers ADA, toutes compagnies" Set objSaveBox = Application.FileDialog(msoFileDialogSaveAs) With objSaveBox 'Définit un nom par défaut dans le champ "Nom de fichier". .InitialFileName = "Managers ADA - " & AAAAMMJJ .Title = "Répertoire cible ?" 'Définit le type de fichier par défaut: '(NOTE: la valeur 4 Permet de spécifier les classeurs "Excel 97-2003" lorsque vous êtes dans Excel 2007) .FilterIndex = 1 'Affiche la boîte de dialogue .Show 'Enregistre .Execute End With Dest = ActiveWorkbook.Path ' MsgBox "Sauvegarde le répertoire " & Dest & " dans clé de registre..." SaveSetting appname:="ADAmanagers", section:="ListeRep", Key:="Location", setting:=Dest ' Création d'un PDF contenant toutes les feuilles ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, _ Filename:=Filename, Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=True, _ OpenAfterPublish:=False ' Fermeture du nouveau classeur ActiveWorkbook.Close False End If ' Retour au chemin initial ChDir (CurPath) ' Retour à la liste Workbooks(LISTE).Close SaveChanges:=False Fichier = 0 Application.Quit ' Sortie d'Excel ?
Partager