Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Compilation macro

19 réponses
Avatar
jenesaispaspourquoi
Bonjour le forum,

Afin de terminer un classeur, je souhaite compiler plusieurs actions dans une macro, mais n'arrive pas à coder certains éléments, je m'explique:

Fichier A
Fichier B

A partir du fichier A, je souhaite:

-Copier la cellule H5 de la feuille "un"
-Ouvrir le fichier B qui est protégé à l'ouverture par MDP
-Coller texte cellule H5 dans la fenêtre MDP du fichier B
-Annuler la copie
-Activer "OK" de la fenêtre MDP du fichier B
-Faire un RAZ cellules H5;E7;E9 du fichier A
-Sélectionner E7 fichier A
-Enregistrer et fermer fichier A.

La partie qui me fait défaut se situe après l'ouverture du fichier B jusqu'au RAZ.
Quelqu'un aurait-il des suggestions pour cette partie et la compilation de tout ceci ?

Merci pour votre aide.

Cordialement

10 réponses

1 2
Avatar
DanielCo
Bonjour,
Le mieux, et le plus formateur pour toi, est de te servir de
l'enregistreur de macro. Reviens ensuite avec le code généré et on
t'aidera à le débarasser de ses scories.
Cordialement.
Daniel


Bonjour le forum,

Afin de terminer un classeur, je souhaite compiler plusieurs actions dans une
macro, mais n'arrive pas à coder certains éléments, je m'explique:

Fichier A
Fichier B

A partir du fichier A, je souhaite:

-Copier la cellule H5 de la feuille "un"
-Ouvrir le fichier B qui est protégé à l'ouverture par MDP
-Coller texte cellule H5 dans la fenêtre MDP du fichier B
-Annuler la copie
-Activer "OK" de la fenêtre MDP du fichier B
-Faire un RAZ cellules H5;E7;E9 du fichier A
-Sélectionner E7 fichier A
-Enregistrer et fermer fichier A.

La partie qui me fait défaut se situe après l'ouverture du fichier B jusqu'au
RAZ.
Quelqu'un aurait-il des suggestions pour cette partie et la compilation de
tout ceci ?

Merci pour votre aide.

Cordialement
Avatar
FxM
Bonjour,

Vois du coté de ...
Workbooks.Open Filename:="C:x.xls", Password:="zaza"

@+
FxM


Le 06/11/2014 10:51, jenesaispaspourquoi a écrit :
Bonjour le forum,

Afin de terminer un classeur, je souhaite compiler plusieurs actions dans une
macro, mais n'arrive pas à coder certains éléments, je m'explique:

Fichier A
Fichier B

A partir du fichier A, je souhaite:

-Copier la cellule H5 de la feuille "un"
-Ouvrir le fichier B qui est protégé à l'ouverture par MDP
-Coller texte cellule H5 dans la fenêtre MDP du fichier B
-Annuler la copie
-Activer "OK" de la fenêtre MDP du fichier B
-Faire un RAZ cellules H5;E7;E9 du fichier A
-Sélectionner E7 fichier A
-Enregistrer et fermer fichier A.

La partie qui me fait défaut se situe après l'ouverture du fichier B jusqu'au
RAZ.
Quelqu'un aurait-il des suggestions pour cette partie et la compilation de tout
ceci ?

Merci pour votre aide.

Cordialement

Avatar
jenesaispaspourquoi
Le jeudi 06 Novembre 2014 à 10:51 par jenesaispaspourquoi :
Bonjour le forum,

Afin de terminer un classeur, je souhaite compiler plusieurs actions dans une
macro, mais n'arrive pas à coder certains éléments, je
m'explique:

Fichier A
Fichier B

A partir du fichier A, je souhaite:

-Copier la cellule H5 de la feuille "un"
-Ouvrir le fichier B qui est protégé à l'ouverture par
MDP
-Coller texte cellule H5 dans la fenêtre MDP du fichier B
-Annuler la copie
-Activer "OK" de la fenêtre MDP du fichier B
-Faire un RAZ cellules H5;E7;E9 du fichier A
-Sélectionner E7 fichier A
-Enregistrer et fermer fichier A.

