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

VB.NET Discussion :

[VB 2008 Express] Automatisation d'une Maccro dans Excel.


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2006
    Messages : 45
    Par défaut [VB 2008 Express] Automatisation d'une Maccro dans Excel.
    Bonjour à tous !!!

    Situation....
    Voilà j'ai ce petit bout de code en VBA (Excel) qui permet de sauvegarder les feuillets qui sont dans 1 excel par autant de fichier CSV.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
      Application.displayAlerts = False
            Dim LaFeuille As worksheet, Chemin As String
            Chemin = "C:\FichierCSV\"
            For Each LaFeuille In ActiveWorkbook.worksheets
                LaFeuille.select()
                activeWorkbook.saveas(Filename:=Chemin & Activesheet.name & ".csv", _
                FileFormat:=xlCSV, CreateBackup:=False)
            Next
            Application.displayAlerts = True
    Ce VBA est à la base dans une Maccro (un bouton). Il marche très bien et genere correctement les fichiers CSV.


    Ce que je souhaite faire....
    On souhaite automatiser cette action. C'est a dire éviter que l'utilisateur ouvre le fichier excel, crée un bouton, link le VBA, et éxécute le bouton.
    En gros l'algo serait:
    -Ouverture du Programme.
    -Link du programme avec Excel.
    -Ouverture du fichier Excel.
    -Execution de la partie Script ExlToCsv (le code ci-dessus).
    -Fermeture du fichier Excel.
    -Fermeture du programme.


    L'utilisation finale....
    Une fois le fichier Excel récupéré, je cliquerais sur l'exe qui exécutera le script pour créer les fichiers CSV. (L'exe et le Excel seront dans le même répertoire).
    Le nom du fichier excel ne changera jamais.

    Donc je pensais me tourner vers VB 2008 Exp, faire un projet console.
    Est ce possible? Si oui pouvez vous m'y aider?

    Cordialement,
    Nissartis.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2006
    Messages : 45
    Par défaut
    Bon pour l'instant en cherchant un peu partout je me retrouve avec ce code :
    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
    Module Module1
     
        Sub Main()
     
            Dim appExcel As Microsoft.Office.Interop.Excel.Application 'Variable Application Excel
            Dim wbExcel As Microsoft.Office.Interop.Excel.Workbook 'Variable Classeur Excel
            Dim wsExcel As Microsoft.Office.Interop.Excel.Worksheet 'Variable Feuille Excel
     
     
            appExcel.displayAlerts = False  'On désactive les alertes
            appExcel = CreateObject("Excel.Application")    'Ouverture de l'appli
            wbExcel = appExcel.Workbooks.Open("C:\irrdbu.xls")    'Ouverture du fichier Excel
            wsExcel = wbExcel.Worksheets(1) 'Selection de la premiere feuille
            wsExcel.visible = True  'On affiche la feuille
            appExcel.Visible = True 'On affiche Excel
     
            Dim LaFeuille As wbExcel.worksheet, Chemin As String
            Chemin = "C:\FichierCSV\"   'Chemin où seront les CSV
            For Each LaFeuille In wbExcel.ActiveWorkbook.worksheets
                LaFeuille.select()
                activeWorkbook.saveas(Filename:=Chemin & Activesheet.name & ".csv", _
                FileFormat:=xlCSV, CreateBackup:=False)
            Next
     
        End Sub
     
    End Module
    Petit soucis n'éyant pas Office 2k3 sur mon poste, je n'ai pas Microsoft.Office.Interop.Excel.dll
    donc si quelqu'un pourrait me dire si ça compile ou si ça semble correct ?

    Cordialement,
    Nissartis.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2006
    Messages : 45
    Par défaut
    Bonjour.

    Quelqu'un pourrait m'expliquer pourquoi je n'arrive pas a trouver cette .DLL ?!
    Je suis sur un poste avec Office 2k3 et rien n'y fais. J'ai beau faire:
    Projet >> Ajouter une référence >> .NET ou COM >> je me retrouve toujours avec mes variables soulignées en Bleu disant qu'elle en sont pas défini.
    (Microsoft.Office.Interop)

    Une solution ?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2006
    Messages : 45
    Par défaut
    Solution trouvé

    Il faut re-executer l'install d'office, et dans l'instal personnalisé il faut mettre sous excel -> Prise en charge de .NET

    Bon je continue à faire mon programme

  5. #5
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Par défaut
    Bravo, bel exemple de persévérance dans tes recherches

    N'oublie pas le tag

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2006
    Messages : 45
    Par défaut
    Oulaaaa attend ^^
    J'ai juste résolu le petit soucis de compilation

    Le Programme est presque finis mais j'ai un soucis sur une seule ligne ... la sauvegarde du fichier ...

    Donc pour résumé:
    Ouvrir le fichier Excel = OK
    Séléctionner les feuillets un par un = OK
    Sauvegarde du feuillet selectionner en CSV avec le nom du Feuillet = ECHEC.

    Je vais vous mettre une copie de mon code si vous pouvez m'aider ça serait bien ^^

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 20/05/2009, 13h33
  2. Réponses: 10
    Dernier message: 05/02/2009, 13h22
  3. expression pour filtrer une table dans ma dataset
    Par beet2che dans le forum VB.NET
    Réponses: 1
    Dernier message: 07/09/2008, 22h18
  4. [VB 2008 Express] Impression d'une facture
    Par Cyborg289 dans le forum VB.NET
    Réponses: 3
    Dernier message: 19/02/2008, 13h28
  5. Réponses: 4
    Dernier message: 11/08/2006, 13h47

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