CLASSE POUR PILOTER EXCEL SIMPLEMENT

cs_bidouille007 Messages postés 257 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 22 décembre 2012 - 5 nov. 2010 à 14:52
speyrard Messages postés 19 Date d'inscription dimanche 30 décembre 2007 Statut Membre Dernière intervention 3 mars 2012 - 22 sept. 2012 à 11:02
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/52448-classe-pour-piloter-excel-simplement

speyrard Messages postés 19 Date d'inscription dimanche 30 décembre 2007 Statut Membre Dernière intervention 3 mars 2012
22 sept. 2012 à 11:02
En fait, l'erreur était toute bête : bon j'ai cherché un moment qd même :(

Mon séparateur est le ; donc c'est Semicolon:=True, _ et non Comma:=True
speyrard Messages postés 19 Date d'inscription dimanche 30 décembre 2007 Statut Membre Dernière intervention 3 mars 2012
17 sept. 2012 à 22:46
J'utilise cette class pour piloter Excel sans souci jusqu'à aujourdhui

J'essaie de rajouter l'ouverture d'un fichier de type csv

Mon code dans la class

''' <summary>
''' Lance une nouvelle instance d'Excel
''' </summary>
''' description des colonnes à importer

''' Nom du fichier Csv à ouvrir

''' Rend Excel visible ou pas à son demarrage

''' <remarks></remarks>
Public Sub OuvreCsvExcel(ByVal columnarray(,) As Integer, ByVal Nom As String, Optional ByVal Visible As Boolean = True)

_Application = New Excel.Application
_Application.DisplayAlerts = False
_Application.Visible = Visible

If (_Application Is Nothing) Then
Throw New Exception("Excel ne peut pas démarrer !")
End If

_WorkBooks = _Application.Workbooks
_Application.Caption = Nom
_WorkBook = _WorkBooks.Add(XlWBATemplate.xlWBATWorksheet)
_PagesDuClasseur = _WorkBook.Sheets
' Par defaut on recupere la première feuille comme page principale
Me._PageEnCours = Me._PagesDuClasseur.Item(1)

_WorkBooks.OpenText(Filename:=Nom, Origin:=437, StartRow:=1, DataType:=Excel.XlTextParsingType.xlDelimited, _
TextQualifier:=Excel.XlTextQualifier.xlTextQualifierNone, ConsecutiveDelimiter:=False, _
Tab:=True, Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo:=columnarray, TrailingMinusNumbers:=True)

If (_PagesDuClasseur Is Nothing) Then
Throw New Exception("Impossible de créer le classeur Excel")
End If

End Sub

Je ne comprends pas : mon code s'execute sans anomalie mais j'ai rien dans le fichier générer alors qu'il n'est pas vide.

Quelqu'un aurait une idée ?
speyrard Messages postés 19 Date d'inscription dimanche 30 décembre 2007 Statut Membre Dernière intervention 3 mars 2012
29 août 2012 à 19:47
Très bon, Franchement !

Depuis mon passage en VB Studio 2010, mon application plantait à cause d'Excel. Je n'arrivais pas à reproduire le pilotage d'Excel qui fonctionnait en 2008 (je ne passais pas par une classe mais j'obtenais la même chose)

2 petites remarques :
- la valeur Excel.xlRgColor n'est pas reconnu, je ne comprends pas pourquoi, tu as peut-être une idée ? (pour l'instant, j'ai enlevé la partie sur les couleurs : j'y reviendrais qd j'aurais un moment)
- quand tu quittes Excel, le process n'est pas terminé (il tourne en fantôme qd tu regarde le gestionnaire des tâches => tu ne peux ouvrir excel)

J'ai rajouté le bout de code suivant :

Sub ForceExcelToQuit()
Dim proc As System.Diagnostics.Process

For Each proc In System.Diagnostics.Process.GetProcessesByName("EXCEL")
If proc.MainWindowTitle.Trim() = "" Then
proc.Kill()
End If
Next
End Sub

Pour l'instant, je ne l'ai pas mis dans la classe

En tout ca merci

P.S. : et je n'ai pas trouvé que c'était du niveau débutant car ca fait un moment que j'en fait et là je callais (je regardais pas au bon endroit mais qd même)

+1 ;)
geodidier Messages postés 2 Date d'inscription mardi 21 octobre 2003 Statut Membre Dernière intervention 10 décembre 2010
10 déc. 2010 à 10:16
Excusez-moi j'avais oublié la note : 9.75/10
geodidier
geodidier Messages postés 2 Date d'inscription mardi 21 octobre 2003 Statut Membre Dernière intervention 10 décembre 2010
10 déc. 2010 à 10:14
De geodidier pour Elguevel.
Merci énormément pour cette classe Excel que je trouve géniale et je vous en félicite.
Je suis retraité, 68 ans et radio amateur (F6GYD)et bien entendu j'ai des listes de carte (QSL) que j'aimerai inclure dans un programme réalisé en VS 2010, mais voilà je ne sais pas importer
un fichier texte avec vôtre classe.
Celà fait 4 mois que j'essaie de programmer.

Merci beaucoup pour le dérangement.
Cordialement.
elguevel Messages postés 718 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 22 novembre 2016 3
5 nov. 2010 à 19:33
Non, comme dit dans le titre cette source pilote Excel, elle ne permet pas de generer des fichiers sans cette application.

Sinon pour integrer automatiquement les assembly Office, il suffit de créer un projet de deploiement, celui-ci integrera automatiquement les dependances necessaires si la machine sur laquelle tu installes ton application ne les possèdes pas déja.

Merci pour ton commentaire :-)
cs_bidouille007 Messages postés 257 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 22 décembre 2012 1
5 nov. 2010 à 14:52
cela semble sympathique, mais cette classe fonctionne t'elle sur un pc sans excel ?

y a t'il la nécessité pour un logiciel qui intégrerait cette classe d'avoir un dll à l'extérieur du programme pour fonctionner ?

sinon le boulot semble bien fait et suffisamment commenté
Rejoignez-nous