Bonjour,
Sur les conseils d'une personne participant à ce forum, j'ai utilisé le Late
Binding afin d'éviter d'ajouter une
référence Excel à mon programme et ainsi améliorer la portabilité de
l'application.
J'ai récupéré mon ancien code (utilisant la référence à Excel), j'ai fait
quelques modifications et j'ai testé.
Il apparait qu'une grande majorité des lignes de commandes passent mais
certaines refusent.
Toutes celles avec "Non OP" à la fin ne fonctionne pas (Erreur 438 -
Propriétés ou méthodes non gérées)
Quoi utiliser comme Méthodes ou Propriétés dans ce cas ?
' Déclarations
Dim xlApp As Object
Dim xlBook As Object
Dim xlSheet As Object
Set xlApp = CreateObject("Excel.Application") Set xlBook =
xlApp.Workbooks.Add
Set xlSheet = xlBook.Worksheets("Feuil1")
' Une partie du code ...
With xlApp.Selection.Font
.Name = "Arial"
.Size = 8
End With
xlSheet.Range("A1:I1").Select
With xlApp.Selection
xlSheet.Selection.HorizontalAlignment = xlCenter 'Non OP
xlApp.Selection.VerticalAlignment = xlBottom 'Non OP
xlApp.Selection.WrapText = False
xlApp.Selection.Orientation = 0
xlApp.Selection.AddIndent = False
xlApp.Selection.IndentLevel = 0
xlApp.Selection.ShrinkToFit = False
xlApp.Selection.ReadingOrder = xlContext 'Non OP
xlApp.Selection.MergeCells = False
End With
xlApp.Selection.Borders(xlDiagonalDown).LineStyle = xlNone 'Non OP
xlApp.Selection.Borders(xlDiagonalUp).LineStyle = xlNone 'Non OP
With xlApp.Selection.Borders(xlEdgeLeft) 'Non OP
.LineStyle = xlContinuous 'Non OP
.Weight = xlThin 'Non OP
.ColorIndex = xlAutomatic 'Non OP
End With 'Non OP
D'avance merci.
Bien amicalement
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
jerome crevecoeur
Bonjour, Tu utilises des constante Excel qui sont déclarées quand tu coches la référence à Microsoft Excel.
Tu peux les déclarer en constantes au début de ton module. Pour retrouver la valeur de ces constantes tu peux recocher temporairement la référence Et faire des debug.print
Cordialement
RENAUD Eric wrote:
Bonjour, Sur les conseils d'une personne participant à ce forum, j'ai utilisé le Late Binding afin d'éviter d'ajouter une référence Excel à mon programme et ainsi améliorer la portabili té de l'application. J'ai récupéré mon ancien code (utilisant la référence à Exc el), j'ai fait quelques modifications et j'ai testé.
Il apparait qu'une grande majorité des lignes de commandes passent ma is certaines refusent. Toutes celles avec "Non OP" à la fin ne fonctionne pas (Erreur 438 - Propriétés ou méthodes non gérées) Quoi utiliser comme Méthodes ou Propriétés dans ce cas ?
' Déclarations Dim xlApp As Object Dim xlBook As Object Dim xlSheet As Object Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Add Set xlSheet = xlBook.Worksheets("Feuil1") ' Une partie du code ... With xlApp.Selection.Font .Name = "Arial" .Size = 8 End With xlSheet.Range("A1:I1").Select With xlApp.Selection xlSheet.Selection.HorizontalAlignment = xlCenter 'Non OP xlApp.Selection.VerticalAlignment = xlBottom 'Non OP xlApp.Selection.WrapText = False xlApp.Selection.Orientation = 0 xlApp.Selection.AddIndent = False xlApp.Selection.IndentLevel = 0 xlApp.Selection.ShrinkToFit = False xlApp.Selection.ReadingOrder = xlContext 'Non OP xlApp.Selection.MergeCells = False End With xlApp.Selection.Borders(xlDiagonalDown).LineStyle = xlNone 'N on OP xlApp.Selection.Borders(xlDiagonalUp).LineStyle = xlNone 'No n OP With xlApp.Selection.Borders(xlEdgeLeft) 'Non OP .LineStyle = xlContinuous 'Non OP .Weight = xlThin 'Non OP .ColorIndex = xlAutomatic 'Non OP End With 'Non OP D'avance merci. Bien amicalement
Bonjour,
Tu utilises des constante Excel qui sont déclarées quand tu coches la
référence à Microsoft Excel.
Tu peux les déclarer en constantes au début de ton module.
Pour retrouver la valeur de ces constantes tu peux recocher
temporairement la référence
Et faire des debug.print
Cordialement
RENAUD Eric wrote:
Bonjour,
Sur les conseils d'une personne participant à ce forum, j'ai utilisé le Late
Binding afin d'éviter d'ajouter une
référence Excel à mon programme et ainsi améliorer la portabili té de
l'application.
J'ai récupéré mon ancien code (utilisant la référence à Exc el), j'ai fait
quelques modifications et j'ai testé.
Il apparait qu'une grande majorité des lignes de commandes passent ma is
certaines refusent.
Toutes celles avec "Non OP" à la fin ne fonctionne pas (Erreur 438 -
Propriétés ou méthodes non gérées)
Quoi utiliser comme Méthodes ou Propriétés dans ce cas ?
' Déclarations
Dim xlApp As Object
Dim xlBook As Object
Dim xlSheet As Object
Set xlApp = CreateObject("Excel.Application") Set xlBook =
xlApp.Workbooks.Add
Set xlSheet = xlBook.Worksheets("Feuil1")
' Une partie du code ...
With xlApp.Selection.Font
.Name = "Arial"
.Size = 8
End With
xlSheet.Range("A1:I1").Select
With xlApp.Selection
xlSheet.Selection.HorizontalAlignment = xlCenter 'Non OP
xlApp.Selection.VerticalAlignment = xlBottom 'Non OP
xlApp.Selection.WrapText = False
xlApp.Selection.Orientation = 0
xlApp.Selection.AddIndent = False
xlApp.Selection.IndentLevel = 0
xlApp.Selection.ShrinkToFit = False
xlApp.Selection.ReadingOrder = xlContext 'Non OP
xlApp.Selection.MergeCells = False
End With
xlApp.Selection.Borders(xlDiagonalDown).LineStyle = xlNone 'N on OP
xlApp.Selection.Borders(xlDiagonalUp).LineStyle = xlNone 'No n OP
With xlApp.Selection.Borders(xlEdgeLeft) 'Non OP
.LineStyle = xlContinuous 'Non OP
.Weight = xlThin 'Non OP
.ColorIndex = xlAutomatic 'Non OP
End With 'Non OP
D'avance merci.
Bien amicalement
Bonjour, Tu utilises des constante Excel qui sont déclarées quand tu coches la référence à Microsoft Excel.
Tu peux les déclarer en constantes au début de ton module. Pour retrouver la valeur de ces constantes tu peux recocher temporairement la référence Et faire des debug.print
Cordialement
RENAUD Eric wrote:
Bonjour, Sur les conseils d'une personne participant à ce forum, j'ai utilisé le Late Binding afin d'éviter d'ajouter une référence Excel à mon programme et ainsi améliorer la portabili té de l'application. J'ai récupéré mon ancien code (utilisant la référence à Exc el), j'ai fait quelques modifications et j'ai testé.
Il apparait qu'une grande majorité des lignes de commandes passent ma is certaines refusent. Toutes celles avec "Non OP" à la fin ne fonctionne pas (Erreur 438 - Propriétés ou méthodes non gérées) Quoi utiliser comme Méthodes ou Propriétés dans ce cas ?
' Déclarations Dim xlApp As Object Dim xlBook As Object Dim xlSheet As Object Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Add Set xlSheet = xlBook.Worksheets("Feuil1") ' Une partie du code ... With xlApp.Selection.Font .Name = "Arial" .Size = 8 End With xlSheet.Range("A1:I1").Select With xlApp.Selection xlSheet.Selection.HorizontalAlignment = xlCenter 'Non OP xlApp.Selection.VerticalAlignment = xlBottom 'Non OP xlApp.Selection.WrapText = False xlApp.Selection.Orientation = 0 xlApp.Selection.AddIndent = False xlApp.Selection.IndentLevel = 0 xlApp.Selection.ShrinkToFit = False xlApp.Selection.ReadingOrder = xlContext 'Non OP xlApp.Selection.MergeCells = False End With xlApp.Selection.Borders(xlDiagonalDown).LineStyle = xlNone 'N on OP xlApp.Selection.Borders(xlDiagonalUp).LineStyle = xlNone 'No n OP With xlApp.Selection.Borders(xlEdgeLeft) 'Non OP .LineStyle = xlContinuous 'Non OP .Weight = xlThin 'Non OP .ColorIndex = xlAutomatic 'Non OP End With 'Non OP D'avance merci. Bien amicalement
Guy DETIENNE
Salut ;O)
En effet, dans mon précédent post j'ai oublié de dire que toutes les constantes habituellement utilisées lorsque l'objet Excel est référencé ne sont plus reconnues en late binding. Il faut donc les remplacer par le valeur nominale.
Guy
"RENAUD Eric" a écrit dans le message de news:%
Bonjour, Sur les conseils d'une personne participant à ce forum, j'ai utilisé le
Late
Binding afin d'éviter d'ajouter une référence Excel à mon programme et ainsi améliorer la portabilité de l'application. J'ai récupéré mon ancien code (utilisant la référence à Excel), j'ai fait quelques modifications et j'ai testé.
Il apparait qu'une grande majorité des lignes de commandes passent mais certaines refusent. Toutes celles avec "Non OP" à la fin ne fonctionne pas (Erreur 438 - Propriétés ou méthodes non gérées) Quoi utiliser comme Méthodes ou Propriétés dans ce cas ?
' Déclarations Dim xlApp As Object Dim xlBook As Object Dim xlSheet As Object Set xlApp = CreateObject("Excel.Application") Set xlBook > xlApp.Workbooks.Add Set xlSheet = xlBook.Worksheets("Feuil1") ' Une partie du code ... With xlApp.Selection.Font .Name = "Arial" .Size = 8 End With xlSheet.Range("A1:I1").Select With xlApp.Selection xlSheet.Selection.HorizontalAlignment = xlCenter 'Non OP xlApp.Selection.VerticalAlignment = xlBottom 'Non OP xlApp.Selection.WrapText = False xlApp.Selection.Orientation = 0 xlApp.Selection.AddIndent = False xlApp.Selection.IndentLevel = 0 xlApp.Selection.ShrinkToFit = False xlApp.Selection.ReadingOrder = xlContext 'Non OP xlApp.Selection.MergeCells = False End With xlApp.Selection.Borders(xlDiagonalDown).LineStyle = xlNone 'Non OP xlApp.Selection.Borders(xlDiagonalUp).LineStyle = xlNone 'Non OP With xlApp.Selection.Borders(xlEdgeLeft) 'Non OP .LineStyle = xlContinuous 'Non OP .Weight = xlThin 'Non OP .ColorIndex = xlAutomatic 'Non OP End With 'Non OP D'avance merci. Bien amicalement
Salut ;O)
En effet, dans mon précédent post j'ai oublié de dire que toutes les
constantes habituellement utilisées lorsque l'objet Excel est référencé ne
sont plus reconnues en late binding. Il faut donc les remplacer par le
valeur nominale.
Guy
"RENAUD Eric" <erenaud@fr.fm> a écrit dans le message de
news:%23R1JwlhqFHA.3672@TK2MSFTNGP11.phx.gbl...
Bonjour,
Sur les conseils d'une personne participant à ce forum, j'ai utilisé le
Late
Binding afin d'éviter d'ajouter une
référence Excel à mon programme et ainsi améliorer la portabilité de
l'application.
J'ai récupéré mon ancien code (utilisant la référence à Excel), j'ai fait
quelques modifications et j'ai testé.
Il apparait qu'une grande majorité des lignes de commandes passent mais
certaines refusent.
Toutes celles avec "Non OP" à la fin ne fonctionne pas (Erreur 438 -
Propriétés ou méthodes non gérées)
Quoi utiliser comme Méthodes ou Propriétés dans ce cas ?
' Déclarations
Dim xlApp As Object
Dim xlBook As Object
Dim xlSheet As Object
Set xlApp = CreateObject("Excel.Application") Set xlBook > xlApp.Workbooks.Add
Set xlSheet = xlBook.Worksheets("Feuil1")
' Une partie du code ...
With xlApp.Selection.Font
.Name = "Arial"
.Size = 8
End With
xlSheet.Range("A1:I1").Select
With xlApp.Selection
xlSheet.Selection.HorizontalAlignment = xlCenter 'Non OP
xlApp.Selection.VerticalAlignment = xlBottom 'Non OP
xlApp.Selection.WrapText = False
xlApp.Selection.Orientation = 0
xlApp.Selection.AddIndent = False
xlApp.Selection.IndentLevel = 0
xlApp.Selection.ShrinkToFit = False
xlApp.Selection.ReadingOrder = xlContext 'Non OP
xlApp.Selection.MergeCells = False
End With
xlApp.Selection.Borders(xlDiagonalDown).LineStyle = xlNone 'Non OP
xlApp.Selection.Borders(xlDiagonalUp).LineStyle = xlNone 'Non OP
With xlApp.Selection.Borders(xlEdgeLeft) 'Non OP
.LineStyle = xlContinuous 'Non OP
.Weight = xlThin 'Non OP
.ColorIndex = xlAutomatic 'Non OP
End With 'Non OP
D'avance merci.
Bien amicalement
En effet, dans mon précédent post j'ai oublié de dire que toutes les constantes habituellement utilisées lorsque l'objet Excel est référencé ne sont plus reconnues en late binding. Il faut donc les remplacer par le valeur nominale.
Guy
"RENAUD Eric" a écrit dans le message de news:%
Bonjour, Sur les conseils d'une personne participant à ce forum, j'ai utilisé le
Late
Binding afin d'éviter d'ajouter une référence Excel à mon programme et ainsi améliorer la portabilité de l'application. J'ai récupéré mon ancien code (utilisant la référence à Excel), j'ai fait quelques modifications et j'ai testé.
Il apparait qu'une grande majorité des lignes de commandes passent mais certaines refusent. Toutes celles avec "Non OP" à la fin ne fonctionne pas (Erreur 438 - Propriétés ou méthodes non gérées) Quoi utiliser comme Méthodes ou Propriétés dans ce cas ?
' Déclarations Dim xlApp As Object Dim xlBook As Object Dim xlSheet As Object Set xlApp = CreateObject("Excel.Application") Set xlBook > xlApp.Workbooks.Add Set xlSheet = xlBook.Worksheets("Feuil1") ' Une partie du code ... With xlApp.Selection.Font .Name = "Arial" .Size = 8 End With xlSheet.Range("A1:I1").Select With xlApp.Selection xlSheet.Selection.HorizontalAlignment = xlCenter 'Non OP xlApp.Selection.VerticalAlignment = xlBottom 'Non OP xlApp.Selection.WrapText = False xlApp.Selection.Orientation = 0 xlApp.Selection.AddIndent = False xlApp.Selection.IndentLevel = 0 xlApp.Selection.ShrinkToFit = False xlApp.Selection.ReadingOrder = xlContext 'Non OP xlApp.Selection.MergeCells = False End With xlApp.Selection.Borders(xlDiagonalDown).LineStyle = xlNone 'Non OP xlApp.Selection.Borders(xlDiagonalUp).LineStyle = xlNone 'Non OP With xlApp.Selection.Borders(xlEdgeLeft) 'Non OP .LineStyle = xlContinuous 'Non OP .Weight = xlThin 'Non OP .ColorIndex = xlAutomatic 'Non OP End With 'Non OP D'avance merci. Bien amicalement
RENAUD Eric
Je comprends pas bien ce que tu me dis. Aurais tu un petit exemple. Merci "Guy DETIENNE" a écrit dans le message de news:
Salut ;O)
En effet, dans mon précédent post j'ai oublié de dire que toutes les constantes habituellement utilisées lorsque l'objet Excel est référencé ne sont plus reconnues en late binding. Il faut donc les remplacer par le valeur nominale.
Guy
"RENAUD Eric" a écrit dans le message de news:%
Bonjour, Sur les conseils d'une personne participant à ce forum, j'ai utilisé le
Late
Binding afin d'éviter d'ajouter une référence Excel à mon programme et ainsi améliorer la portabilité de l'application. J'ai récupéré mon ancien code (utilisant la référence à Excel), j'ai fait quelques modifications et j'ai testé.
Il apparait qu'une grande majorité des lignes de commandes passent mais certaines refusent. Toutes celles avec "Non OP" à la fin ne fonctionne pas (Erreur 438 - Propriétés ou méthodes non gérées) Quoi utiliser comme Méthodes ou Propriétés dans ce cas ?
' Déclarations Dim xlApp As Object Dim xlBook As Object Dim xlSheet As Object Set xlApp = CreateObject("Excel.Application") Set xlBook >> xlApp.Workbooks.Add Set xlSheet = xlBook.Worksheets("Feuil1") ' Une partie du code ... With xlApp.Selection.Font .Name = "Arial" .Size = 8 End With xlSheet.Range("A1:I1").Select With xlApp.Selection xlSheet.Selection.HorizontalAlignment = xlCenter 'Non OP xlApp.Selection.VerticalAlignment = xlBottom 'Non OP xlApp.Selection.WrapText = False xlApp.Selection.Orientation = 0 xlApp.Selection.AddIndent = False xlApp.Selection.IndentLevel = 0 xlApp.Selection.ShrinkToFit = False xlApp.Selection.ReadingOrder = xlContext 'Non OP xlApp.Selection.MergeCells = False End With xlApp.Selection.Borders(xlDiagonalDown).LineStyle = xlNone 'Non OP xlApp.Selection.Borders(xlDiagonalUp).LineStyle = xlNone 'Non OP With xlApp.Selection.Borders(xlEdgeLeft) 'Non OP .LineStyle = xlContinuous 'Non OP .Weight = xlThin 'Non OP .ColorIndex = xlAutomatic 'Non OP End With 'Non OP D'avance merci. Bien amicalement
Je comprends pas bien ce que tu me dis.
Aurais tu un petit exemple.
Merci
"Guy DETIENNE" <gd@NOSPAM.tchao.be> a écrit dans le message de news:
e6lHm1kqFHA.4012@TK2MSFTNGP12.phx.gbl...
Salut ;O)
En effet, dans mon précédent post j'ai oublié de dire que toutes les
constantes habituellement utilisées lorsque l'objet Excel est référencé ne
sont plus reconnues en late binding. Il faut donc les remplacer par le
valeur nominale.
Guy
"RENAUD Eric" <erenaud@fr.fm> a écrit dans le message de
news:%23R1JwlhqFHA.3672@TK2MSFTNGP11.phx.gbl...
Bonjour,
Sur les conseils d'une personne participant à ce forum, j'ai utilisé le
Late
Binding afin d'éviter d'ajouter une
référence Excel à mon programme et ainsi améliorer la portabilité de
l'application.
J'ai récupéré mon ancien code (utilisant la référence à Excel), j'ai fait
quelques modifications et j'ai testé.
Il apparait qu'une grande majorité des lignes de commandes passent mais
certaines refusent.
Toutes celles avec "Non OP" à la fin ne fonctionne pas (Erreur 438 -
Propriétés ou méthodes non gérées)
Quoi utiliser comme Méthodes ou Propriétés dans ce cas ?
' Déclarations
Dim xlApp As Object
Dim xlBook As Object
Dim xlSheet As Object
Set xlApp = CreateObject("Excel.Application") Set xlBook >> xlApp.Workbooks.Add
Set xlSheet = xlBook.Worksheets("Feuil1")
' Une partie du code ...
With xlApp.Selection.Font
.Name = "Arial"
.Size = 8
End With
xlSheet.Range("A1:I1").Select
With xlApp.Selection
xlSheet.Selection.HorizontalAlignment = xlCenter 'Non OP
xlApp.Selection.VerticalAlignment = xlBottom 'Non OP
xlApp.Selection.WrapText = False
xlApp.Selection.Orientation = 0
xlApp.Selection.AddIndent = False
xlApp.Selection.IndentLevel = 0
xlApp.Selection.ShrinkToFit = False
xlApp.Selection.ReadingOrder = xlContext 'Non OP
xlApp.Selection.MergeCells = False
End With
xlApp.Selection.Borders(xlDiagonalDown).LineStyle = xlNone 'Non
OP
xlApp.Selection.Borders(xlDiagonalUp).LineStyle = xlNone 'Non OP
With xlApp.Selection.Borders(xlEdgeLeft) 'Non OP
.LineStyle = xlContinuous 'Non OP
.Weight = xlThin 'Non OP
.ColorIndex = xlAutomatic 'Non OP
End With 'Non OP
D'avance merci.
Bien amicalement
Je comprends pas bien ce que tu me dis. Aurais tu un petit exemple. Merci "Guy DETIENNE" a écrit dans le message de news:
Salut ;O)
En effet, dans mon précédent post j'ai oublié de dire que toutes les constantes habituellement utilisées lorsque l'objet Excel est référencé ne sont plus reconnues en late binding. Il faut donc les remplacer par le valeur nominale.
Guy
"RENAUD Eric" a écrit dans le message de news:%
Bonjour, Sur les conseils d'une personne participant à ce forum, j'ai utilisé le
Late
Binding afin d'éviter d'ajouter une référence Excel à mon programme et ainsi améliorer la portabilité de l'application. J'ai récupéré mon ancien code (utilisant la référence à Excel), j'ai fait quelques modifications et j'ai testé.
Il apparait qu'une grande majorité des lignes de commandes passent mais certaines refusent. Toutes celles avec "Non OP" à la fin ne fonctionne pas (Erreur 438 - Propriétés ou méthodes non gérées) Quoi utiliser comme Méthodes ou Propriétés dans ce cas ?
' Déclarations Dim xlApp As Object Dim xlBook As Object Dim xlSheet As Object Set xlApp = CreateObject("Excel.Application") Set xlBook >> xlApp.Workbooks.Add Set xlSheet = xlBook.Worksheets("Feuil1") ' Une partie du code ... With xlApp.Selection.Font .Name = "Arial" .Size = 8 End With xlSheet.Range("A1:I1").Select With xlApp.Selection xlSheet.Selection.HorizontalAlignment = xlCenter 'Non OP xlApp.Selection.VerticalAlignment = xlBottom 'Non OP xlApp.Selection.WrapText = False xlApp.Selection.Orientation = 0 xlApp.Selection.AddIndent = False xlApp.Selection.IndentLevel = 0 xlApp.Selection.ShrinkToFit = False xlApp.Selection.ReadingOrder = xlContext 'Non OP xlApp.Selection.MergeCells = False End With xlApp.Selection.Borders(xlDiagonalDown).LineStyle = xlNone 'Non OP xlApp.Selection.Borders(xlDiagonalUp).LineStyle = xlNone 'Non OP With xlApp.Selection.Borders(xlEdgeLeft) 'Non OP .LineStyle = xlContinuous 'Non OP .Weight = xlThin 'Non OP .ColorIndex = xlAutomatic 'Non OP End With 'Non OP D'avance merci. Bien amicalement
Guy DETIENNE
Salut ;O)
En effet, lorsque tu référencies l'objet Excel (early binding) dans VB6, VB6 connaît dès lors toutes les propriétés, méthodes et constantes de l'objet Excel lorsque tu es dans L'IDE (environnement de programmation). Cela amène aussi une plus grande rapidité de l'objet Excel lorsque le programme est compilé. Tout est déjà 'linké' à l'avance.
Au contraire, lorsque tu crées un objet en late binding via CreateObject, VB6 ne connaît pas l'objet Excel dans l'IDE et donc par conséquant il ne connaît pas les constantes puisqu'il ne peut faire la conversion avec une éventuelle bibliothèque. Utiliser le Late binding est plus lent puisque VB devra effectuer tous ses liens avec l'objet lors de l'exécution du CreatObject, la compilation n'ayant pas pris en compte les références à Excel puis non référencé.
Guy
"RENAUD Eric" a écrit dans le message de news:%
Je comprends pas bien ce que tu me dis. Aurais tu un petit exemple. Merci "Guy DETIENNE" a écrit dans le message de news:
> Salut ;O) > > En effet, dans mon précédent post j'ai oublié de dire que toutes les > constantes habituellement utilisées lorsque l'objet Excel est référencé
ne
> sont plus reconnues en late binding. Il faut donc les remplacer par le > valeur nominale. > > Guy > > > "RENAUD Eric" a écrit dans le message de > news:% >> Bonjour, >> Sur les conseils d'une personne participant à ce forum, j'ai utilisé le > Late >> Binding afin d'éviter d'ajouter une >> référence Excel à mon programme et ainsi améliorer la portabilité de >> l'application. >> J'ai récupéré mon ancien code (utilisant la référence à Excel), j'ai
fait
>> quelques modifications et j'ai testé. >> >> Il apparait qu'une grande majorité des lignes de commandes passent mais >> certaines refusent. >> Toutes celles avec "Non OP" à la fin ne fonctionne pas (Erreur 438 - >> Propriétés ou méthodes non gérées) >> Quoi utiliser comme Méthodes ou Propriétés dans ce cas ? >> >> ' Déclarations >> Dim xlApp As Object >> Dim xlBook As Object >> Dim xlSheet As Object >> Set xlApp = CreateObject("Excel.Application") Set xlBook > >> xlApp.Workbooks.Add >> Set xlSheet = xlBook.Worksheets("Feuil1") >> ' Une partie du code ... >> With xlApp.Selection.Font >> .Name = "Arial" >> .Size = 8 >> End With >> xlSheet.Range("A1:I1").Select >> With xlApp.Selection >> xlSheet.Selection.HorizontalAlignment = xlCenter 'Non OP >> xlApp.Selection.VerticalAlignment = xlBottom 'Non OP >> xlApp.Selection.WrapText = False >> xlApp.Selection.Orientation = 0 >> xlApp.Selection.AddIndent = False >> xlApp.Selection.IndentLevel = 0 >> xlApp.Selection.ShrinkToFit = False >> xlApp.Selection.ReadingOrder = xlContext 'Non OP >> xlApp.Selection.MergeCells = False >> End With >> xlApp.Selection.Borders(xlDiagonalDown).LineStyle = xlNone 'Non >> OP >> xlApp.Selection.Borders(xlDiagonalUp).LineStyle = xlNone 'Non
OP
>> With xlApp.Selection.Borders(xlEdgeLeft) 'Non OP >> .LineStyle = xlContinuous 'Non OP >> .Weight = xlThin 'Non OP >> .ColorIndex = xlAutomatic 'Non OP >> End With 'Non OP >> D'avance merci. >> Bien amicalement >> >> > >
Salut ;O)
En effet, lorsque tu référencies l'objet Excel (early binding) dans VB6, VB6
connaît dès lors toutes les propriétés, méthodes et constantes de l'objet
Excel lorsque tu es dans L'IDE (environnement de programmation). Cela amène
aussi une plus grande rapidité de l'objet Excel lorsque le programme est
compilé. Tout est déjà 'linké' à l'avance.
Au contraire, lorsque tu crées un objet en late binding via CreateObject,
VB6 ne connaît pas l'objet Excel dans l'IDE et donc par conséquant il ne
connaît pas les constantes puisqu'il ne peut faire la conversion avec une
éventuelle bibliothèque. Utiliser le Late binding est plus lent puisque VB
devra effectuer tous ses liens avec l'objet lors de l'exécution du
CreatObject, la compilation n'ayant pas pris en compte les références à
Excel puis non référencé.
Guy
"RENAUD Eric" <erenaud@fr.fm> a écrit dans le message de
news:%23A1MiZuqFHA.3624@TK2MSFTNGP10.phx.gbl...
Je comprends pas bien ce que tu me dis.
Aurais tu un petit exemple.
Merci
"Guy DETIENNE" <gd@NOSPAM.tchao.be> a écrit dans le message de news:
e6lHm1kqFHA.4012@TK2MSFTNGP12.phx.gbl...
> Salut ;O)
>
> En effet, dans mon précédent post j'ai oublié de dire que toutes les
> constantes habituellement utilisées lorsque l'objet Excel est référencé
ne
> sont plus reconnues en late binding. Il faut donc les remplacer par le
> valeur nominale.
>
> Guy
>
>
> "RENAUD Eric" <erenaud@fr.fm> a écrit dans le message de
> news:%23R1JwlhqFHA.3672@TK2MSFTNGP11.phx.gbl...
>> Bonjour,
>> Sur les conseils d'une personne participant à ce forum, j'ai utilisé le
> Late
>> Binding afin d'éviter d'ajouter une
>> référence Excel à mon programme et ainsi améliorer la portabilité de
>> l'application.
>> J'ai récupéré mon ancien code (utilisant la référence à Excel), j'ai
fait
>> quelques modifications et j'ai testé.
>>
>> Il apparait qu'une grande majorité des lignes de commandes passent mais
>> certaines refusent.
>> Toutes celles avec "Non OP" à la fin ne fonctionne pas (Erreur 438 -
>> Propriétés ou méthodes non gérées)
>> Quoi utiliser comme Méthodes ou Propriétés dans ce cas ?
>>
>> ' Déclarations
>> Dim xlApp As Object
>> Dim xlBook As Object
>> Dim xlSheet As Object
>> Set xlApp = CreateObject("Excel.Application") Set xlBook > >> xlApp.Workbooks.Add
>> Set xlSheet = xlBook.Worksheets("Feuil1")
>> ' Une partie du code ...
>> With xlApp.Selection.Font
>> .Name = "Arial"
>> .Size = 8
>> End With
>> xlSheet.Range("A1:I1").Select
>> With xlApp.Selection
>> xlSheet.Selection.HorizontalAlignment = xlCenter 'Non OP
>> xlApp.Selection.VerticalAlignment = xlBottom 'Non OP
>> xlApp.Selection.WrapText = False
>> xlApp.Selection.Orientation = 0
>> xlApp.Selection.AddIndent = False
>> xlApp.Selection.IndentLevel = 0
>> xlApp.Selection.ShrinkToFit = False
>> xlApp.Selection.ReadingOrder = xlContext 'Non OP
>> xlApp.Selection.MergeCells = False
>> End With
>> xlApp.Selection.Borders(xlDiagonalDown).LineStyle = xlNone 'Non
>> OP
>> xlApp.Selection.Borders(xlDiagonalUp).LineStyle = xlNone 'Non
OP
>> With xlApp.Selection.Borders(xlEdgeLeft) 'Non OP
>> .LineStyle = xlContinuous 'Non OP
>> .Weight = xlThin 'Non OP
>> .ColorIndex = xlAutomatic 'Non OP
>> End With 'Non OP
>> D'avance merci.
>> Bien amicalement
>>
>>
>
>
En effet, lorsque tu référencies l'objet Excel (early binding) dans VB6, VB6 connaît dès lors toutes les propriétés, méthodes et constantes de l'objet Excel lorsque tu es dans L'IDE (environnement de programmation). Cela amène aussi une plus grande rapidité de l'objet Excel lorsque le programme est compilé. Tout est déjà 'linké' à l'avance.
Au contraire, lorsque tu crées un objet en late binding via CreateObject, VB6 ne connaît pas l'objet Excel dans l'IDE et donc par conséquant il ne connaît pas les constantes puisqu'il ne peut faire la conversion avec une éventuelle bibliothèque. Utiliser le Late binding est plus lent puisque VB devra effectuer tous ses liens avec l'objet lors de l'exécution du CreatObject, la compilation n'ayant pas pris en compte les références à Excel puis non référencé.
Guy
"RENAUD Eric" a écrit dans le message de news:%
Je comprends pas bien ce que tu me dis. Aurais tu un petit exemple. Merci "Guy DETIENNE" a écrit dans le message de news:
> Salut ;O) > > En effet, dans mon précédent post j'ai oublié de dire que toutes les > constantes habituellement utilisées lorsque l'objet Excel est référencé
ne
> sont plus reconnues en late binding. Il faut donc les remplacer par le > valeur nominale. > > Guy > > > "RENAUD Eric" a écrit dans le message de > news:% >> Bonjour, >> Sur les conseils d'une personne participant à ce forum, j'ai utilisé le > Late >> Binding afin d'éviter d'ajouter une >> référence Excel à mon programme et ainsi améliorer la portabilité de >> l'application. >> J'ai récupéré mon ancien code (utilisant la référence à Excel), j'ai
fait
>> quelques modifications et j'ai testé. >> >> Il apparait qu'une grande majorité des lignes de commandes passent mais >> certaines refusent. >> Toutes celles avec "Non OP" à la fin ne fonctionne pas (Erreur 438 - >> Propriétés ou méthodes non gérées) >> Quoi utiliser comme Méthodes ou Propriétés dans ce cas ? >> >> ' Déclarations >> Dim xlApp As Object >> Dim xlBook As Object >> Dim xlSheet As Object >> Set xlApp = CreateObject("Excel.Application") Set xlBook > >> xlApp.Workbooks.Add >> Set xlSheet = xlBook.Worksheets("Feuil1") >> ' Une partie du code ... >> With xlApp.Selection.Font >> .Name = "Arial" >> .Size = 8 >> End With >> xlSheet.Range("A1:I1").Select >> With xlApp.Selection >> xlSheet.Selection.HorizontalAlignment = xlCenter 'Non OP >> xlApp.Selection.VerticalAlignment = xlBottom 'Non OP >> xlApp.Selection.WrapText = False >> xlApp.Selection.Orientation = 0 >> xlApp.Selection.AddIndent = False >> xlApp.Selection.IndentLevel = 0 >> xlApp.Selection.ShrinkToFit = False >> xlApp.Selection.ReadingOrder = xlContext 'Non OP >> xlApp.Selection.MergeCells = False >> End With >> xlApp.Selection.Borders(xlDiagonalDown).LineStyle = xlNone 'Non >> OP >> xlApp.Selection.Borders(xlDiagonalUp).LineStyle = xlNone 'Non
OP
>> With xlApp.Selection.Borders(xlEdgeLeft) 'Non OP >> .LineStyle = xlContinuous 'Non OP >> .Weight = xlThin 'Non OP >> .ColorIndex = xlAutomatic 'Non OP >> End With 'Non OP >> D'avance merci. >> Bien amicalement >> >> > >