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

Activer une fenetre

16 réponses
Avatar
Michel
Bonjour a tout le monde,

J'ai lu beaucoup de chose mais sans vraiment trouver ce que je voulais.

J'ai un bouton dans access qui exporte un query sous excel. Directe apres il
ouvre ce fichier puis l'update avec des formules. Comme l'update prend du
temps la macro s'arrete.
Apres mis a jour je reviens sur access pour clicker sur un deuxieme bouton
pour continuer la procedure.

Voila mon probleme, comment apres click sur ce deuxieme bouton dans access
je peux lui dire : " Active mon fichier/ma fenetre excel " ?

D'avance merc de votre aide,

@+

Michel.

P.S. : Bonnes fetes.

6 réponses

1 2
Avatar
Michel
ben le msgbox est : Workbook

et voila mon code en entier :
mais ca ne marche pas plus et je ne comprend plus rien donc voila un projet
qui est mort, car j'en ai marre de lire entre les lignes, ce n'ai pas pour
toi mais c'est un tout, ca fait plus d'une semaine que je cherche pour une
pauvre selection cells.select et un copy paste special.value.... Je n'arrive
pas a comprendre pourquoi tout le reste du code marche mais pas ca....
et voila :

Public Sub OpenExcel()
Dim fichier As String
Dim XX As String

XX = "Z:BOULOTExtract_Prix_D-2_MF.xls"
fichier = Split(XX, "")(UBound(Split(XX, "")))

On Error Resume Next
'Si ouvert
Set wk = XL.Workbooks(fichier)
If Err <> 0 Then
Err.Clear
'si pas ouvert
Set wk = XL.Workbooks(XX)
End If



'Dim XL As Object

' Test Excel ouvert
On Error Resume Next '
Set XL = GetObject(, "Excel.Application")
If Err.Number <> 0 Then
ExcelWasNotRunning = True
Set XL = CreateObject("Excel.Application")
End If
Err.Clear
'DetectExcel

Set XL = GetObject("Z:BOULOTExtract_Prix_D-2_MF.xls")
MsgBox TypeName(XL)
XL.Application.Visible = True
XL.Parent.Windows(1).Visible = True
XL.Range("a1").Select

Set oRange = XL.Range(XL.Rows("A1"), XL.Rows("VI65000"))
oRange.Select

XL.Cells.Select
XL.Cells.EntireColumn.AutoFit
XL.Range("A1").Select

XL.Sheets.Add
XL.ActiveSheet.Name = "Liste_Finale"

XL.Sheets("Query_Px_Avant_Veille_1").Select
'Wk.Worksheets("Query_Px_Avant_Veille_1").Cells.Select
'XL.Cells.Select
XL.Selection.Copy
XL.Range("A1").Select
XL.Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:úlse, Transpose:úlse
XL.Range("A1").Select

End Sub






"Michel__D" a écrit dans le message de
news:

Bon allez, dernier indice, regarde le type de variable !

Avec Set OFeuil = XL.Cells ' => XL doit être un objet application, aprés
' ceci je ne vois pas ce que je peux faire de plus et j'ai testé le code
' il n'y a pas de problème.

PS:Au cas ou pour connaître le type de variable :
msgbox typename(XL)


Michel a écrit :
avant de repondre ca, on test !!!!

Mais bon.... De tout de facon ca fait plus d'une semaine que je suis sur
un fil et il n'y a pas de reelle reponse, donc laisse tomber....

Merci quand meme, mais il ne faut pas... Non je ne dirais rien ca n'en
vaut pas le coup.....

@+

Michel.




"Michel__D" a écrit dans le message
de news:
On peut pas dire que tu teste/cherche beaucoup pour quelqu'un qui
maîtrise
sous Excel, je crains pour la suite ...

Set oFeuil = XL.Cells
oFeuil.Select



Michel a écrit :
Heu....
Viens d'essayer et ca ne marche pas o:(

Je voudrais utiliser : cells.select

Selon toi :

Set oRange = XL.Range(XL.Rows(y1),XL.Rows(y2))
oRange.Select

