![]() |
|
Forum
|
|
|
#1 (permalink) |
|
Guest
Messages: n/a
|
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 |
| ANNONCES | |||
|
|
|
|
#2 (permalink) |
|
Guest
Messages: n/a
|
Bonsoir Eric D,
Ci-dessous une procédure qui devrait faire ce que j'ai cru comprendre de ta demande d'origine... 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 ![]() |
|
|
#3 (permalink) |
|
Guest
Messages: n/a
|
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 |
|
|
#4 (permalink) |
|
Guest
Messages: n/a
|
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 ![]() |
|
|
#7 (permalink) |
|
Guest
Messages: n/a
|
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").Valu e = 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 |
|
|
#8 (permalink) |
|
Guest
Messages: n/a
|
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 ![]() |
|
|
#9 (permalink) |
|
Guest
Messages: n/a
|
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 |
|
|
#10 (permalink) |
|
Guest
Messages: n/a
|
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 ![]() |
| ANNONCES | |
| Liens sociaux |
| Outils de la discussion | |
|
|