Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Excel erreur automation

1 réponse
Avatar
Louise Desbiens
Bonjour à tous,

Voici mon problème.

Dans mon programme VB6 je fait un exportation vers Excel

Voici le code

Sub ExportationExel(LaForm As Form, LaGrille As Object, LeTitre As String,
LeFichier As String)
Dim DocExcel As Object
Dim test As Boolean
Dim NomFichier As String
Dim x As Integer
Dim LaLigne As Integer
Dim LaCol As Integer

On Error GoTo err_ExportationExel
Screen.MousePointer = vbHourglass

LaForm.ProgressBar.Visible = True
LaForm.ProgressBar.Value = 0

NomFichier = Left(LeFichier, 30)

'Personnage MSAgent de Microsoft
If boolPersonnage Then
AfficherPersonnage LaForm, "rechercher", , 110, 258
End If

'on dit que l'objet est de type feuille excel et ouvre Excel
Set DocExcel = CreateObject("Excel.Application")

With DocExcel
'mettre à True pour l'afficher à l'écran , mettre à False pour pas
qu'Excel reste invisible
****************************************************************************
**********
ERREUR ERREUR ERREUR ERREUR ERREUR ERREUR ERREUR ERREUR
L'erreur arrive sur la ligne suivante et les autres même si je passe cette
ligne
Erreur automation
Quand je suis sur Windows XP pas problème
mais en windows 98 la sa me donne une erreur (Erreur automation)


Microsoft Excel 2000 d'installer

Avez vous une solution

Yves
****************************************************************************
***********

.Visible = False
'supprime l'affichage des messages d'erreurs ou de confirmation de
suppression, ...
.DisplayAlerts = False
'ajoute un nouveau classeur
.Workbooks.Add
'selectionne la feuille du classeur
.Sheets("Feuil2").Select
'on supprime cette feuille
.ActiveWindow.SelectedSheets.Delete
'on fait pareil avec la feuille 3
.Sheets("Feuil3").Select
.ActiveWindow.SelectedSheets.Delete
'on selectionne la feuille 1 (la seule qui reste)
.Sheets("Feuil1").Select
'on change le nom de celle ci
.Sheets("Feuil1").Name = NomFichier

'on change la largeur de la colonne
.Columns("A:N").ColumnWidth = 30

'on met la date et l'heure
'.Range("A1").Select

'une fusion de cellule
.Range("A1:L1").Select
test = ParametreExcel(DocExcel, "MS Sérif", TAILLEPOLICE14, False,
False, 0, True)
.ActiveCell.FormulaR1C1 = LeTitre '"Rapport d'analyse et statistique
du rapport journalier"


'*****************************************
'*** Entete des colonnes
'*****************************************
For x = 0 To LaGrille.Cols - 1
.Range(Chr(65 + x) & "3").Select

test = ParametreExcel(DocExcel, "MS Sérif", TAILLEPOLICE10,
True, False, 0, True)
' If X <> 13 Then
If LaGrille.ColWidth(x) <> 0 Then
.ActiveCell.FormulaR1C1 = LaGrille.TextMatrix(0, x)
End If
' End If
Next

'*****************************************
'*** Les cellules
'*****************************************
LaForm.ProgressBar.Max = LaGrille.Rows - 1
For LaLigne = 1 To LaGrille.Rows - 1
For LaCol = 1 To LaGrille.Cols
.Range(Chr(64 + LaCol) & Trim(str(LaLigne + 3))).Select
'Les titre des colonnes
' test = ParametreExcel(DocExcel, "MS Sérif", TAILLEPOLICE10,
False, False, 0, True)
'.Selection.NumberFormat = "@"
If LaGrille.ColWidth(LaCol - 1) <> 0 Then
.ActiveCell.NumberFormat = "@"
.ActiveCell.FormulaR1C1 =
IIf(Len(LaGrille.TextMatrix(LaLigne, LaCol - 1)) = 0, " ",
LaGrille.TextMatrix(LaLigne, LaCol - 1))
End If
Next LaCol
LaForm.ProgressBar.Value = LaLigne
Next LaLigne


'*****************************************
'*** Colonne a supprimer
'*****************************************
'.Columns("N:N").Select
' .Selection.Delete Shift:=False 'xlToLeft

'on sauvegarde la feuille sous le nom contenu dans NomFichier
'.ActiveWorkbook.SaveAs FileName:=NomFichier, _
' FileFormat:=17, password:="", WriteResPassword:="", _
' ReadOnlyRecommended:=False, CreateBackup:=False

'Pointe sur la premiere cellule
.Range("A1").Select

.Visible = True
Call MsgBox("Cliquez sur OK pour libérer Excel de la mémoire une
fois que vous avez pris connaisance des informations dans Excel",
vbExclamation, App.Title)

'on quitte excel
.Application.Quit
End With
Set DocExcel = Nothing

Exit_ExportationExel:
LaForm.ProgressBar.Visible = False

If boolPersonnage Then
AfficherPersonnage LaForm, "Arreter"
End If
Screen.MousePointer = vbDefault
Exit Sub

err_ExportationExel:
If Err = 429 Then
Call MsgBox("Excel n'est pas installé", vbExclamation, App.Title)
Resume Exit_ExportationExel
End If

strTemp = "ExportationExel: " & "Module FonctionCourante"
intRep = Message_Erreur(Err, Error$, strTemp)
Resume Exit_ExportationExel
Resume
End Sub

1 réponse

Avatar
Elicend_News
Salut