y1 et y2, rassure moi : je peux mettre A1 et IV65536 ?

ou non ?

Si oui, ca ne marche pas, sinon pourrais tu m'aider a remplir les ???

D'avance merci.



"Michel__D" a écrit dans le
message de news:
Re,

Bon ok, il y a quelques subtilités :

Pour une cellule :
Set oCell = XL.Cells(x,y)
oCell.Select

ou pour une plage par exemple :
Set oRange = XL.Range(XL.Rows(y1),XL.Rows(y2))
oRange.Select


Michel a écrit :
Bonjour,
oui je sais mais je maitrise sous excel, je n'ai pas besoin de passer
par un enregistreur... :o)
Et quand bien meme ca ne marche pas.
Voir le fil sous excel.
Je pense que la fonction : Cells.Select
n'est pas trop complique.
meme XL.Cells.Select ne marche pas
ou application devant, bref je ne sais pas quoi faire.
c'est plutot pourquoi ca ca marche :
XL.Sheets.Add
XL.ActiveSheet.Name = "Liste_Finale"

mais pas la selection, je ne trouve pas ca logique.

Merci quand meme,

@+

Michel.

"Michel__D" a écrit dans le
message de news:
Bonjour,

Michel a écrit :
Bonjour,
ca marche, mais....
Je peux creer une feuille et la renommer et selectionner une autre
feuille, par contre je n'arrive pas a selectionner des cellules
faire une copie et un coller dans la nouvelle feuille :o(
Une idee ?
merci d'avance
Michel.


Quand on a du mal à trouver, on peut sous Excel enregistrer le
déroulement
dans une macro, cela donne quelques bases pour avancer, sachant que
sous
Access il faudra explicitement se servir de l'objet Excel créé.















Avatar
Michel__D
Quand je disais que je craignais pour la suite, voici mes remarques :

1) L'aide doit être consultée quand on a un problème; vu qu'ici c'est un
problème avec le VBA Excel, il faut consulter l'aide correspondante et moi
je lis que la propriété Cells s'applique aux objets :
Application, Range, WorkSheet

2) Tu as vu ou tu positionné le msgbox typename(XL), juste avant la ligne
XL.Application.Visible = True
Je pensais que cela ferais tilt, mais bon; donc tu as plusieurs possibilités

Soit utiliser l'objet Application :
Set oXL = XL.Application
Set oFeuil = oXL.Cells
oFeuil.Select

Ou soit utiliser l'objet Worksheet :
Set oXL = XL.ActiveSheet
Set oFeuil = oXL.Cells
oFeuil.Select


Michel a écrit :
ben le msgbox est : Workbook

et voila mon code en entier :
mais ca ne marche pas plus et je ne comprend plus rien donc voila un projet
qui est mort, car j'en ai marre de lire entre les lignes, ce n'ai pas pour
toi mais c'est un tout, ca fait plus d'une semaine que je cherche pour une
pauvre selection cells.select et un copy paste special.value.... Je n'arrive
pas a comprendre pourquoi tout le reste du code marche mais pas ca....
et voila :

Public Sub OpenExcel()
Dim fichier As String
Dim XX As String

XX = "Z:BOULOTExtract_Prix_D-2_MF.xls"
fichier = Split(XX, "")(UBound(Split(XX, "")))

On Error Resume Next
'Si ouvert
Set wk = XL.Workbooks(fichier)
If Err <> 0 Then
Err.Clear
'si pas ouvert
Set wk = XL.Workbooks(XX)
End If



'Dim XL As Object

' Test Excel ouvert
On Error Resume Next '
Set XL = GetObject(, "Excel.Application")
If Err.Number <> 0 Then
ExcelWasNotRunning = True
Set XL = CreateObject("Excel.Application")
End If
Err.Clear
'DetectExcel

Set XL = GetObject("Z:BOULOTExtract_Prix_D-2_MF.xls")
MsgBox TypeName(XL)
XL.Application.Visible = True
XL.Parent.Windows(1).Visible = True
XL.Range("a1").Select

Set oRange = XL.Range(XL.Rows("A1"), XL.Rows("VI65000"))
oRange.Select