La partie qui me fait défaut se situe après l'ouverture du
fichier B jusqu'au RAZ.
Quelqu'un aurait-il des suggestions pour cette partie et la compilation de tout
ceci ?

Merci pour votre aide.

Cordialement


Bonjour DanielCo,

Merci pour votre réponse.
C'est justement ce que j'ai fait, mais le code n'est qu'à moitié...
L'enregistreur ne colle pas dans la fenêtre etc...
Il reprend à la suppression.
Ci-dessous code généré:

Sub Macro1()
Range("H5").Select
Selection.Copy
Windows("classement.xlsm").Activate
Application.CutCopyMode = False
Selection.ClearContents
End Sub

Je ne comprends pas que l'enregistreur ne prenne pas tout.

Merci pour vos suggestions.

Cordialement
Avatar
jenesaispaspourquoi
Le jeudi 06 Novembre 2014 à 10:51 par jenesaispaspourquoi :
Bonjour le forum,

Afin de terminer un classeur, je souhaite compiler plusieurs actions dans une
macro, mais n'arrive pas à coder certains éléments, je
m'explique:

Fichier A
Fichier B

A partir du fichier A, je souhaite:

-Copier la cellule H5 de la feuille "un"
-Ouvrir le fichier B qui est protégé à l'ouverture par
MDP
-Coller texte cellule H5 dans la fenêtre MDP du fichier B
-Annuler la copie
-Activer "OK" de la fenêtre MDP du fichier B
-Faire un RAZ cellules H5;E7;E9 du fichier A
-Sélectionner E7 fichier A
-Enregistrer et fermer fichier A.

La partie qui me fait défaut se situe après l'ouverture du
fichier B jusqu'au RAZ.
Quelqu'un aurait-il des suggestions pour cette partie et la compilation de tout
ceci ?

Merci pour votre aide.

Cordialement


Bonjour FxM,

Merci pour votre réponse.
Apparemment nos posts se sont croisés.
Je souhaite autant que possible ne pas faire apparaitre le mot de passe dans le code de la macro.
Est-ce possible ?

Merci pour vos suggestions.

Cordialement
Avatar
MichD
Bonjour,

Un exemple de macro. Tu dois adapter le nom feuille, des objets "Range",
et bien sûr le nom et le chemin du fichier à ouvrir

'---------------------------------------------------------------------------
Sub test()
Dim WkaOuvrir As Workbook, X As Variant

'Empêche le rafraichissement de l'écran
'durant le traitement
Application.ScreenUpdating = False

Set WkaOuvrir = Workbooks.Open(Filename:="c:leCheminMonClasseur.xlsm",
Password:="toto")

'Dans le classeur où tu as écrit la fonction
With ThisWorkbook
'avec la feuille "Feuil1" de ce classeur
With .Worksheets("Feuil1")
'Met dans la variable X, la valeur de la cellule
'que tu veux copier dans le classeur que tu viens d'ouvrir
X = .Range("A25")
End With
End With

'Avec le classeur que tu viens d'ouvrir
With WkaOuvrir
'dans la feuille "Feuil2"
With .Worksheets("Feuil2")
'Désactive les macros événementielles
Application.EnableEvents = False
'tu affectes à cette cellule la valeur X
'Ceci insérera que la valeur, pas de format ou formule.
.Range("G25") = X
'Réactive les macros événementielles
Application.EnableEvents = True
End With
'Fermeture du classeur que tu viens d'ouvrir
'en effectuant une sauvegarde.
.Close True
End With

Application.ScreenUpdating = True
End Sub
'---------------------------------------------------------------------------
Avatar
jenesaispaspourquoi
Le jeudi 06 Novembre 2014 à 10:51 par jenesaispaspourquoi :
Bonjour le forum,

Afin de terminer un classeur, je souhaite compiler plusieurs actions dans une
macro, mais n'arrive pas à coder certains éléments, je
m'explique:

Fichier A
Fichier B

A partir du fichier A, je souhaite:

