Automatisation d'une macro préexistante
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
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 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 |
Choix 3:
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 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 ? |