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

ouverture excel en vba depuis une autre application

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

Je ne sais pas si c'est HS ou pas...

depuis access j'essais d'ouvrir un fichier excel via le code :

Dim objSheet As Object
Dim strBook As String
Dim strPath As String

'init à modifier
strPath = "W:\REPORTING\Pricing"
strBook = "Extract_Prix_D-2_MF.xls"
strSheet = "Query_Px_Avant_Veille_1"

Set objApp = CreateObject("excel.application")
Set objBook = objApp.Workbooks.Open(strPath & "\" & strBook)
Set objSheet = objBook.Worksheets(strSheet)
objApp.Visible = True 'si on veut visualiser

With objSheet
.Range("A1").Value = "Valoren Number"
End With

en passant par cette methode, la session excel ne load pas toutes les memes
fonctionnalites ou barre outils qu'un simple :
ChDir "J:\"
Workbooks.Open FileName:="C:.....xls"

Sauriez vous me dire pourquoi ?

Merci d'avance...

Un pauvre utilisateur perdu dans les Add-ins.....

@+

Michel.

1 réponse

1 2
Avatar
Michel
Salut,
merci pour ton temps passe a m'aider mais je ne comprend plus rien je suis
perdu dans tous ces codes.
Ca me depasse completement. Je viens d'essayer sans resultat... :o(
Laisse tomber je dois etre trop bete.
Bon we a toi.
@+
Michel.


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

Bonjour Michel,

Tu fais quelque chose qui ressemble à :


Dim fichier As String
Dim X As String

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

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






"Michel" a écrit dans le message de
groupe de discussion : #
bonjour,
desole mais je me suis peut etre mal exprime sur les derniers points.
Tout ce que tu m'as explique je l'ai vu sur internet et tu me l'avais
confirme avant aussi.
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")>>

Voila le code que j'utilise :

Public Sub OpenExcel()

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")

XL.Application.Visible = True
XL.Parent.Windows(1).Visible = True


XL.Sheets.Add
XL.ActiveSheet.Name = "Liste_Finale"
'sa ne marche pas
XL.Range("a1").Select
XL.Cells.Select
XL.Cells.EntireColumn.AutoFit
XL.Range("A1").Select

'ca marche
XL.Sheets("Query_Px_Avant_Veille_1").Select

' les deux solutions ne marchent pas
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

Aurais-tu une idee ?

Merci d'avance, de ton temps, qui je le sais est precieux.
Apres cela je pourrais cloturer mon projet :o)

@+

Michel.


"MichDenis" a écrit dans le message de news:
%
L'utilisation de cette ligne de code s'applique
lorsqu'excel est ouvert
Set XL = CreateObject("Excel.Application")

Si Excel n'est pas ouvert, une erreur est générée et
la procédure utilise
Set XL = CreateObject("Excel.Application")
Pour rendre l'application excel :
Xl.Vsible = True

Maintenant, si tu veux ouvrir un fichier en utilisant la
variable Xl, tu dois procéder ainsi

Set Wk = Xl.Workbooks. Open("C:excelnomfichier.xls")

La variable Xl est un substitut pour Application
La variable Wk est un substitut pour un Workbook

Ton code devrait ressembler a ceci :

'-------------------------------------------------------
Sub OpenExcel()

Dim XL As Object, Wk As object

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

'Rend visible application
XL.Application.Visible = True

'Ici ouverture de ton fichier
Set Wk = Xl.Workbooks.Open("C:excelnomfichier.xls")

'Pour sélectionner une cellule ou plage de cellules d'une feuille
with Wk.Worksheets("NomDeLaFeuille") 'Nom de la feuille a adapter
.Select
.Range("A5:G10").Select
End With
' le reste de ton code

'Pour fermer le classeur que tu viens d'ouvrir
Wk.Close True ' or false selon que tu veux sauvegarder les
modifications

'pour fermer l'instance d'excel
xl.quit

End Sub
'-------------------------------------------------------






1 2