Problème de Workbooks("").Activate
Résolu
Utilisateur anonyme
-
Soli_Bio Messages postés 4 Statut Membre -
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
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
A voir également:
- Workbook activate
- Activate windows 8.1 - Guide
- Activate windows massgrave - Accueil - Windows
- Activate microsoft office - Accueil - Bureautique
- Press 4 to activate asus core unlocker ✓ - Forum Carte-mère/mémoire
- Activate easeus mobiunlock license key - Forum récupération de données
6 réponses
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+
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+
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 ?
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 ?
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+
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+
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.
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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ton code semble correct.
Est-ce que le classeur "données" s'ouvre correctement avec l'instruction
A+
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+
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.
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.