Worbook ouvert dans la console VBA mais impossible à afficher

Bonjour,

pourriez-vous m'expliquer la différence entre une feuille ouverte uniquement dans VBA et une feuille ouverte dans excel ?

Après avoir exécuté la macro suivante qui marche bien (le fichier du chemin était bien en xlsm pour pouvoir le modifier) :

Set wb = GetObject(chemin)

wb.Activate

wb.Sheets(1).Range("M6").Value = 0.9

wb.Close savechanges:=True

Lorsque je veux aller voir si la cell a bien été modifiée, je ne peux plus re-ouvrir le fichier en mode tableur, mais il s'ouvre bien dans ma console VBA, et le petit bouton afficher l'objet est grisé (au dessus des modules etc).

Pourtant un codant quelque chose comme "MsgBox Sheets(1).Range("M6")" me renvoie bien la bonne valeur.

Merci par avance !

Bonjour,

Pas bien compris la demande ? votre code est sensé faire quoi ? Si la feuille excel ne s'affiche pas celà paraît logique avec ce que vous écrivez :

wb.Close savechanges:=True

fermer et enregistrer modification =vrai

Désolé si ce n'était pas clair, j'ai edit mon post.

Je voulais dire : après avoir fermé mon fichier avec mon code comme vous dite, mon problème est : quand je veux à nouveau l'ouvrir en mode tableur, il ne s'affiche plus, mais est bien ouvert dans la console VBA.

Merci !

Ha Ok. sans fichier difficile de trouver.

Peut-être une ligne de code qui masque excel quelque part ?

du genre :

Application.WindowState = xlMinimized
Application.Visible = False
5ciblemodif.xlsm (7.62 Ko)

Voici les deux fichiers : il suffit de mettre un chemin pour votre ordinateur. Le fichier "ciblemodif" ne s'affiche plus après avoir exécuté mon code

Merci !

Etrange en effet.

Le fichier de destination est au format xlsm macro. Est-ce utile ? je ne vois aucun vba dans celui-ci.

s'il ne fait rien d'autre que recevoir des données autant l'enregistrer en .xlsx cela posera moins de souci.

Non pas de code : ha oui je pensais qu'il y avait des difficultés à modifier s'il n'était pas en .xlsm

Le problème persiste en format .xlsx

Re bonjour,

Dans ce cas faudrait revoir la macro afin d'éviter d'utiliser le GetObject ... (c'est utile quand le fichier à ouvrir n'est pas un fichier excel ) mais dans ce

cas précis pas nécessaire :

ce serait plutôt dans ce style là :

Dim chemin As String
Dim nomfichier As string
Chemin = "C:XXXXXX\"
nomficher="ciblemodif.xlsx"
Workbooks.Open Filename:=Chemin & nomfichier
Workbooks(nomfichier).Activate
Worksheets("Feuil1").Range("M6").Value = 0.9
Workbooks(nomfichier).Close savechanges:=True

Merci à vous !!

quel est la différence de fonctionnement entre get object et votre méthode ?

Dans quels cas est-ce nécessaire d'avoir un fichier cible en .xlsm ?

Merci à vous !!

quel est la différence de fonctionnement entre get object et votre méthode ?

Dans quels cas est-ce nécessaire d'avoir un fichier cible en .xlsm ?

Re bonjour,

-Pour moi j'utilise get objet si c'est une macro excel qui essaie d'utiliser un fichier autre que celui d'excel.... powerpoint, pdf, word.... l'application n'est pas la même.

- La méthode présentée se contente d'ouvrir un : "workbook"... donc un fichier excel (qu'il soit xlsm ou xlsx )

Workbooks.Open Filename:=Chemin & nomfichier

On lui indique seulement le "chemin complet du fichier" et le "nom du fichier". Quand le fichier de destination se trouve dans le même répertoire que le fichier qui contient la macro alors on utilise souvent à la place de la variable "chemin" : Thisworkbook.path pour indiquer la même adresse.

Pour le fichier ciblé, si il ne contient pas de macro alors le format xlsm n'est pas nécessaire.

On pourrait en avoir besoin si le fichier origine ouvre un fichier xlsm pour lancer la macro contenu dans celui si. ( assez rare car d'ordinaire on préfère un fichier qui contiend toutes les macros pour alimenter divers fichiers sans macro

qui eux pourront facilement être transmis pour partage d'informations. )

Rechercher des sujets similaires à "worbook ouvert console vba impossible afficher"