-Copier la cellule H5 de la feuille "un"
-Ouvrir le fichier B qui est protégé à l'ouverture par
MDP
-Coller texte cellule H5 dans la fenêtre MDP du fichier B
-Annuler la copie
-Activer "OK" de la fenêtre MDP du fichier B
-Faire un RAZ cellules H5;E7;E9 du fichier A
-Sélectionner E7 fichier A
-Enregistrer et fermer fichier A.

La partie qui me fait défaut se situe après l'ouverture du
fichier B jusqu'au RAZ.
Quelqu'un aurait-il des suggestions pour cette partie et la compilation de tout
ceci ?

Merci pour votre aide.

Cordialement


Bonjour MichD,

Merci pour votre réponse, mais elle ne correspond pas à mon attente actuelle.
Je souhaite que mon code "mot de passe" contenu dans mon fichier A soit directement collé dans la boite de dialogue "Mot de passe" du fichier B à l'ouverture de ce dernier.
En revanche, je garde cette macro de côté.

Merci pour vos suggestions.

Cordialement
Avatar
MichD
Tu peux expliquer pourquoi tu veux copier toi-même le mot de passe dans la
fenêtre?

Si tu veux te compliquer la vie,

Supposons que tu as mis un mot de passe pour lecture seule et pour modifier
le fichier
lorsque tu as enregistré ton fichier

Il faut exécuter le code à partir l'interface de la feuille de calcul.
Dans mon exemple, j'ai mis le même mot de passe pour les 2 conditions
'------------------------------------------------------
Sub test()
Dim WkaOuvrir As Workbook, X As Variant
Dim MotDePasse As String

MotDePasse = "toto"

'Empêche le rafraichissement de l'écran
'durant le traitement
Application.ScreenUpdating = False

SendKeys "toto" & "~"
SendKeys "toto" & "~"
Set WkaOuvrir = Workbooks.Open(Filename:="C:CheminFichier.xlsm")

Le reste de la macro
'-----------------------------------------------------------------------



"jenesaispaspourquoi" a écrit dans le message de groupe de discussion :


Le jeudi 06 Novembre 2014 à 10:51 par jenesaispaspourquoi :
Bonjour le forum,

Afin de terminer un classeur, je souhaite compiler plusieurs actions dans
une
macro, mais n'arrive pas à coder certains éléments, je
m'explique:

Fichier A
Fichier B

A partir du fichier A, je souhaite:

-Copier la cellule H5 de la feuille "un"
-Ouvrir le fichier B qui est protégé à l'ouverture par
MDP
-Coller texte cellule H5 dans la fenêtre MDP du fichier B
-Annuler la copie
-Activer "OK" de la fenêtre MDP du fichier B
-Faire un RAZ cellules H5;E7;E9 du fichier A
-Sélectionner E7 fichier A
-Enregistrer et fermer fichier A.

La partie qui me fait défaut se situe après l'ouverture du
fichier B jusqu'au RAZ.
Quelqu'un aurait-il des suggestions pour cette partie et la compilation de


tout
ceci ?

Merci pour votre aide.

Cordialement


Bonjour MichD,

Merci pour votre réponse, mais elle ne correspond pas à mon attente
actuelle.
Je souhaite que mon code "mot de passe" contenu dans mon fichier A soit
directement collé dans la boite de dialogue "Mot de passe" du fichier B à
l'ouverture de ce dernier.
En revanche, je garde cette macro de côté.

Merci pour vos suggestions.

Cordialement
Avatar
jenesaispaspourquoi
Le jeudi 06 Novembre 2014 à 10:51 par jenesaispaspourquoi :
Bonjour le forum,

Afin de terminer un classeur, je souhaite compiler plusieurs actions dans une
macro, mais n'arrive pas à coder certains éléments, je
m'explique:

Fichier A
Fichier B

A partir du fichier A, je souhaite:

-Copier la cellule H5 de la feuille "un"
-Ouvrir le fichier B qui est protégé à l'ouverture par
MDP
-Coller texte cellule H5 dans la fenêtre MDP du fichier B
-Annuler la copie
-Activer "OK" de la fenêtre MDP du fichier B
-Faire un RAZ cellules H5;E7;E9 du fichier A
-Sélectionner E7 fichier A
-Enregistrer et fermer fichier A.

