Problème de selection worksheet automation Excel avec VB6 [Résolu]

Signaler
Messages postés
11
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 octobre 2010
-
Messages postés
11
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 octobre 2010
-
Bonjour à tous, je développe du code VB pour mon boulot et suis bloqué sur une partie automation avec Excell :


Je déclare 2 variables publiques qui récupérent le path de 2 fichier Excel à partir d'une fenêtre comondialog et drive/dir/filebox.
J'utilise un getobject et createobject et vérifie s'il y a déjà une séssion Excel d'ouverte.
Selon le cas, les fichiers Excel sont bien ouverts mais la selections des sheets ne se fait pas et donc ne peux selectionner les valeurs contenues dans les cells.


Code de la partie en question :


On Error Resume Next
    Set objExcelMacro = GetObject(, "Excel.Application")


        If Err.Number <> 0 Then
           Err.Number = Clear           
'Nous allons utiliser la variable NomFichierMacroCL qui définie le path + nom fichier de la req sql
' de C.L réalisé dans la feuille requsql
   
' Créer une instance de l'objet macro C.L si excel pas déjà ouvert
    Set objExcelMacro = CreateObject("Excel.Application")
           End If


'Une fois la séssion excel ouverte ou déjà ouverte on travaille sur la variable excel object
With objExcelMacro
  .Workbooks.Open (NomFichierMacroCL)
  .Visible = True 'Rendre Excel visible
  .Sheets("synthèse").Activate
'Verification de la date de la dernière sauvegarde du fichier macro C.L
  MoisAnFichier = Cells(6, 10).Value
    MsgBox MoisAnFichier
End With


'Déclaration des variables pour mémos des valeurs
 
' Créer 1 instance de l'objet objExcelTdB pour tableau de bord


   Set objExcelTdB = GetObject(, "Excel.Application")


With objExcelTdB
   .Workbooks.Open (NomFichier3)
   .Visible = True  'Rendre Excel visible
   .Sheets("ENTREEDATA").Activate
   fincol = Range("IV3").End(xlToLeft).Column 'se positionne sur la dernière colonne remplie
   valeur = Cells(3, fincol).Value
   MsgBox valeur
End With




Mille merci pour vos idées et enfin débloquer cette situation qui perdure.


Bonne journée

3 réponses

Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
8
Bonjour,

J'ai testé ton code, il marche pour la selection des feuilles, sauf, si... on n'a pas le bon nom de la feuille à selectionner. As-tu bien vérifié l'orthographe du nom des feuilles ?

Sinon, aussi, n'oubli pas les points dans les lignes de références... 
fincol = . Range("IV3").End(xlToLeft).Column 'se positionne sur la dernière colonne remplie
valeur =.
Cells(3, fincol).Value

Amicalement,
Us.
Messages postés
11
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 octobre 2010

Merci us_30 pour ta prompte reaction.

Pas de problème pour l'orthographe du nom des feuilles.

J'essaye avec les points dans les lignes de réf.

Mais tout laisse à penser que la problématique vient dans la gestion des variables objets puisque la non selection des feuilles (ou mélange entre les 2 objets Excel) dépend si une séssion Excel est déjà ouverte ou pas.
Si pas de séssion ouverte, la selection des feuilles est réalisé parfaitement. Si séssion ouverte (avec 1 fichier Excel quelconque) la selection ne se fait pas ou mal.

Amicalement,

Lou
Messages postés
11
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 octobre 2010

Bien joué, c'était bien l'abscence des points de réf qui empêchait la selection des sheets !

Merci encore et bravo.