XL.Cells.Select
XL.Cells.EntireColumn.AutoFit
XL.Range("A1").Select

XL.Sheets.Add
XL.ActiveSheet.Name = "Liste_Finale"

XL.Sheets("Query_Px_Avant_Veille_1").Select
'Wk.Worksheets("Query_Px_Avant_Veille_1").Cells.Select
'XL.Cells.Select
XL.Selection.Copy
XL.Range("A1").Select
XL.Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:úlse, Transpose:úlse
XL.Range("A1").Select

End Sub






"Michel__D" a écrit dans le message de
news:
Bon allez, dernier indice, regarde le type de variable !

Avec Set OFeuil = XL.Cells ' => XL doit être un objet application, aprés
' ceci je ne vois pas ce que je peux faire de plus et j'ai testé le code
' il n'y a pas de problème.

PS:Au cas ou pour connaître le type de variable :
msgbox typename(XL)


Michel a écrit :
avant de repondre ca, on test !!!!

Mais bon.... De tout de facon ca fait plus d'une semaine que je suis sur
un fil et il n'y a pas de reelle reponse, donc laisse tomber....

Merci quand meme, mais il ne faut pas... Non je ne dirais rien ca n'en
vaut pas le coup.....

@+

Michel.




"Michel__D" a écrit dans le message
de news:
On peut pas dire que tu teste/cherche beaucoup pour quelqu'un qui
maîtrise
sous Excel, je crains pour la suite ...

Set oFeuil = XL.Cells
oFeuil.Select



Michel a écrit :
Heu....
Viens d'essayer et ca ne marche pas o:(

Je voudrais utiliser : cells.select

Selon toi :

Set oRange = XL.Range(XL.Rows(y1),XL.Rows(y2))
oRange.Select

y1 et y2, rassure moi : je peux mettre A1 et IV65536 ?

ou non ?

Si oui, ca ne marche pas, sinon pourrais tu m'aider a remplir les ???

D'avance merci.



"Michel__D" a écrit dans le
message de news:
Re,

Bon ok, il y a quelques subtilités :

Pour une cellule :
Set oCell = XL.Cells(x,y)
oCell.Select

ou pour une plage par exemple :
Set oRange = XL.Range(XL.Rows(y1),XL.Rows(y2))
oRange.Select


Michel a écrit :
Bonjour,
oui je sais mais je maitrise sous excel, je n'ai pas besoin de passer
par un enregistreur... :o)
Et quand bien meme ca ne marche pas.
Voir le fil sous excel.
Je pense que la fonction : Cells.Select
n'est pas trop complique.
meme XL.Cells.Select ne marche pas
ou application devant, bref je ne sais pas quoi faire.
c'est plutot pourquoi ca ca marche :
XL.Sheets.Add
XL.ActiveSheet.Name = "Liste_Finale"

mais pas la selection, je ne trouve pas ca logique.

Merci quand meme,

@+

Michel.

"Michel__D" a écrit dans le
message de news:
Bonjour,

Michel a écrit :
Bonjour,
ca marche, mais....
Je peux creer une feuille et la renommer et selectionner une autre
feuille, par contre je n'arrive pas a selectionner des cellules
faire une copie et un coller dans la nouvelle feuille :o(
Une idee ?
merci d'avance
Michel.


Quand on a du mal à trouver, on peut sous Excel enregistrer le
déroulement
dans une macro, cela donne quelques bases pour avancer, sachant que
sous
Access il faudra explicitement se servir de l'objet Excel créé.

















Avatar
Michel
Salut,

Merci de la reponse mais je viens de trouver pourquoi ca ne marchait pas,
rien a voir avec ce que tu dis, mais qui est vraiment tres bete...
Il y a 2 fois Set XL... 1ere fois application excel (qui est bon) et le
deuxieme le nom du fichier (pas bon) donc XL perd la reference de l'appli
excel...
donc tous les XL.blabla ne pointe pas vers excel....

Et voila....

Merci quand meme de ton aide meme si tu me prend pour ce que je ne suis pas
:o)

