IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Automatisation d'une macro préexistante


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 5
    Par défaut 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 : 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
    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
    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 ?

  2. #2
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Bonjour Tcsevens, bonjour le forum,

    Peut-être comme ça :
    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
    47
    48
    49
    50
    51
    52
    Sub Macro1()
    Dim Fichier As String
     
    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
    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
     
    NbFeuille = 0
    For Each Feuille In ActiveWorkbook.Sheets
        NbFeuille = NbFeuille + 1
        Call CreateXLS(Feuille.Name, NbFeuille)
    Next
    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
    ' Retour au chemin initial
    ChDir (CurPath)
    ' Retour à la liste
    Workbooks(LISTE).Close SaveChanges:=False
    Fichier = 0
    Application.Quit            ' Sortie d'Excel ?
    End Sub

Discussions similaires

  1. Automatisation d'une macro sas
    Par perel dans le forum Macro
    Réponses: 3
    Dernier message: 05/08/2015, 15h16
  2. Automatisation d'un tableau de bord nécessitant une macro
    Par Chess-AK dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 15/12/2009, 14h37
  3. Automatisation d'une macro VBA Access
    Par fbourdon dans le forum IHM
    Réponses: 1
    Dernier message: 26/11/2009, 17h40
  4. automatiser l'éxecution d'une macro Excell
    Par lamadi dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/01/2008, 00h22
  5. Automatisation d'une macro existante
    Par Benoit02 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/08/2007, 22h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo