Problème de Workbooks("").Activate

Résolu
Utilisateur anonyme -  
Soli_Bio Messages postés 4 Statut Membre -
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 3360 Statut Membre 526
 
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
Utilisateur anonyme
 
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 3360 Statut Membre 526
 
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 Statut Membre
 
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 3360 Statut Membre 526
 
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 Statut Membre
 
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