@+

Michel.






"Michel__D" a écrit dans le message de
news:

Quand je disais que je craignais pour la suite, voici mes remarques :

1) L'aide doit être consultée quand on a un problème; vu qu'ici c'est un
problème avec le VBA Excel, il faut consulter l'aide correspondante et
moi
je lis que la propriété Cells s'applique aux objets :
Application, Range, WorkSheet

2) Tu as vu ou tu positionné le msgbox typename(XL), juste avant la ligne
XL.Application.Visible = True
Je pensais que cela ferais tilt, mais bon; donc tu as plusieurs
possibilités

Soit utiliser l'objet Application :
Set oXL = XL.Application
Set oFeuil = oXL.Cells
oFeuil.Select

Ou soit utiliser l'objet Worksheet :
Set oXL = XL.ActiveSheet
Set oFeuil = oXL.Cells
oFeuil.Select


Michel a écrit :
ben le msgbox est : Workbook

et voila mon code en entier :
mais ca ne marche pas plus et je ne comprend plus rien donc voila un
projet qui est mort, car j'en ai marre de lire entre les lignes, ce n'ai
pas pour toi mais c'est un tout, ca fait plus d'une semaine que je
cherche pour une pauvre selection cells.select et un copy paste
special.value.... Je n'arrive pas a comprendre pourquoi tout le reste du
code marche mais pas ca....
et voila :

Public Sub OpenExcel()
Dim fichier As String
Dim XX As String

XX = "Z:BOULOTExtract_Prix_D-2_MF.xls"
fichier = Split(XX, "")(UBound(Split(XX, "")))

On Error Resume Next
'Si ouvert
Set wk = XL.Workbooks(fichier)
If Err <> 0 Then
Err.Clear
'si pas ouvert
Set wk = XL.Workbooks(XX)
End If



'Dim XL As Object

' Test Excel ouvert
On Error Resume Next '
Set XL = GetObject(, "Excel.Application")
If Err.Number <> 0 Then
ExcelWasNotRunning = True
Set XL = CreateObject("Excel.Application")
End If
Err.Clear
'DetectExcel

Set XL = GetObject("Z:BOULOTExtract_Prix_D-2_MF.xls")
MsgBox TypeName(XL)
XL.Application.Visible = True
XL.Parent.Windows(1).Visible = True
XL.Range("a1").Select

Set oRange = XL.Range(XL.Rows("A1"), XL.Rows("VI65000"))
oRange.Select

XL.Cells.Select
XL.Cells.EntireColumn.AutoFit
XL.Range("A1").Select

XL.Sheets.Add
XL.ActiveSheet.Name = "Liste_Finale"

XL.Sheets("Query_Px_Avant_Veille_1").Select
'Wk.Worksheets("Query_Px_Avant_Veille_1").Cells.Select
'XL.Cells.Select
XL.Selection.Copy
XL.Range("A1").Select
XL.Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:úlse, Transpose:úlse
XL.Range("A1").Select

End Sub






"Michel__D" a écrit dans le message
de news:
Bon allez, dernier indice, regarde le type de variable !

Avec Set OFeuil = XL.Cells ' => XL doit être un objet application, aprés
' ceci je ne vois pas ce que je peux faire de plus et j'ai testé le code
' il n'y a pas de problème.

PS:Au cas ou pour connaître le type de variable :
msgbox typename(XL)


Michel a écrit :
avant de repondre ca, on test !!!!

Mais bon.... De tout de facon ca fait plus d'une semaine que je suis
sur un fil et il n'y a pas de reelle reponse, donc laisse tomber....

Merci quand meme, mais il ne faut pas... Non je ne dirais rien ca n'en
vaut pas le coup.....

@+

Michel.




"Michel__D" a écrit dans le
message de news:
On peut pas dire que tu teste/cherche beaucoup pour quelqu'un qui
maîtrise
sous Excel, je crains pour la suite ...

Set oFeuil = XL.Cells
oFeuil.Select



Michel a écrit :
Heu....
Viens d'essayer et ca ne marche pas o:(

