Problème de Workbooks("").Activate

Résolu/Fermé
Utilisateur anonyme - 8 déc. 2014 à 10:38
Soli_Bio Messages postés 4 Date d'inscription lundi 8 décembre 2014 Statut Membre Dernière intervention 8 décembre 2014 - 8 déc. 2014 à 13:41
Bonjour,

Pour expliquer mon problème rapidement :
J'utilise une macro pour mettre à jours plusieurs classeurs Excel.
J'ai un classeur "données" sur lequel je retrouve toutes les informations nécessaires.
A partir d'un second classeur "Module" je dois faire un transfert d'informations vers "Données".

J'ouvre donc le classeur "Données" en VBA à partir du 2nd après avoir mis en mémoire toutes les informations.

Mon problème c'est que je ne peux pas écrire les variables dans le classeur "Données" car malgré le fait qu'il soit actif, il ne s'affiche pas dans Excel et le classeur "Module" est toujours présent.

Je ne suis pas sûr d'être très clair mais si quelqu'un peut m'aider.

Merci

6 réponses

Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
8 déc. 2014 à 11:00
Bonjour,

Il n'est pas nécessaire que ton classeur "Données" soit activé pour pouvoir lui affecter des données.
Si ton classeur "Données" est ouvert, il suffit de spécifier sa référence.
Exemple pour la copie de la valeur de Module!A1 dans Données!A1

Worksheets("Données").Range("A1").value=Worksheets("Module").Range("A1").value

A+
0
Merci pour la rapidité de réponse.

J'ai un autre petit soucis la feuille sur lequel je veux copier les infos est protéger.

Workbooks(Nom_Str).Sheets("Formules").Unprotect ("Formules") ne fonctionne pas.

PS : Le nom de ma feuille est variable d'ou Nom_Str

Et pour mon informations persos, pourquoi je ne peux pas rendre le classeur données actif ?
0
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
8 déc. 2014 à 12:29
Ce n'est pas clair.
Nom_Str est-il le nom du classeur ou de la feuille ?

J'aurais mieux compris avec :
Workbooks("Données.xlsm").Sheets(Nom_Str).Unprotect

Je n'ai pas dit que tu ne peux pas rendre le classeur "Données" actif.
J'ai simplement dit que ce n'est pas nécessaire... voire inutile... voire déconseillé.


A+
0
Soli_Bio Messages postés 4 Date d'inscription lundi 8 décembre 2014 Statut Membre Dernière intervention 8 décembre 2014
8 déc. 2014 à 12:49
Je travail sur des dossier client, le nom du fichier est variable selon le client.

Données - A - b.xlsm

Nom_Str est le nom variable de mon classeur "données".

Le nom de la feuille est "Formules"

Cette feuille est protégée par le code "Formules" (évite les oublie de code)

Je veux pouvoir écrire sur cette feuille des variables présentent dans un autres classeurs.

Extrait de la macro

'Ouvre la feuille Données

Set wbExcel = Workbooks.Open("S:\6 - SUIVI CLIENTS\2 - DEBIT à Faire\(2) Feuille de Débit\Débit (essai)\" & Nom_Ref & "\" & Nom_Str)

Application.Workbooks(Nom_Str).Activate

Sheets("Formules").Select

Workbooks(Nom_Str).Sheets("Formules").Unprotect ("Formules")

Workbooks(Nom_Str).Sheets("Formules").Cells(12, 1).Value = Limite

Workbooks(Nom_Str).Close

La macro ne parvient pas à écrire dans la feuille formule.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
8 déc. 2014 à 13:20
Ton code semble correct.
Est-ce que le classeur "données" s'ouvre correctement avec l'instruction
Set wbExcel = Workbooks.Open("S:\6 - SUIVI CLIENTS\2 - DEBIT à Faire\(2) Feuille de Débit\Débit (essai)" & Nom_Ref & "" & Nom_Str)
?

A+
0
Soli_Bio Messages postés 4 Date d'inscription lundi 8 décembre 2014 Statut Membre Dernière intervention 8 décembre 2014
Modifié par Soli_Bio le 8/12/2014 à 13:42
Je pense avoir trouvé le problème.

Je gère la fermeture du classeur avec une macro pour la sauvegarde et avec quelques modification cela fonctionne correctement.

Lorsque je ferme un classeur il met à jours le second afin d'avoir toujours les dernières informations. Je pense que cela à créé une boucle d'ou les erreurs.

J'ai donc une variable public qui gère les mise à jours.
0