MAYDAY : Lorsque j'appelle en VB6 la fonction AppelExcel() (code ci dessous)
Excel s'ouvre bien pais le code suivant la ligne "With Excel_Application"
ne fonctionne pas !
Ca doit etre truffé d'erreurs mais je n'arrive pas à les localiser et à
rectifier.....
Si quelqu'un pouvait m'aider .. Merci à tous
Jihème
*********************************************************************************************
Public Function AppelExcel()
' affiche = MsgBox("J'ouvre EXCEL", 0)
Dim Excel_Application As Object
Set Excel_Application = CreateObject("Excel.Application")
Dim Modèle As String
Modèle = "c:\ROCS\EDUCEVAL.xlt"
With Excel_Application
.Visible = True
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
michdenis
Bonsoir jiheme,
Dim Excel_Application As Object '------------------------ Dim Modèle As String
Set Excel_Application = CreateObject("Excel.Application") Modèle = "c:ROCSEDUCEVAL.xlt" With Excel_Application .Visible = True End With '------------------------
A ) Bonne nouvelle : Ton code fonctionne très bien
B ) La problématique provient du fait que tu déclares ta variable objet (Excel_Application) à l'intérieur de la fonction. Ceci signifie que la durée de vie de la variable s'arrête à la fin de la fonction. Naturellement, une variable objet se supprime d'elle-même et ce, même si on n'insère pas une ligne de code pour libérer l'espace mémoire comme ceci : Set Excel_Application = Nothing. à la fin de la function.
En fait, Une instance d'excel s'ouvre effectivement mais disparaît aussitôt à la fin de la procédure puisque l'espace mémoire occupée par l'objet est libéré automatiquement à la fin de ta fonction.
C ) Pour corriger cela, Déclare ta variable dans le haut de ton formulaire au lieu de la déclarer dans ta fonction et cela devrait résoudre ton problème !
D ) Si tu ne veux éviter d'appliquer la solution décrite précédemment, Corrige ceci :
Lorsque tu ouvres ton classeur, tu ne dois pas oublier que tu veux l'ouvrir à partir de l'instance (je suppose) que tu as mis en mémoire, pour ce faire modifier ton code (tu as oublier le point devant le mot .Workbooks.open) de la façon suivante :
Code non testé ... '--------------------------------- Dim Excel_Application As Object Dim Modèle As String Dim Fichieraouvrir as String
Fichieraouvrir = "C:ROCS" + NomFic + ".txt"
' affiche = MsgBox("J'ouvre EXCEL", 0)
Set Excel_Application = CreateObject("Excel.Application") Dim Modèle As String 'Modèle = "c:ROCSEDUCEVAL.xlt"
With Excel_Application .Visible = True .Workbooks.OpenText FileName:=Fichieraouvrir, Origin:=xlWindows, _ StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _ ConsecutiveDelimiter:úlse, Tab:=True, Semicolon:úlse, Comma:úlse, _ Space:úlse, Other:úlse, FieldInfo:=Array(1, 1) .with activeworbook With .activeworsheet .Range("A1:A24").Select Selection.Copy end with
With .Sheets("EDUCEVAL") .Select ActiveSheet.Paste End with End With Application.CutCopyMode = False
'affiche = MsgBox("Je ferme EXCEL")
End With '---------------------------------
Salutations!
"jiheme" a écrit dans le message de news: Bonjour à tous
MAYDAY : Lorsque j'appelle en VB6 la fonction AppelExcel() (code ci dessous) Excel s'ouvre bien pais le code suivant la ligne "With Excel_Application" ne fonctionne pas !
Ca doit etre truffé d'erreurs mais je n'arrive pas à les localiser et à rectifier.....
Si quelqu'un pouvait m'aider .. Merci à tous
Jihème
********************************************************************************************* Public Function AppelExcel() ' affiche = MsgBox("J'ouvre EXCEL", 0) Dim Excel_Application As Object Set Excel_Application = CreateObject("Excel.Application") Dim Modèle As String Modèle = "c:ROCSEDUCEVAL.xlt" With Excel_Application .Visible = True
Dim Excel_Application As Object
'------------------------
Dim Modèle As String
Set Excel_Application = CreateObject("Excel.Application")
Modèle = "c:ROCSEDUCEVAL.xlt"
With Excel_Application
.Visible = True
End With
'------------------------
A ) Bonne nouvelle : Ton code fonctionne très bien
B ) La problématique provient du fait que tu déclares ta variable objet (Excel_Application) à l'intérieur de la
fonction. Ceci signifie que la durée de vie de la variable s'arrête à la fin de la fonction. Naturellement, une variable
objet se supprime d'elle-même et ce, même si on n'insère pas une ligne de code pour libérer l'espace mémoire comme ceci
: Set Excel_Application = Nothing. à la fin de la function.
En fait, Une instance d'excel s'ouvre effectivement mais disparaît aussitôt à la fin de la procédure puisque l'espace
mémoire occupée par l'objet est libéré automatiquement à la fin de ta fonction.
C ) Pour corriger cela, Déclare ta variable dans le haut de ton formulaire au lieu de la déclarer dans ta fonction et
cela devrait résoudre ton problème !
D ) Si tu ne veux éviter d'appliquer la solution décrite précédemment, Corrige ceci :
Lorsque tu ouvres ton classeur, tu ne dois pas oublier que tu veux l'ouvrir à partir de l'instance (je suppose) que
tu as mis en mémoire, pour ce faire modifier ton code (tu as oublier le point devant le mot .Workbooks.open) de la façon
suivante :
Code non testé ...
'---------------------------------
Dim Excel_Application As Object
Dim Modèle As String
Dim Fichieraouvrir as String
Fichieraouvrir = "C:ROCS" + NomFic + ".txt"
' affiche = MsgBox("J'ouvre EXCEL", 0)
Set Excel_Application = CreateObject("Excel.Application")
Dim Modèle As String
'Modèle = "c:ROCSEDUCEVAL.xlt"
With Excel_Application
.Visible = True
.Workbooks.OpenText FileName:=Fichieraouvrir, Origin:=xlWindows, _
StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:úlse, Tab:=True, Semicolon:úlse, Comma:úlse, _
Space:úlse, Other:úlse, FieldInfo:=Array(1, 1)
.with activeworbook
With .activeworsheet
.Range("A1:A24").Select
Selection.Copy
end with
With .Sheets("EDUCEVAL")
.Select
ActiveSheet.Paste
End with
End With
Application.CutCopyMode = False
'affiche = MsgBox("Je ferme EXCEL")
End With
'---------------------------------
Salutations!
"jiheme" <jmb81@infonie.fr> a écrit dans le message de news:uJpVhk0nEHA.3072@TK2MSFTNGP09.phx.gbl...
Bonjour à tous
MAYDAY : Lorsque j'appelle en VB6 la fonction AppelExcel() (code ci dessous)
Excel s'ouvre bien pais le code suivant la ligne "With Excel_Application"
ne fonctionne pas !
Ca doit etre truffé d'erreurs mais je n'arrive pas à les localiser et à
rectifier.....
Si quelqu'un pouvait m'aider .. Merci à tous
Jihème
*********************************************************************************************
Public Function AppelExcel()
' affiche = MsgBox("J'ouvre EXCEL", 0)
Dim Excel_Application As Object
Set Excel_Application = CreateObject("Excel.Application")
Dim Modèle As String
Modèle = "c:ROCSEDUCEVAL.xlt"
With Excel_Application
.Visible = True
Dim Excel_Application As Object '------------------------ Dim Modèle As String
Set Excel_Application = CreateObject("Excel.Application") Modèle = "c:ROCSEDUCEVAL.xlt" With Excel_Application .Visible = True End With '------------------------
A ) Bonne nouvelle : Ton code fonctionne très bien
B ) La problématique provient du fait que tu déclares ta variable objet (Excel_Application) à l'intérieur de la fonction. Ceci signifie que la durée de vie de la variable s'arrête à la fin de la fonction. Naturellement, une variable objet se supprime d'elle-même et ce, même si on n'insère pas une ligne de code pour libérer l'espace mémoire comme ceci : Set Excel_Application = Nothing. à la fin de la function.
En fait, Une instance d'excel s'ouvre effectivement mais disparaît aussitôt à la fin de la procédure puisque l'espace mémoire occupée par l'objet est libéré automatiquement à la fin de ta fonction.
C ) Pour corriger cela, Déclare ta variable dans le haut de ton formulaire au lieu de la déclarer dans ta fonction et cela devrait résoudre ton problème !
D ) Si tu ne veux éviter d'appliquer la solution décrite précédemment, Corrige ceci :
Lorsque tu ouvres ton classeur, tu ne dois pas oublier que tu veux l'ouvrir à partir de l'instance (je suppose) que tu as mis en mémoire, pour ce faire modifier ton code (tu as oublier le point devant le mot .Workbooks.open) de la façon suivante :
Code non testé ... '--------------------------------- Dim Excel_Application As Object Dim Modèle As String Dim Fichieraouvrir as String
Fichieraouvrir = "C:ROCS" + NomFic + ".txt"
' affiche = MsgBox("J'ouvre EXCEL", 0)
Set Excel_Application = CreateObject("Excel.Application") Dim Modèle As String 'Modèle = "c:ROCSEDUCEVAL.xlt"
With Excel_Application .Visible = True .Workbooks.OpenText FileName:=Fichieraouvrir, Origin:=xlWindows, _ StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _ ConsecutiveDelimiter:úlse, Tab:=True, Semicolon:úlse, Comma:úlse, _ Space:úlse, Other:úlse, FieldInfo:=Array(1, 1) .with activeworbook With .activeworsheet .Range("A1:A24").Select Selection.Copy end with
With .Sheets("EDUCEVAL") .Select ActiveSheet.Paste End with End With Application.CutCopyMode = False
'affiche = MsgBox("Je ferme EXCEL")
End With '---------------------------------
Salutations!
"jiheme" a écrit dans le message de news: Bonjour à tous
MAYDAY : Lorsque j'appelle en VB6 la fonction AppelExcel() (code ci dessous) Excel s'ouvre bien pais le code suivant la ligne "With Excel_Application" ne fonctionne pas !
Ca doit etre truffé d'erreurs mais je n'arrive pas à les localiser et à rectifier.....
Si quelqu'un pouvait m'aider .. Merci à tous
Jihème
********************************************************************************************* Public Function AppelExcel() ' affiche = MsgBox("J'ouvre EXCEL", 0) Dim Excel_Application As Object Set Excel_Application = CreateObject("Excel.Application") Dim Modèle As String Modèle = "c:ROCSEDUCEVAL.xlt" With Excel_Application .Visible = True
With Excel_Application affiche = MsgBox("J'ouvre EXCEL", 0) .Visible = True
ChDir "C:ROCS" .Workbooks.OpenText FileName:="C:ROCSEDUCEVAL.txt", Origin:=xlWindows, _ StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _ ConsecutiveDelimiter:úlse, Tab:=True, Semicolon:úlse, Comma:úlse _ , Space:úlse, Other:úlse, FieldInfo:=Array(1, 1) .Range("A1:A24").Select .Selection.Copy Stop .Workbooks.Open FileName:="C:ROCSEDUCEVAL.xlt", Editable:=True .With activeworbook With .Sheets("EDUCEVAL") .Select ActiveSheet.Paste End With End With End Function ************************************************************************************
"michdenis" a écrit dans le message de news:
Bonsoir jiheme,
Dim Excel_Application As Object '------------------------ Dim Modèle As String
Set Excel_Application = CreateObject("Excel.Application") Modèle = "c:ROCSEDUCEVAL.xlt" With Excel_Application .Visible = True End With '------------------------
A ) Bonne nouvelle : Ton code fonctionne très bien
B ) La problématique provient du fait que tu déclares ta variable objet (Excel_Application) à l'intérieur de la fonction. Ceci signifie que la durée de vie de la variable s'arrête à la fin de la fonction. Naturellement, une variable objet se supprime d'elle-même et ce, même si on n'insère pas une ligne de code pour libérer l'espace mémoire comme ceci : Set Excel_Application = Nothing. à la fin de la function.
En fait, Une instance d'excel s'ouvre effectivement mais disparaît aussitôt à la fin de la procédure puisque l'espace mémoire occupée par l'objet est libéré automatiquement à la fin de ta fonction.
C ) Pour corriger cela, Déclare ta variable dans le haut de ton formulaire au lieu de la déclarer dans ta fonction et cela devrait résoudre ton problème !
D ) Si tu ne veux éviter d'appliquer la solution décrite précédemment, Corrige ceci :
Lorsque tu ouvres ton classeur, tu ne dois pas oublier que tu veux l'ouvrir à partir de l'instance (je suppose) que tu as mis en mémoire, pour ce faire modifier ton code (tu as oublier le point devant le mot .Workbooks.open) de la façon suivante :
Code non testé ... '--------------------------------- Dim Excel_Application As Object Dim Modèle As String Dim Fichieraouvrir as String
Fichieraouvrir = "C:ROCS" + NomFic + ".txt"
' affiche = MsgBox("J'ouvre EXCEL", 0)
Set Excel_Application = CreateObject("Excel.Application") Dim Modèle As String 'Modèle = "c:ROCSEDUCEVAL.xlt"
With Excel_Application .Visible = True .Workbooks.OpenText FileName:=Fichieraouvrir, Origin:=xlWindows, _ StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _ ConsecutiveDelimiter:úlse, Tab:=True, Semicolon:úlse, Comma:úlse, _ Space:úlse, Other:úlse, FieldInfo:=Array(1, 1) .with activeworbook With .activeworsheet .Range("A1:A24").Select Selection.Copy end with
With .Sheets("EDUCEVAL") .Select ActiveSheet.Paste End with End With Application.CutCopyMode = False
'affiche = MsgBox("Je ferme EXCEL")
End With '---------------------------------
Salutations!
"jiheme" a écrit dans le message de news: Bonjour à tous
MAYDAY : Lorsque j'appelle en VB6 la fonction AppelExcel() (code ci dessous) Excel s'ouvre bien pais le code suivant la ligne "With Excel_Application" ne fonctionne pas !
Ca doit etre truffé d'erreurs mais je n'arrive pas à les localiser et à rectifier.....
Si quelqu'un pouvait m'aider .. Merci à tous
Jihème
********************************************************************************************* Public Function AppelExcel() ' affiche = MsgBox("J'ouvre EXCEL", 0) Dim Excel_Application As Object Set Excel_Application = CreateObject("Excel.Application") Dim Modèle As String Modèle = "c:ROCSEDUCEVAL.xlt" With Excel_Application .Visible = True
With Excel_Application
affiche = MsgBox("J'ouvre EXCEL", 0)
.Visible = True
ChDir "C:ROCS"
.Workbooks.OpenText FileName:="C:ROCSEDUCEVAL.txt", Origin:=xlWindows,
_
StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:úlse, Tab:=True, Semicolon:úlse,
Comma:úlse _
, Space:úlse, Other:úlse, FieldInfo:=Array(1, 1)
.Range("A1:A24").Select
.Selection.Copy
Stop
.Workbooks.Open FileName:="C:ROCSEDUCEVAL.xlt", Editable:=True
.With activeworbook
With .Sheets("EDUCEVAL")
.Select
ActiveSheet.Paste
End With
End With
End Function
************************************************************************************
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
uLAj5L3nEHA.3520@TK2MSFTNGP15.phx.gbl...
Bonsoir jiheme,
Dim Excel_Application As Object
'------------------------
Dim Modèle As String
Set Excel_Application = CreateObject("Excel.Application")
Modèle = "c:ROCSEDUCEVAL.xlt"
With Excel_Application
.Visible = True
End With
'------------------------
A ) Bonne nouvelle : Ton code fonctionne très bien
B ) La problématique provient du fait que tu déclares ta variable objet
(Excel_Application) à l'intérieur de la
fonction. Ceci signifie que la durée de vie de la variable s'arrête à la
fin de la fonction. Naturellement, une variable
objet se supprime d'elle-même et ce, même si on n'insère pas une ligne de
code pour libérer l'espace mémoire comme ceci
: Set Excel_Application = Nothing. à la fin de la function.
En fait, Une instance d'excel s'ouvre effectivement mais disparaît
aussitôt à la fin de la procédure puisque l'espace
mémoire occupée par l'objet est libéré automatiquement à la fin de ta
fonction.
C ) Pour corriger cela, Déclare ta variable dans le haut de ton formulaire
au lieu de la déclarer dans ta fonction et
cela devrait résoudre ton problème !
D ) Si tu ne veux éviter d'appliquer la solution décrite précédemment,
Corrige ceci :
Lorsque tu ouvres ton classeur, tu ne dois pas oublier que tu veux
l'ouvrir à partir de l'instance (je suppose) que
tu as mis en mémoire, pour ce faire modifier ton code (tu as oublier le
point devant le mot .Workbooks.open) de la façon
suivante :
Code non testé ...
'---------------------------------
Dim Excel_Application As Object
Dim Modèle As String
Dim Fichieraouvrir as String
Fichieraouvrir = "C:ROCS" + NomFic + ".txt"
' affiche = MsgBox("J'ouvre EXCEL", 0)
Set Excel_Application = CreateObject("Excel.Application")
Dim Modèle As String
'Modèle = "c:ROCSEDUCEVAL.xlt"
With Excel_Application
.Visible = True
.Workbooks.OpenText FileName:=Fichieraouvrir, Origin:=xlWindows, _
StartRow:=1, DataType:=xlDelimited,
TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:úlse, Tab:=True,
Semicolon:úlse, Comma:úlse, _
Space:úlse, Other:úlse, FieldInfo:=Array(1, 1)
.with activeworbook
With .activeworsheet
.Range("A1:A24").Select
Selection.Copy
end with
With .Sheets("EDUCEVAL")
.Select
ActiveSheet.Paste
End with
End With
Application.CutCopyMode = False
'affiche = MsgBox("Je ferme EXCEL")
End With
'---------------------------------
Salutations!
"jiheme" <jmb81@infonie.fr> a écrit dans le message de
news:uJpVhk0nEHA.3072@TK2MSFTNGP09.phx.gbl...
Bonjour à tous
MAYDAY : Lorsque j'appelle en VB6 la fonction AppelExcel() (code ci
dessous)
Excel s'ouvre bien pais le code suivant la ligne "With
Excel_Application"
ne fonctionne pas !
Ca doit etre truffé d'erreurs mais je n'arrive pas à les localiser et à
rectifier.....
Si quelqu'un pouvait m'aider .. Merci à tous
Jihème
*********************************************************************************************
Public Function AppelExcel()
' affiche = MsgBox("J'ouvre EXCEL", 0)
Dim Excel_Application As Object
Set Excel_Application = CreateObject("Excel.Application")
Dim Modèle As String
Modèle = "c:ROCSEDUCEVAL.xlt"
With Excel_Application
.Visible = True
With Excel_Application affiche = MsgBox("J'ouvre EXCEL", 0) .Visible = True
ChDir "C:ROCS" .Workbooks.OpenText FileName:="C:ROCSEDUCEVAL.txt", Origin:=xlWindows, _ StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _ ConsecutiveDelimiter:úlse, Tab:=True, Semicolon:úlse, Comma:úlse _ , Space:úlse, Other:úlse, FieldInfo:=Array(1, 1) .Range("A1:A24").Select .Selection.Copy Stop .Workbooks.Open FileName:="C:ROCSEDUCEVAL.xlt", Editable:=True .With activeworbook With .Sheets("EDUCEVAL") .Select ActiveSheet.Paste End With End With End Function ************************************************************************************
"michdenis" a écrit dans le message de news:
Bonsoir jiheme,
Dim Excel_Application As Object '------------------------ Dim Modèle As String
Set Excel_Application = CreateObject("Excel.Application") Modèle = "c:ROCSEDUCEVAL.xlt" With Excel_Application .Visible = True End With '------------------------
A ) Bonne nouvelle : Ton code fonctionne très bien
B ) La problématique provient du fait que tu déclares ta variable objet (Excel_Application) à l'intérieur de la fonction. Ceci signifie que la durée de vie de la variable s'arrête à la fin de la fonction. Naturellement, une variable objet se supprime d'elle-même et ce, même si on n'insère pas une ligne de code pour libérer l'espace mémoire comme ceci : Set Excel_Application = Nothing. à la fin de la function.
En fait, Une instance d'excel s'ouvre effectivement mais disparaît aussitôt à la fin de la procédure puisque l'espace mémoire occupée par l'objet est libéré automatiquement à la fin de ta fonction.
C ) Pour corriger cela, Déclare ta variable dans le haut de ton formulaire au lieu de la déclarer dans ta fonction et cela devrait résoudre ton problème !
D ) Si tu ne veux éviter d'appliquer la solution décrite précédemment, Corrige ceci :
Lorsque tu ouvres ton classeur, tu ne dois pas oublier que tu veux l'ouvrir à partir de l'instance (je suppose) que tu as mis en mémoire, pour ce faire modifier ton code (tu as oublier le point devant le mot .Workbooks.open) de la façon suivante :
Code non testé ... '--------------------------------- Dim Excel_Application As Object Dim Modèle As String Dim Fichieraouvrir as String
Fichieraouvrir = "C:ROCS" + NomFic + ".txt"
' affiche = MsgBox("J'ouvre EXCEL", 0)
Set Excel_Application = CreateObject("Excel.Application") Dim Modèle As String 'Modèle = "c:ROCSEDUCEVAL.xlt"
With Excel_Application .Visible = True .Workbooks.OpenText FileName:=Fichieraouvrir, Origin:=xlWindows, _ StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _ ConsecutiveDelimiter:úlse, Tab:=True, Semicolon:úlse, Comma:úlse, _ Space:úlse, Other:úlse, FieldInfo:=Array(1, 1) .with activeworbook With .activeworsheet .Range("A1:A24").Select Selection.Copy end with
With .Sheets("EDUCEVAL") .Select ActiveSheet.Paste End with End With Application.CutCopyMode = False
'affiche = MsgBox("Je ferme EXCEL")
End With '---------------------------------
Salutations!
"jiheme" a écrit dans le message de news: Bonjour à tous
MAYDAY : Lorsque j'appelle en VB6 la fonction AppelExcel() (code ci dessous) Excel s'ouvre bien pais le code suivant la ligne "With Excel_Application" ne fonctionne pas !
Ca doit etre truffé d'erreurs mais je n'arrive pas à les localiser et à rectifier.....
Si quelqu'un pouvait m'aider .. Merci à tous
Jihème
********************************************************************************************* Public Function AppelExcel() ' affiche = MsgBox("J'ouvre EXCEL", 0) Dim Excel_Application As Object Set Excel_Application = CreateObject("Excel.Application") Dim Modèle As String Modèle = "c:ROCSEDUCEVAL.xlt" With Excel_Application .Visible = True