Je voudrais utiliser : cells.select

Selon toi :

Set oRange = XL.Range(XL.Rows(y1),XL.Rows(y2))
oRange.Select

y1 et y2, rassure moi : je peux mettre A1 et IV65536 ?

ou non ?

Si oui, ca ne marche pas, sinon pourrais tu m'aider a remplir les ???

D'avance merci.



"Michel__D" a écrit dans le
message de news:
Re,

Bon ok, il y a quelques subtilités :

Pour une cellule :
Set oCell = XL.Cells(x,y)
oCell.Select

ou pour une plage par exemple :
Set oRange = XL.Range(XL.Rows(y1),XL.Rows(y2))
oRange.Select


Michel a écrit :
Bonjour,
oui je sais mais je maitrise sous excel, je n'ai pas besoin de
passer par un enregistreur... :o)
Et quand bien meme ca ne marche pas.
Voir le fil sous excel.
Je pense que la fonction : Cells.Select
n'est pas trop complique.
meme XL.Cells.Select ne marche pas
ou application devant, bref je ne sais pas quoi faire.
c'est plutot pourquoi ca ca marche :
XL.Sheets.Add
XL.ActiveSheet.Name = "Liste_Finale"

mais pas la selection, je ne trouve pas ca logique.

Merci quand meme,

@+

Michel.

"Michel__D" a écrit dans le
message de news:
Bonjour,

Michel a écrit :
Bonjour,
ca marche, mais....
Je peux creer une feuille et la renommer et selectionner une
autre feuille, par contre je n'arrive pas a selectionner des
cellules faire une copie et un coller dans la nouvelle feuille
:o(
Une idee ?
merci d'avance
Michel.


Quand on a du mal à trouver, on peut sous Excel enregistrer le
déroulement
dans une macro, cela donne quelques bases pour avancer, sachant
que sous
Access il faudra explicitement se servir de l'objet Excel créé.



















Avatar
Michel__D
Bonjour,

Sincérement je suis content que tu es réussi, bien que tu me raconte dez
mensonges par rapport à ton code pour le cas ou Excel n'est pas ouvert !

Cordialement.


Michel a écrit :
Salut,

Merci de la reponse mais je viens de trouver pourquoi ca ne marchait pas,
rien a voir avec ce que tu dis, mais qui est vraiment tres bete...
Il y a 2 fois Set XL... 1ere fois application excel (qui est bon) et le
deuxieme le nom du fichier (pas bon) donc XL perd la reference de l'appli
excel...
donc tous les XL.blabla ne pointe pas vers excel....

Et voila....

Merci quand meme de ton aide meme si tu me prend pour ce que je ne suis pas
:o)

@+

Michel.






"Michel__D" a écrit dans le message de
news:
Quand je disais que je craignais pour la suite, voici mes remarques :

1) L'aide doit être consultée quand on a un problème; vu qu'ici c'est un
problème avec le VBA Excel, il faut consulter l'aide correspondante et
moi
je lis que la propriété Cells s'applique aux objets :
Application, Range, WorkSheet

2) Tu as vu ou tu positionné le msgbox typename(XL), juste avant la ligne
XL.Application.Visible = True
Je pensais que cela ferais tilt, mais bon; donc tu as plusieurs
possibilités

Soit utiliser l'objet Application :
Set oXL = XL.Application
Set oFeuil = oXL.Cells
oFeuil.Select

Ou soit utiliser l'objet Worksheet :
Set oXL = XL.ActiveSheet
Set oFeuil = oXL.Cells
oFeuil.Select


Michel a écrit :
ben le msgbox est : Workbook

et voila mon code en entier :
mais ca ne marche pas plus et je ne comprend plus rien donc voila un
projet qui est mort, car j'en ai marre de lire entre les lignes, ce n'ai
pas pour toi mais c'est un tout, ca fait plus d'une semaine que je
cherche pour une pauvre selection cells.select et un copy paste
special.value.... Je n'arrive pas a comprendre pourquoi tout le reste du
code marche mais pas ca....
et voila :

Public Sub OpenExcel()
Dim fichier As String
Dim XX As String

