speyrard
Messages postés19Date d'inscriptiondimanche 30 décembre 2007StatutMembreDerniè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és19Date d'inscriptiondimanche 30 décembre 2007StatutMembreDerniè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)
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és19Date d'inscriptiondimanche 30 décembre 2007StatutMembreDerniè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és2Date d'inscriptionmardi 21 octobre 2003StatutMembreDernière intervention10 décembre 2010 10 déc. 2010 à 10:16
Excusez-moi j'avais oublié la note : 9.75/10
geodidier
geodidier
Messages postés2Date d'inscriptionmardi 21 octobre 2003StatutMembreDernière intervention10 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és718Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention22 novembre 20163 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és257Date d'inscriptionjeudi 11 septembre 2008StatutMembreDernière intervention22 décembre 20121 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é
22 sept. 2012 à 11:02
Mon séparateur est le ; donc c'est Semicolon:=True, _ et non Comma:=True
17 sept. 2012 à 22:46
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 ?
29 août 2012 à 19:47
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 ;)
10 déc. 2010 à 10:16
geodidier
10 déc. 2010 à 10:14
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.
5 nov. 2010 à 19:33
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 :-)
5 nov. 2010 à 14:52
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é