Problème de Workbooks("").Activate

Résolu
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. 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
    1. 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
      1. 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
        1. 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
          1. 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
            1. 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