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

Messages postés
11
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 octobre 2010
- - Dernière réponse : LOUNIZARTE
Messages postés
11
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 octobre 2010
- 30 juil. 2008 à 12:53
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
Afficher la suite 

3 réponses

Meilleure réponse
Messages postés
2117
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
7
3
Merci
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.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 188 internautes nous ont dit merci ce mois-ci

Commenter la réponse de us_30
Messages postés
11
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 octobre 2010
0
Merci
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
Commenter la réponse de LOUNIZARTE
Messages postés
11
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 octobre 2010
0
Merci
Bien joué, c'était bien l'abscence des points de réf qui empêchait la selection des sheets !

Merci encore et bravo.
Commenter la réponse de LOUNIZARTE