XX = "Z:BOULOTExtract_Prix_D-2_MF.xls"
fichier = Split(XX, "")(UBound(Split(XX, "")))

On Error Resume Next
'Si ouvert
Set wk = XL.Workbooks(fichier)
If Err <> 0 Then
Err.Clear
'si pas ouvert
Set wk = XL.Workbooks(XX)
End If



'Dim XL As Object

' Test Excel ouvert
On Error Resume Next '
Set XL = GetObject(, "Excel.Application")
If Err.Number <> 0 Then
ExcelWasNotRunning = True
Set XL = CreateObject("Excel.Application")
End If
Err.Clear
'DetectExcel

Set XL = GetObject("Z:BOULOTExtract_Prix_D-2_MF.xls")
MsgBox TypeName(XL)
XL.Application.Visible = True
XL.Parent.Windows(1).Visible = True
XL.Range("a1").Select

Set oRange = XL.Range(XL.Rows("A1"), XL.Rows("VI65000"))
oRange.Select

XL.Cells.Select
XL.Cells.EntireColumn.AutoFit
XL.Range("A1").Select

XL.Sheets.Add
XL.ActiveSheet.Name = "Liste_Finale"

XL.Sheets("Query_Px_Avant_Veille_1").Select
'Wk.Worksheets("Query_Px_Avant_Veille_1").Cells.Select
'XL.Cells.Select
XL.Selection.Copy
XL.Range("A1").Select
XL.Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:úlse, Transpose:úlse
XL.Range("A1").Select

End Sub






"Michel__D" a écrit dans le message
de news:
Bon allez, dernier indice, regarde le type de variable !

Avec Set OFeuil = XL.Cells ' => XL doit être un objet application, aprés
' ceci je ne vois pas ce que je peux faire de plus et j'ai testé le code
' il n'y a pas de problème.

PS:Au cas ou pour connaître le type de variable :
msgbox typename(XL)


Michel a écrit :
avant de repondre ca, on test !!!!

Mais bon.... De tout de facon ca fait plus d'une semaine que je suis
sur un fil et il n'y a pas de reelle reponse, donc laisse tomber....

Merci quand meme, mais il ne faut pas... Non je ne dirais rien ca n'en
vaut pas le coup.....

@+

Michel.




"Michel__D" a écrit dans le
message de news:
On peut pas dire que tu teste/cherche beaucoup pour quelqu'un qui
maîtrise
sous Excel, je crains pour la suite ...

Set oFeuil = XL.Cells
oFeuil.Select



Michel a écrit :
Heu....
Viens d'essayer et ca ne marche pas o:(

Je voudrais utiliser : cells.select

Selon toi :

Set oRange = XL.Range(XL.Rows(y1),XL.Rows(y2))
oRange.Select

y1 et y2, rassure moi : je peux mettre A1 et IV65536 ?

ou non ?

Si oui, ca ne marche pas, sinon pourrais tu m'aider a remplir les ???

D'avance merci.



"Michel__D" a écrit dans le
message de news:
Re,

Bon ok, il y a quelques subtilités :

Pour une cellule :
Set oCell = XL.Cells(x,y)
oCell.Select

ou pour une plage par exemple :
Set oRange = XL.Range(XL.Rows(y1),XL.Rows(y2))
oRange.Select


Michel a écrit :
Bonjour,
oui je sais mais je maitrise sous excel, je n'ai pas besoin de
passer par un enregistreur... :o)
Et quand bien meme ca ne marche pas.
Voir le fil sous excel.
Je pense que la fonction : Cells.Select
n'est pas trop complique.
meme XL.Cells.Select ne marche pas
ou application devant, bref je ne sais pas quoi faire.
c'est plutot pourquoi ca ca marche :
XL.Sheets.Add
XL.ActiveSheet.Name = "Liste_Finale"

mais pas la selection, je ne trouve pas ca logique.

Merci quand meme,

@+

Michel.

"Michel__D" a écrit dans le
message de news:
Bonjour,

