XL 2013 passage de 2010 à 2013 et fermeture auto d'un classeur ne fonctionne plus

Tech

XLDnaute Junior
Bonjour à tous,
comme indiqué dans le titre, j'ai quelques problèmes avec un classeur vba qui fonctionnait très bien sous 2010.

voici celui qui me dérange le plus :

le classeur en question est plus ou moins un client d'une base de données. plusieurs utilisateurs ont une version du classeur sur leur PC et peuvent conserver ce fichier ouvert toute la journée. cependant, afin d'avoir les dernières mises à jour de la base de données, l'utilisateur dispose d'un bouton de synchronisation sur son fichier client qui va ouvrir un autre fichier xl (la base de données) et y récupérer les dernières entrées.
Le problème que j'ai se trouve à la fin du code, j'ouvre la base de données en lecture seule et je la referme en utilisant ActiveWorkbook.Close SaveChanges:=False. le classeur se ferme bien mais il reste toujours une fenêtre ouverte. si on utilise le bouton de synchro 10 fois, on a 10 fenêtres ouvertes.

Je sais que ce soucis à déjà été abordé ici, mais je ne trouve pas la solution à mon problème en faisant une recherche.

Quelqu'un pourrait-il m'aider ?
Merci d'avance
 
Dernière édition:

Roland_M

XLDnaute Barbatruc
Re : passage de 2010 à 2013 et fermeture auto d'un classeur ne fonctionne plus

bonsoir,

ça paraît surprenant mais si le classeur est bien fermé et déchargé
à moins d'un rafraîchissement de l'écran je ne vois pas !?

je ne suis guère convaincu mais essayer toujours ceci après close:
ThisWorkbook.Activate
Application.ScreenUpdating = True

EDIT: mais qu'entends tu par fenêtre ? tu vois toujours le classeur à l'écran ?
 

Tech

XLDnaute Junior
Re : passage de 2010 à 2013 et fermeture auto d'un classeur ne fonctionne plus

Bonjour,
Merci pour ta réponse,
Hé oui, surprenant mais bien réel :D.
Ce qu'il reste à l'écran après cette fermeture est une fenêtre excel vide avec son bouton de raccourci nommé "Excel" dans la barre des tâches.
Je peux réutiliser cette fenêtre pour ouvrir un autre document excel et lorsque je referme ce document, la fenêtre disparaît bien. Je ne retrouve ce problème qu'après une fermeture via du code VBA.
 

Lolote83

XLDnaute Barbatruc
Re : passage de 2010 à 2013 et fermeture auto d'un classeur ne fonctionne plus

Salut,
Peux être qu'en utilisant une macro qui lirait les données dans un classeur fermé pourrait faire l'affaire.
Ainsi, il n'y aurait pas d'ouverture supplémentaire de fichier et donc le problème du à la fermeture de celui-ci pourrait être également réglé.
A voir
Voici le code que j'utilise pour lire des données dans un fichier fermé
Code:
Sub LireFichierFermé()
    Dim texte_SQL As String
    Dim xChemin As String
    Dim xFichier As String
    Dim xOnglet As String
    Dim xPlage As String
    Application.ScreenUpdating = False
    'Définition des variables
        xChemin = "Nom du chemin ou se trouve le fichier à lire"
        xFichier = "Nom du fichier.xls"
        xOnglet = "Nom de l’onglet ou sont les données à lire"
        xPlage = "Plage de données à lire : exemple A1:J100"
    'Connexion ADO
        Set Source = CreateObject("ADODB.Connection")
        'Avant XL 2007
            'Source.Open "Provider=Microsoft.Jet.OLEDB.4.0;data source=" & xChemin & "\" & xFichier & ";Extended Properties=""Excel 8.0;HDR=No;"";"
        'Après XL 2007
            Source.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & xChemin & "\" & xFichier & ";Extended Properties=""Excel 12.0;HDR=NO;"";"       'IMEX=1";
    'Exerce la requete ADO sur les donnée à recopier
        texte_SQL = "SELECT * FROM [" & xOnglet & "$" & xPlage & "]"
        Set Requete = CreateObject("ADODB.Recordset")
        Set Requete = Source.Execute(texte_SQL)
    'Ecriture des données lues dans le fichier en cours
        ActiveSheet.Range("A1").CopyFromRecordset Requete	‘A partir de cette cellule les données vont être copiées
    'Ferme la requete
        Set Requete = Nothing
        Set Source = Nothing
        Application.ScreenUpdating = True
End Sub
@+ Lolote83
 

Tech

XLDnaute Junior
Re : passage de 2010 à 2013 et fermeture auto d'un classeur ne fonctionne plus

Bonjour Lolote83, super ton idée, je vais travailler avec le bout de code ci dessus et voir si j'arrive à faire fonctionner mon appli avec ça. De plus, j'imagine qu'une ouverture de ce type doit être plus rapide qu'un simple "workbook.open".
Merci et bonne journée.
@+
 

Discussions similaires

Réponses
27
Affichages
1 K

Statistiques des forums

Discussions
315 135
Messages
2 116 620
Membres
112 815
dernier inscrit
Pierre43