Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/09/2011, 00h35   #1
Invité régulier
 
Inscription : mars 2011
Messages : 49
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 49
Points : 7
Points : 7
Par défaut mise à jour automatique d'un classeur par un code vba

Bonsoir forum
j'aimerai savoir comment peut on faire la mise ajour automatique des données d'un classeur qui sont les données d'un autre classeur par un code vba pour éviter la manipulation de mettre à jour les données de classeur par la boite de dialogue qui s'affiche lors de l'ouverture de classeur , le problème qui se pose est que le classeur source est fermé et protégé donc pour faire la mise a jour une boite de dialogue demande le mots de passe de classeur source pour éviter ce problème , j'ai pensé à un code qui permet d'ouvrir le classeur source des que le classeur de l'application est ouvert ,déprotéger le classeur source , puis ferme ce classeur et à la fermeture de classeur application on ouvre de nouveau le classeur source et on le protégé par l'ancien mots passe .
j'aimerai juste deprotége le classeur source avnat la mise à jour de données de classeur application et aprées la mise a jour , j'aimeria le protéger de nouveau
voici le code que je l'ai fait mais il ne repond pas à mes besoins
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Private Sub Workbook_Open()
'deprotégeer le classeur source
Workbooks.Open Filename:="C:\Users\agora\Desktop\data base.xls", Password:="1111
 
    ActiveWorkbook.Password = ""
Workbooks("data base.xls").Close
'mise à jour de classeur aplication (j'ai pas touvé un code pour cette étape)
 
 
 
 
'proégé de nouveau classeur source
 
Workbooks.Open Filename:="C:\Users\agora\Desktop\data base.xls", Password:="1111"
ActiveWorkbook.Protect (1111)
Workbooks("data base.xls").Close
 
End Sub
frihat mohamed est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/09/2011, 08h46   #2
Expert Confirmé Sénior
 
Avatar de jfontaine
 
Homme Jérôme FONTAINE
Contrôleur de Gestion
Inscription : juin 2006
Messages : 3 894
Détails du profil
Informations personnelles :
Nom : Homme Jérôme FONTAINE
Âge : 38
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Contrôleur de Gestion

Informations forums :
Inscription : juin 2006
Messages : 3 894
Points : 7 178
Points : 7 178
Bonjour,

pour manipuler un classeur on l'ouvre dans une variable objet de type Workbook comme ci dessous.

Code :
1
2
3
4
5
6
7
8
9
10
11
 
Dim wrk As Workbook
 
'ouverture du classeur
Set wrk = Application.Workbooks.Open("C:\Users\agora\Desktop\data base.xls", , , , "1111", "1111")
 
'manipulation des données
MsgBox wrk.Sheets("Feuil1").Range("A1").Value
 
'Fermeture du classeur
Wrk.Close
__________________
Jérôme

Citation:
"Ils ne savaient pas que c'était impossible, alors ils l'ont fait" - Marc Twain
Si la réponse répond à votre besoin, votre vote nous encouragera.
Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
jfontaine est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 02/09/2011, 14h43   #3
Invité régulier
 
Inscription : mars 2011
Messages : 49
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 49
Points : 7
Points : 7
merci le probléme est que le classeur source ets fermé et protégé , je veux que la mise à jour du classeur soit automatique à l'ouverture de classeur application sans affichage de boite de dialogue de mise a jour
frihat mohamed est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/09/2011, 15h11   #4
Expert Confirmé Sénior
 
Avatar de jfontaine
 
Homme Jérôme FONTAINE
Contrôleur de Gestion
Inscription : juin 2006
Messages : 3 894
Détails du profil
Informations personnelles :
Nom : Homme Jérôme FONTAINE
Âge : 38
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Contrôleur de Gestion

Informations forums :
Inscription : juin 2006
Messages : 3 894
Points : 7 178
Points : 7 178
La ligne ci dessous ouvez un classeur qui est protégé par un mot de passe = 1111
Code :
Set wrk = Application.Workbooks.Open("C:\Users\agora\Desktop\data base.xls", , , , "1111", "1111")
Est ce que tu connais le mot de passe du fichier à ouvrir?
__________________
Jérôme