Michel a écrit :
Bonjour,
ca marche, mais....
Je peux creer une feuille et la renommer et selectionner une
autre feuille, par contre je n'arrive pas a selectionner des
cellules faire une copie et un coller dans la nouvelle feuille
:o(
Une idee ?
merci d'avance
Michel.


Quand on a du mal à trouver, on peut sous Excel enregistrer le
déroulement
dans une macro, cela donne quelques bases pour avancer, sachant
que sous
Access il faudra explicitement se servir de l'objet Excel créé.






















Avatar
Michel
nullement....
message 24.04.09 19:36
fil sur excel fr du 24.04.09 19:16
Je n'ai pas de probleme a selectionner une feuille a selectionner une
cellule quand :
* Je creer un nopuveau fichier excel
* J'ouvre un fichier excel (qui exister avant, mais est ferme) <<Set Wk Xl.Workbooks. Open("C:excelnomfichier.xls")






Mon probleme est lorsque ce fichier excel est deja ouvert. Fonction
<<GetObject(, "Excel.Application")>>


Si c'est pour me traiter de menteur, tu pourras a l'avenir te passer de
m'aider ou alors de tes commentaires assez desobligants !!!!!

Salutations.


"Michel__D" a écrit dans le message de
news: e4%
Bonjour,

Sincérement je suis content que tu es réussi, bien que tu me raconte dez
mensonges par rapport à ton code pour le cas ou Excel n'est pas ouvert !

Cordialement.


Michel a écrit :
Salut,

Merci de la reponse mais je viens de trouver pourquoi ca ne marchait pas,
rien a voir avec ce que tu dis, mais qui est vraiment tres bete...
Il y a 2 fois Set XL... 1ere fois application excel (qui est bon) et le
deuxieme le nom du fichier (pas bon) donc XL perd la reference de l'appli
excel...
donc tous les XL.blabla ne pointe pas vers excel....

Et voila....

Merci quand meme de ton aide meme si tu me prend pour ce que je ne suis
pas :o)

@+

Michel.






"Michel__D" a écrit dans le message
de news:
Quand je disais que je craignais pour la suite, voici mes remarques :

1) L'aide doit être consultée quand on a un problème; vu qu'ici c'est un
problème avec le VBA Excel, il faut consulter l'aide correspondante et
moi
je lis que la propriété Cells s'applique aux objets :
Application, Range, WorkSheet

2) Tu as vu ou tu positionné le msgbox typename(XL), juste avant la
ligne
XL.Application.Visible = True
Je pensais que cela ferais tilt, mais bon; donc tu as plusieurs
possibilités

Soit utiliser l'objet Application :
Set oXL = XL.Application
Set oFeuil = oXL.Cells
oFeuil.Select

Ou soit utiliser l'objet Worksheet :
Set oXL = XL.ActiveSheet
Set oFeuil = oXL.Cells
oFeuil.Select


Michel a écrit :
ben le msgbox est : Workbook

et voila mon code en entier :
mais ca ne marche pas plus et je ne comprend plus rien donc voila un
projet qui est mort, car j'en ai marre de lire entre les lignes, ce
n'ai pas pour toi mais c'est un tout, ca fait plus d'une semaine que je
cherche pour une pauvre selection cells.select et un copy paste
special.value.... Je n'arrive pas a comprendre pourquoi tout le reste
du code marche mais pas ca....
et voila :

Public Sub OpenExcel()
Dim fichier As String
Dim XX As String

XX = "Z:BOULOTExtract_Prix_D-2_MF.xls"
fichier = Split(XX, "")(UBound(Split(XX, "")))

On Error Resume Next
'Si ouvert
Set wk = XL.Workbooks(fichier)
If Err <> 0 Then
Err.Clear
'si pas ouvert
Set wk = XL.Workbooks(XX)
End If



'Dim XL As Object

' Test Excel ouvert
On Error Resume Next '
Set XL = GetObject(, "Excel.Application")
If Err.Number <> 0 Then
ExcelWasNotRunning = True
Set XL = CreateObject("Excel.Application")
End If
Err.Clear
'DetectExcel