j'ai eu le meme pb, et je crois que c'est uen variable que je n'avais pas
définie. Il y avait aussi un composant dans mon prog VB qui incluait une
page excel directement sur un userform, et ca n'a jamais voulu tourner
ailleur que sur mon pc ou j'ai developpé le truc (XP)

elicend


"Louise Desbiens" a écrit dans le message de
news:ceYIc.12798$
Bonjour à tous,

Voici mon problème.

Dans mon programme VB6 je fait un exportation vers Excel

Voici le code

Sub ExportationExel(LaForm As Form, LaGrille As Object, LeTitre As


String,
LeFichier As String)
Dim DocExcel As Object
Dim test As Boolean
Dim NomFichier As String
Dim x As Integer
Dim LaLigne As Integer
Dim LaCol As Integer

On Error GoTo err_ExportationExel
Screen.MousePointer = vbHourglass

LaForm.ProgressBar.Visible = True
LaForm.ProgressBar.Value = 0

NomFichier = Left(LeFichier, 30)

'Personnage MSAgent de Microsoft
If boolPersonnage Then
AfficherPersonnage LaForm, "rechercher", , 110, 258
End If

'on dit que l'objet est de type feuille excel et ouvre Excel
Set DocExcel = CreateObject("Excel.Application")

With DocExcel
'mettre à True pour l'afficher à l'écran , mettre à False pour pas
qu'Excel reste invisible



****************************************************************************
**********
ERREUR ERREUR ERREUR ERREUR ERREUR ERREUR ERREUR ERREUR
L'erreur arrive sur la ligne suivante et les autres même si je passe cette
ligne
Erreur automation
Quand je suis sur Windows XP pas problème
mais en windows 98 la sa me donne une erreur (Erreur automation)


Microsoft Excel 2000 d'installer

Avez vous une solution

Yves



****************************************************************************
***********

.Visible = False
'supprime l'affichage des messages d'erreurs ou de confirmation de
suppression, ...
.DisplayAlerts = False
'ajoute un nouveau classeur
.Workbooks.Add
'selectionne la feuille du classeur
.Sheets("Feuil2").Select
'on supprime cette feuille
.ActiveWindow.SelectedSheets.Delete
'on fait pareil avec la feuille 3
.Sheets("Feuil3").Select
.ActiveWindow.SelectedSheets.Delete
'on selectionne la feuille 1 (la seule qui reste)
.Sheets("Feuil1").Select
'on change le nom de celle ci
.Sheets("Feuil1").Name = NomFichier

'on change la largeur de la colonne
.Columns("A:N").ColumnWidth = 30

'on met la date et l'heure
'.Range("A1").Select

'une fusion de cellule
.Range("A1:L1").Select
test = ParametreExcel(DocExcel, "MS Sérif", TAILLEPOLICE14, False,
False, 0, True)
.ActiveCell.FormulaR1C1 = LeTitre '"Rapport d'analyse et


statistique
du rapport journalier"


'*****************************************
'*** Entete des colonnes
'*****************************************
For x = 0 To LaGrille.Cols - 1
.Range(Chr(65 + x) & "3").Select

test = ParametreExcel(DocExcel, "MS Sérif", TAILLEPOLICE10,
True, False, 0, True)
' If X <> 13 Then
If LaGrille.ColWidth(x) <> 0 Then
.ActiveCell.FormulaR1C1 = LaGrille.TextMatrix(0, x)
End If
' End If
Next

'*****************************************
'*** Les cellules
'*****************************************
LaForm.ProgressBar.Max = LaGrille.Rows - 1
For LaLigne = 1 To LaGrille.Rows - 1
For LaCol = 1 To LaGrille.Cols
.Range(Chr(64 + LaCol) & Trim(str(LaLigne + 3))).Select
'Les titre des colonnes
' test = ParametreExcel(DocExcel, "MS Sérif",


TAILLEPOLICE10,
False, False, 0, True)
'.Selection.NumberFormat = "@"
If LaGrille.ColWidth(LaCol - 1) <> 0 Then
.ActiveCell.NumberFormat = "@"
.ActiveCell.FormulaR1C1 > IIf(Len(LaGrille.TextMatrix(LaLigne, LaCol - 1)) = 0, " ",
LaGrille.TextMatrix(LaLigne, LaCol - 1))
End If
Next LaCol
LaForm.ProgressBar.Value = LaLigne
Next LaLigne


'*****************************************
'*** Colonne a supprimer
'*****************************************
'.Columns("N:N").Select
' .Selection.Delete Shift:úlse 'xlToLeft

'on sauvegarde la feuille sous le nom contenu dans NomFichier
'.ActiveWorkbook.SaveAs FileName:=NomFichier, _
' FileFormat:, password:="", WriteResPassword:="", _
' ReadOnlyRecommended:úlse, CreateBackup:úlse

'Pointe sur la premiere cellule
.Range("A1").Select

.Visible = True
Call MsgBox("Cliquez sur OK pour libérer Excel de la mémoire une
fois que vous avez pris connaisance des informations dans Excel",
vbExclamation, App.Title)

'on quitte excel
.Application.Quit
End With
Set DocExcel = Nothing

Exit_ExportationExel:
LaForm.ProgressBar.Visible = False

If boolPersonnage Then
AfficherPersonnage LaForm, "Arreter"
End If
Screen.MousePointer = vbDefault
Exit Sub

err_ExportationExel:
If Err = 429 Then
Call MsgBox("Excel n'est pas installé", vbExclamation, App.Title)
Resume Exit_ExportationExel
End If

strTemp = "ExportationExel: " & "Module FonctionCourante"
intRep = Message_Erreur(Err, Error$, strTemp)
Resume Exit_ExportationExel
Resume
End Sub