La partie qui me fait défaut se situe après l'ouverture du
fichier B jusqu'au RAZ.
Quelqu'un aurait-il des suggestions pour cette partie et la compilation de tout
ceci ?

Merci pour votre aide.

Cordialement


MichD,

Je ne veux pas copier moi-même la cellule, je souhaite que cela se fasse automatiquement sans que le mot de passe soit inscrit dans la macro.
En apparence cela semble simple, mais je crois que ça a l'air beaucoup plus compliqué à mettre en oeuvre.
Je joins deux fichiers exemple:

Merci pour votre aide.

Cordialement

http://cjoint.com/?3Kgr0SMsqaS
http://cjoint.com/?3Kgr1usCG4N
Avatar
MichD
Dans ton classeur "Protect1.xlsm", copie dans un MODULE STANDARD cette macro
:

Attache cette macro à un bouton émanant de la barre d'outils formulaire si
tu veux...

Tu dois OBLIGATOIREMENT lancer la macro à partir de l'interface de calcul
soit par le bouton ou par la fenêtre des macros... Alt + F8

La macro ouvre le fichier "Protect2.xlsm" et copie le contenu de la cellule
H5 de la feuille "Un" du classeur "Protect1" vers la cellule E7 de la
feuille "Feuil1" du classeur Protect2.xlsm

Avec ça, tu devrais pouvoir te débrouiller!

'---------------------------------------------------------------------
Sub test()
Dim WkaOuvrir As Workbook, X As Variant
Dim MotDePasse As String

MotDePasse = "123"

'Empêche le rafraichissement de l'écran
'durant le traitement
Application.ScreenUpdating = False

SendKeys MotDePasse & "~"
Set WkaOuvrir =
Workbooks.Open(Filename:="C:UsersDenisDownloadsS_protect2.xlsm")

'Dans le classeur où tu as écrit la fonction
With ThisWorkbook
'avec la feuille "Feuil1" de ce classeur
With .Worksheets("Un")
'Met dans la variable X, la valeur de la cellule
'que tu veux copier dans le classeur que tu viens d'ouvrir
X = .Range("H5")
End With
End With

'Avec le classeur que tu viens d'ouvrir
With WkaOuvrir
'dans la feuille "Feuil2"
With .Worksheets("Feuil1")
.Select
'Désactive les macros événementielles
Application.EnableEvents = False
'tu affectes à cette cellule la valeur X
'Ceci insérera que la valeur, pas de format ou formule.
.Range("E7").Select
.Range("E7") = X
'Réactive les macros événementielles
Application.EnableEvents = True
End With
'Fermeture du classeur que tu viens d'ouvrir
'en effectuant une sauvegarde.
.Close True
End With

Application.ScreenUpdating = True
End Sub
'---------------------------------------------------------------------
Avatar
jenesaispaspourquoi
Le jeudi 06 Novembre 2014 à 10:51 par jenesaispaspourquoi :
Bonjour le forum,

Afin de terminer un classeur, je souhaite compiler plusieurs actions dans une
macro, mais n'arrive pas à coder certains éléments, je
m'explique:

Fichier A
Fichier B

A partir du fichier A, je souhaite:

-Copier la cellule H5 de la feuille "un"
-Ouvrir le fichier B qui est protégé à l'ouverture par
MDP
-Coller texte cellule H5 dans la fenêtre MDP du fichier B
-Annuler la copie
-Activer "OK" de la fenêtre MDP du fichier B
-Faire un RAZ cellules H5;E7;E9 du fichier A
-Sélectionner E7 fichier A
-Enregistrer et fermer fichier A.

La partie qui me fait défaut se situe après l'ouverture du
fichier B jusqu'au RAZ.
Quelqu'un aurait-il des suggestions pour cette partie et la compilation de tout
ceci ?

Merci pour votre aide.

Cordialement


MichD,

Je vous remercie pour vos réponses.

Mais à la place de:

MotDePasse = "123"

Y a t-il possibilité qu'à la place de "123", il y ait quelque chose comme:

MotDePasse = Worksheets("Un").Range("H5") ?

Car je ne souhaite pas que le mot de passe apparaisse dans le code VBA.

Merci pour votre aide.

Cordialement
1 2