Set XL = GetObject("Z:BOULOTExtract_Prix_D-2_MF.xls")
MsgBox TypeName(XL)
XL.Application.Visible = True
XL.Parent.Windows(1).Visible = True
XL.Range("a1").Select

Set oRange = XL.Range(XL.Rows("A1"), XL.Rows("VI65000"))
oRange.Select

XL.Cells.Select
XL.Cells.EntireColumn.AutoFit
XL.Range("A1").Select

XL.Sheets.Add
XL.ActiveSheet.Name = "Liste_Finale"

XL.Sheets("Query_Px_Avant_Veille_1").Select
'Wk.Worksheets("Query_Px_Avant_Veille_1").Cells.Select
'XL.Cells.Select
XL.Selection.Copy
XL.Range("A1").Select
XL.Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:úlse, Transpose:úlse
XL.Range("A1").Select

End Sub






"Michel__D" a écrit dans le
message de news:
Bon allez, dernier indice, regarde le type de variable !

Avec Set OFeuil = XL.Cells ' => XL doit être un objet application,
aprés
' ceci je ne vois pas ce que je peux faire de plus et j'ai testé le
code
' il n'y a pas de problème.

PS:Au cas ou pour connaître le type de variable :
msgbox typename(XL)


Michel a écrit :
avant de repondre ca, on test !!!!

Mais bon.... De tout de facon ca fait plus d'une semaine que je suis
sur un fil et il n'y a pas de reelle reponse, donc laisse tomber....

Merci quand meme, mais il ne faut pas... Non je ne dirais rien ca
n'en vaut pas le coup.....

@+

Michel.




"Michel__D" a écrit dans le
message de news:
On peut pas dire que tu teste/cherche beaucoup pour quelqu'un qui
maîtrise
sous Excel, je crains pour la suite ...

Set oFeuil = XL.Cells
oFeuil.Select



Michel a écrit :
Heu....
Viens d'essayer et ca ne marche pas o:(

Je voudrais utiliser : cells.select

Selon toi :

Set oRange = XL.Range(XL.Rows(y1),XL.Rows(y2))
oRange.Select

y1 et y2, rassure moi : je peux mettre A1 et IV65536 ?

ou non ?

Si oui, ca ne marche pas, sinon pourrais tu m'aider a remplir les
???

D'avance merci.



"Michel__D" a écrit dans le
message de news:
Re,

Bon ok, il y a quelques subtilités :

Pour une cellule :
Set oCell = XL.Cells(x,y)
oCell.Select

ou pour une plage par exemple :
Set oRange = XL.Range(XL.Rows(y1),XL.Rows(y2))
oRange.Select


Michel a écrit :
Bonjour,
oui je sais mais je maitrise sous excel, je n'ai pas besoin de
passer par un enregistreur... :o)
Et quand bien meme ca ne marche pas.
Voir le fil sous excel.
Je pense que la fonction : Cells.Select
n'est pas trop complique.
meme XL.Cells.Select ne marche pas
ou application devant, bref je ne sais pas quoi faire.
c'est plutot pourquoi ca ca marche :
XL.Sheets.Add
XL.ActiveSheet.Name = "Liste_Finale"

mais pas la selection, je ne trouve pas ca logique.

Merci quand meme,

@+

Michel.

"Michel__D" a écrit dans le
message de news:
Bonjour,

Michel a écrit :
Bonjour,
ca marche, mais....
Je peux creer une feuille et la renommer et selectionner une
autre feuille, par contre je n'arrive pas a selectionner des
cellules faire une copie et un coller dans la nouvelle feuille
:o(
Une idee ?
merci d'avance
Michel.


Quand on a du mal à trouver, on peut sous Excel enregistrer le
déroulement
dans une macro, cela donne quelques bases pour avancer, sachant
que sous
Access il faudra explicitement se servir de l'objet Excel créé.























Avatar
Michel__D
Michel a écrit :
Si c'est pour me traiter de menteur, tu pourras a l'avenir te passer de
m'aider ou alors de tes commentaires assez desobligants !!!!!



Ok, c'est noté, pas de problème.
1 2