Comment ouvrir un classeur en le laissant inactif

E

Eric D

Guest
Bonjour à toutes et tous,

Je n'est tjs pas résolu mon Pb de copie de cellule d'1 classeur vers celui que je viens d'ouvrir, mais maintenant j'ai compris pourquoi, satisfaction de débutant: le classeur que j'ouvre devient actif et le classeur appelant inactif, donc il n'execute pas les instructions suivant l'ouverture.

Ma question est donc devenue:

Comment ouvrir un classeur en VBA mais en le laissant inactif jusqu'à la fermeture du classeur appelant ?

ou

Comment un classeur peut en ouvrir un autre en le laissant inactif, de façon à finir les instructions du module avant de se fermer, de façon à passer la main au classeur qu'il vient d'ouvrir?

Merci pour votre aide à un débutant.

Bonne soirée,

Eric D
 
M

myDearFriend

Guest
Bonsoir Eric D,


Ci-dessous une procédure qui devrait faire ce que j'ai cru comprendre de ta Lien supprimé...

Sub MAJClasseurCible()
Dim don As Variant
   'Détermination de la variable "don"
   don = ThisWorkbook.Sheets("Feuil1").Range("A90").Value
   'Ouverture du classeur cible
   Workbooks.Open "C:\ClasseurCible.xls"
   'Mise à jour de la cellule A100 de la feuille 1 de ce classeur cible (qui est devenu le classeur actif)
   ActiveWorkbook.Sheets("Feuil1").Range("A100").Value = don
   'Sauvegarde et ferme le classeur de départ
   ThisWorkbook.Save
   ThisWorkbook.Close
End Sub

A noter qu'il convient de placer cette procédure dans un module de code "standard", c'est à dire autre qu'un module de code d'une feuille du classeur appelant.


Cordialement.

Didier_mDF
myDearFriend-3.gif
 
E

Eric D

Guest
Bonjour myDearFriend, Re le forum

Merci pour ton aide myDearFriend, mais que veux tu dire par

"A noter qu'il convient de placer cette procédure dans un module de code "standard", c'est à dire autre qu'un module de code d'une feuille du classeur appelant."

@ Plus.

Eric D
 
M

myDearFriend

Guest
Re Eric,


Cela signifie simplement que lorsque ton code intervient sur d'autres feuilles et notamment dans d'autres classeurs que celui qui contient le code, il est toujours souhaitable de ne pas saisir cette procédure dans un module "Private" de feuille, mais plutôt dans un module autre (celui que tu crées en faisant "Insertion / Module" dans VBE). Ce n'est évidemment pas une obligation dans tous les cas de figure, mais tu verras que ça peut parfois t'éviter certains problèmes...


Cordialement.

Didier_mDF
myDearFriend-3.gif
 
E

Eric D

Guest
Bonjour Didier mDF, le Forum

Et oui C encore moi !!!

Comme tu me l'a dis hier, j'ai créé un module '(fenêtre Projet-VBAProjet) insertion - module)' dont voici le code (le tien légèrement modifié):

Sub MAJClasseurCible()
Dim fap As String
Dim don As String
fap = Range("A90").Value
don = Range("A100").Value
Workbooks.Open fap ' ouvre le fichier cible
'Mise à jour de la cellule A100 de la feuille 1 de ce classeur cible
ActiveWorkbook.Sheets("Feuil1").Range("A100").Value = don
'Sauvegarde et ferme le classeur de départ
ThisWorkbook.Save
ThisWorkbook.Close
End Sub

Mais il n'écrit tjs pas 'don' ds le classeur fap
Où est l'HORREUR ?

A bientôt.

Eric D
 
M

myDearFriend

Guest
Bonjour Eric D, le Forum.

Reste à savoir ce que contiennent fap et don...
Tu devrais essayer en spécifiant le chemin complet de tes ranges :

fap = ThisWorkbook.Sheets("Feuil1").Range("A90").Value
don = ThisWorkbook.Sheets("Feuil1").Range("A100").Value

... ou quelque chose comme ça.

Et si ça ne marche toujours pas, je te conseillerais de joindre ton classeur ici (Zip de 50 Ko maxi) afin qu'on puisse voir ce qui ne va pas...

Cordialement.

Didier_mDF
myDearFriend-3.gif
 
E

Eric D

Guest
Bonjour Didier_mDF

J'ai essayé de spécifié avec 'ThisWorkbook' ce qui donne le même résultat ie aucun 'grrrrr'.

Pour ce qui es de faire passer le dossier, il fait ~750k0 avec la meilleur compression possible...

Les variables fap et don sont du type:

fap =C:\rep1\rep2\rep3\rep4\bnfgngnnfgn- 16 - Contrat 165 . - 200205 - sdf sdfvv.xls


don =
"Date de réservation le 20/02/2005

Organisateur : ghfgh
Adresse : gbdfgd
Contact : gdfgdfg
Tel : Bur : 00 00 00 00 00
Fax :
Portable :
Email : Sté : fgrdf@fdsf.Fr
Animation : sdf sdfvv
Lieu : bnfgngnnfgn
Contrat 165 . Date : jeudi 8 Déc, 05"

J'ai bien les bonnes valeurs car je les surveille par des ranges 'mouchards'

Que faire ???

Désolé pour la prise de tête, mais merci pour ton aide.

Eric D
 
M

myDearFriend

Guest
Re Eric D,

Bon, c'est pas mon habitude mais là, je crois qu'on ne peut faire autrement... Si tu veux tu peux me joindre ton fichier (exempt de données confidentielles) par mail, je verrai ce que je peux faire...

Cordialement.

Didier_mDF
myDearFriend-3.gif
 

Discussions similaires

Réponses
2
Affichages
332
Réponses
20
Affichages
562

Statistiques des forums

Discussions
314 017
Messages
2 104 579
Membres
109 081
dernier inscrit
Vio21