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

  1. 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
  2. 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
  3. 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
  4. 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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. 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
  7. 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