Enregistrer le calcul fait avec Visual Basic dans . feuil excel

Résolu/Fermé
kikou93 Messages postés 416 Date d'inscription mardi 4 février 2014 Statut Membre Dernière intervention 24 septembre 2018 - 25 mars 2016 à 21:53
kikou93 Messages postés 416 Date d'inscription mardi 4 février 2014 Statut Membre Dernière intervention 24 septembre 2018 - 31 mars 2016 à 12:20
Bonjour,


Je sollicite votre aide comme toujours pour régler le sujet suivant :

J'utilise Visual Basic pour faire des calculs je voulais savoir si c'est possible par exemple quand je clique sur un bouton le programme que j'ai créé (bien après avoir terminer tout les calcul) il crée un nouvelle feuille Excel et enregistrer résultats dedans.

S'il y a un lien ou un livre qui explique cette méthode s'il vous plaît indiquez-moi son emplacement.

Remarque :
Je ne parle pas du langage VBA qu est présente dans Excel mais d'un logiciel créé avec Visual basic express 2010.

Aidez-moi s'il vous plaît et merci d'avance


A voir également:

4 réponses

cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
31 mars 2016 à 11:10
voici le code. Tu peux supprimer ton FolderBrowserDialog1, je l'ai initialisé par code:

Option Strict On
Imports Microsoft.Office.Interop
Imports Microsoft.Office.Interop.Excel
Public Class Form1
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        'Créer une instance de Excel 
        Dim ApExcel As New Excel.Application
        Dim wbExcel As New Excel.Worksheet
        Dim nom As String 'nom classeur
        Dim chemin As String = "C:\" 'chemin classeur
        nom = "Calcul" 'nom classeur
        'Créer un nouveau classeur 
        ApExcel.Workbooks.Add()
        'Ouvrir un classeur 
        'ApExcel.Workbooks.Open("chemin classeur.xls") 
        ApExcel.Application.DisplayAlerts = False 'supprime les messages d'alerte
        'rendre le classeur visible 
        ApExcel.Visible = False
        ApExcel.Range("A1").Formula = "1200" 'Ajouter du texte à une cellule 
        ApExcel.Range("A2").Formula = "1300" 'Ajouter du texte à une cellule 
        ApExcel.Range("A3").Formula = "1400" 'Ajouter du texte à une cellule 
        Dim FBD As New FolderBrowserDialog
        ' On affiche le formulaire et on teste si l'utilisateur a bien sélectionné un dossier.
        ' L'utilisateur aura donc cliqué sur le bouton OK.
        With FBD
            If .ShowDialog() = System.Windows.Forms.DialogResult.OK Then
                ' Récupère le chemin complet du dossier sélectionné par l'utilisateur
                Dim dossier_selectionner As String = .SelectedPath
                ' Affiche le chemin complet du dossier sélectionné par l'utilisateur dans la variable chemin, il faudra ajouter \ avant le nom du classeur
                chemin = dossier_selectionner 'chemin dossier
            Else
                ' Si l'utilisateur n'a pas sélectionné de dossier, on lui affiche un avertissement
                MsgBox("Aucun dossier n'a été sélectionné", MsgBoxStyle.Exclamation, "Aucun dossier sélectionné")
            End If
        End With
        ApExcel.ActiveWorkbook.SaveAs(Filename:=chemin & "\" & nom)
        MsgBox("Classeur enregistré dans le dossier" & Environment.NewLine & chemin, MsgBoxStyle.Information, "Enregistrement")
        ApExcel.Workbooks.Close() 'on ferme le classeur 
        ApExcel.Application.DisplayAlerts = True
        ApExcel.Visible = False
        ApExcel.Quit() 'on ferme Excel 
        ApExcel = Nothing
    End Sub
End Class


Et voilà!
1
kikou93 Messages postés 416 Date d'inscription mardi 4 février 2014 Statut Membre Dernière intervention 24 septembre 2018 1
31 mars 2016 à 12:20
ton code marche beaucoup mieux que le mien, j'ai fait l'erreur suivante :

ApExcel.ActiveWorkbook.SaveAs(dossier_selectionner & "\" & nom & ".xls")
l'erreur est que j'ai ajouter : .xls

c'est pour ça qu'il affiche l'erreur suivante quand j'essaie d'ouvrir la feuille excel :
Le format du fichier que vous tentez d'ouvrir, "Calcul.xls", est différent de celui spécifié par l'extension du fichier. Assurez-vous que le fichiers n'est pas endommagé et qu'il provient d'une source fiable avant d'ouvrir. Souhaitez-vous ouvrir le fichier maintenant ? Oui/Non/Annuler

Visual Basic enregistre la feuille excel déjà sous format xlsx, alors en ajoutant .xls a la fin ça crée un erreur

merci tu m'as beaucoup aidée je te suis vraiment très reconnaissant
0
Bonjour
voici un code en C#
https://codes-sources.commentcamarche.net/source/50624-piloter-excel-via-microsoft-office-interop-excel

tu le passes dans un traducteur C# -> VB.Net (c'est ta version de VB) en ligne et c'est bon.


Sinon il y a de nombreux sujets sur ce thème sur le forum VB.Net
https://codes-sources.commentcamarche.net/forum/s/vb-net-1040/excel

Quand j'étais petit, la mer Morte n'était que malade.
George Burns
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
26 mars 2016 à 07:45
Bonjour,

et pour compléter la réponse de Whismeril que je salue, voici ce snippet en VB.NEt:

https://codes-sources.commentcamarche.net/source/100410-piloter-office-en-vb-net
0
Utilisateur anonyme
26 mars 2016 à 08:09
Ha c'était le tien, je ne savais plus qui en était l'auteur et ne l'ai pas retrouvé!
0
kikou93 Messages postés 416 Date d'inscription mardi 4 février 2014 Statut Membre Dernière intervention 24 septembre 2018 1
26 mars 2016 à 11:02
merci beaucoup à Whismeril et cs_Le Pivert de votre réponse.
le code qui se trouve dans :
https://codes-sources.commentcamarche.net/source/100410-piloter-office-en-vb-net

est très bien expliqué juste en le lisant j'ai compris comment ça fonctionne, mais il y a juste un petit problème ou plutôt un gros problème, j'arrive pas à trouver dans Références --> Ajouter ---> COM :

Microsoft Excel Object 12.0 Library
Microsoft PowerPoint Object 12.0 Library
Microsoft Word 12.0 Object Library

j'ai fais une recherche dans google et j'ai pu savoir comment ajouter Microsoft Excel Object 15.0 Library (C:\Program Files\Microsoft Office\Office15\EXCEL.exe)

c'est Microsoft Excel Object 15.0 Library est pas Microsoft Excel Object 12.0 Library car j’utilise Microsoft 2013.

mais j'arrive pas à trouver pour le chemain pour ajouter :

Microsoft PowerPoint Object 15.0 Library
Microsoft Word 15.0 Object Library

Comment faire?

j'ai une deuxième question c'est un autre utilisateur utilise Microsoft 2003 2007 ou 2010 est-ce qu'il y aura un bug parce qu'il utilise un version antécédente à la mienne (Microsoft 2013)?

J'ai lu ça dans le poste :

https://www.developpez.net/forums/d1421126/logiciels/microsoft-office/excel/macros-vba-excel/microsoft-word-14-0-object-library-manquante/
0
Utilisateur anonyme
26 mars 2016 à 12:37
Pour l'adresse ou trouver la référence avec 2013, je ne sais pas car je ne l'ai pas.

Afin d'éviter les problèmes de compatibilité, j'ai mis dans ma source la dll compatible avec 97 (et oui le code est vieux, et au boulot on n'est jamais à jour, on vient juste de passer à Seven....) et cela fonctionne même avec 2007 à condition que la dll soit dans le répertoire de l'exe.
0
kikou93 Messages postés 416 Date d'inscription mardi 4 février 2014 Statut Membre Dernière intervention 24 septembre 2018 1 > Utilisateur anonyme
26 mars 2016 à 12:48
je ne vois pas un dll dans le code suivant :


'Aller dans My Project- Références et ajouter dans COM:
'Microsoft Excel Object 12.0 Library
'Microsoft PowerPoint Object 12.0 Library
'Microsoft Word 12.0 Object Library
Option Strict On
Imports Microsoft.Office.Interop
Imports Microsoft.Office.Interop.Word
Imports Microsoft.Office.Interop.Excel
Imports Microsoft.Office.Interop.PowerPoint
Public Class Form1
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Button1.Text = "Ouvrir Excel"
Button2.Text = "Ouvrir PowerPoint"
Button3.Text = "Ouvrir Word"
Button1.AutoSize = True
Button2.AutoSize = True
Button3.AutoSize = True
End Sub
'Excel
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
'Créer une instance de Excel
Dim ApExcel As New Excel.Application
Dim wbExcel As New Excel.Worksheet
'Créer un nouveau classeur
ApExcel.Workbooks.Add()
'Ouvrir un classeur
'ApExcel.Workbooks.Open("chemin classeur.xls")
'rendre le classeur visible
ApExcel.Visible = True
ApExcel.Range("A1").Formula = "Bonjour" 'Ajouter du texte à une cellule
ApExcel.Workbooks.Close() 'on ferme le classeur
ApExcel.Visible = False
ApExcel.Quit() 'on ferme Excel
End Sub
'PowerPoint
Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
'Créer une instance de PowerPoint
Dim PptApp As New PowerPoint.Application
Dim PptDoc As PowerPoint.Presentation
'Créer une nouvelle présentation
PptDoc = PptApp.Presentations.Add()
'rendre la présentation visible
PptApp.Visible = Microsoft.Office.Core.MsoTriState.msoCTrue
'Ouvrir une présentation
' PptDoc = PptApp.Presentations.Open("Chemin de la presentation.ppt")
PptDoc.Slides.Add(1, PowerPoint.PpSlideLayout.ppLayoutTitleOnly)
PptDoc.Slides(1).Shapes(1).TextFrame.TextRange.Text = "Bonjour" 'Ajouter du texte
PptDoc.SaveAs(System.Windows.Forms.Application.StartupPath & "\mapresentation.ppt")
PptDoc.Close() 'on ferme la présentation
PptApp.Quit() 'on ferme PowerPoint
End Sub
'Word
Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
'Créer une instance de word
Dim oWord As New Word.Application
'Créer un nouveau document
oWord.Documents.Add()
'Ouvrir un document
'oWord.Documents.Open("chemin document.doc")
'rendre le document word visible
oWord.Visible = True
oWord.Selection.TypeText(Text:="Bonjour") 'Ajouter du texte
oWord.ActiveDocument.Close() 'on ferme le document
oWord.Visible = False
oWord.Quit() 'on ferme Word
End Sub
End Class

peux-tu m'expliquer les étapes en détail pour mettre un dll dans le dossier *.exe
désolée je suis un débutant dans le langage de Visual Basic, je n'ai pas tout compris
0
Sur la page, il y a un aperçu du code, que tu viens de copier coller.
Il y a aussi un projet complet, avec un bouton bleu "Télécharger le projet", tu obtiendras un zip, dans lequel se trouve un projet winform complet avec des exemples et les dll, en fait il en faut au moins deux, mais comme je l'ai écrit plus haut c'est vieux.

Quand tu compiles un projet, Visual Studio écrit un exe dans
Nom du Projet \Nom de la solution\bin\Debug ou Realese
selon le mode de compilation.

Par défaut, le nom du projet est celui de la solution.
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
31 mars 2016 à 08:41
j'ai cherché mais j'ai rien trouvé dans Internet

Pour le choix d'un repertoire:

https://www.informatiweb.net/tutoriels/informatique

supprimer les messages d'alerte d'Excel

https://docs.microsoft.com/fr-fr/office/vba/api/excel.application.displayalerts?redirectedfrom=MSDN

Voilà!
0
kikou93 Messages postés 416 Date d'inscription mardi 4 février 2014 Statut Membre Dernière intervention 24 septembre 2018 1
31 mars 2016 à 10:42
merci de m'avoir répondu aussi rapidement.

Je ne me suis pas bien exprimer, je sais déjà comment utiliser : "FolderBrowserDialog" (même si j'ai appris beaucoup de choses utiles dans : https://www.informatiweb.net/tutoriels/informatique mais le problème est que je ne sais pas où mettre le chemin que j'ai récupéré en utilisant "FolderBrowserDialog".
Si je le mets ici : "ApExcel.ActiveWorkbook.Save()" il m'affiche une erreur.
je dois bien mettre le chemin quelque part parce que "FolderBrowserDialog" récupère que le chemin d'accès il n'enregistré pas la feuille excel.

à propos de
j'ai cherché mais j'ai rien trouvé dans Internet

ce n'est pas que je n'ai rien trouvé le problème pour trouver quelque chose d'utile il faut mettre les bons mots dans Google
0