Citation:
"Ils ne savaient pas que c'était impossible, alors ils l'ont fait" - Marc Twain
Si la réponse répond à votre besoin, votre vote nous encouragera.
Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
jfontaine est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 02/09/2011, 16h35   #5
Invité régulier
 
Inscription : mars 2011
Messages : 49
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 49
Points : 7
Points : 7
j'ai des données dans un classeur "application" ces données sont en fonction d'autres données d'un autre classeur "data base"
lorsque j'ouvre le classeur application nue boite de dialogue est affichée , elle me demande si je veux mettre à jour les données si je réponds par oui ielle me demande le mots de passe de classeur source qui est égale a 1111
le problème est que l'utilisateur de le classeur "application " ne doit pas connaitre ce mots de passe car dans le classeur source data base il y' a des données confidentielles. donc j'aimerai un code vba qui permet de mettre a jour les données de le classeur application sans l'affichage de la boite de dialogue qui demande la mise a jour par le pots de passe de classeur source
merci
frihat mohamed est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/09/2011, 16h53   #6
Expert Confirmé Sénior
 
Avatar de jfontaine
 
Homme Jérôme FONTAINE
Contrôleur de Gestion
Inscription : juin 2006
Messages : 3 894
Détails du profil
Informations personnelles :
Nom : Homme Jérôme FONTAINE
Âge : 38
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Contrôleur de Gestion

Informations forums :
Inscription : juin 2006
Messages : 3 894
Points : 7 178
Points : 7 178
Dans ce cas qu'est ce qui te bloque dans le code proposé?
__________________
Jérôme

Citation:
"Ils ne savaient pas que c'était impossible, alors ils l'ont fait" - Marc Twain
Si la réponse répond à votre besoin, votre vote nous encouragera.
Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
jfontaine est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 02/09/2011, 18h25   #7
Expert Confirmé
 
Homme Philippe
ex Observeur CGG / Analyste prog.
Inscription : juin 2006
Messages : 1 704
Détails du profil
Informations personnelles :
Nom : Homme Philippe
Localisation : France, Finistère (Bretagne)

Informations professionnelles :
Activité : ex Observeur CGG / Analyste prog.

Informations forums :
Inscription : juin 2006
Messages : 1 704
Points : 3 625
Points : 3 625
Salut, ajouter qqch comme
à Open ....
__________________
Pensez à Voter, d'avance merci. ( Pouces en bas à la droite de Citer )
Balisez votre code après l'avoir indenté sous Excel via Smart Indenter
Autre utilitaire : MZ Tools 3.0 VBA

Contribution : Excel / Word / PDF avec Adobe Acrobat Pro / PDFCreator 1 2
kiki29 est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 02/09/2011, 18h37   #8
Invité régulier
 
Inscription : mars 2011
Messages : 49
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 49
Points : 7
Points : 7
MERCI POUR VOTRE REPONSE
le code proposé ne réponds pas a mes besoins
j'ai expliqué que j'aimerai un code pour mettre à jour les données du classeur application a partir d'un classeur source qui est fermé et protégé pae le mots de passe 1111

Code :
1
2
3
 
'manipulation des données
MsgBox wrk.Sheets("Feuil1").Range("A1").Value
a quoi sert l'affichage de ce message ??
frihat mohamed est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/09/2011, 19h10   #9
Expert Confirmé Sénior
 
Avatar de jfontaine
 
Homme Jérôme FONTAINE
Contrôleur de Gestion
Inscription : juin 2006
Messages : 3 894
Détails du profil
Informations personnelles :
Nom : Homme Jérôme FONTAINE
Âge : 38
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Contrôleur de Gestion

Informations forums :
Inscription : juin 2006
Messages : 3 894
Points : 7 178
Points : 7 178
Cette ligne est un exemple te permettant de voir que ton fichier protégré c'est bien ouvert.
A toi d'appliquer tes mise a jour suivant ton besoin

exemple
Code :
1
2
 
Sheets("Mafeuille").Range("A2").value = Wrk.Sheets("Source").Range("C6").Value
__________________
Jérôme

Citation:
"Ils ne savaient pas que c'était impossible, alors ils l'ont fait" - Marc Twain
Si la réponse répond à votre besoin, votre vote nous encouragera.
Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
jfontaine est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h36.


 
 
 
 
Partenaires

Hébergement Web