macro pour changer une autre macro en vba

daiman

XLDnaute Nouveau
bonjour,:D
j'ai créé une macro qui va chercher une feuille xls sur un serveur et la copie dans ma feuille xls active. sa fonctionne très bien, sauf que des fois l'adresse du serveur change, sa n'arrive pas souvent mais sa arrive. quand c'est moi qui suis là je remet à jour la nouvelle adresse du serveur mais mes collègues ne savent pas comment faire.
je voudrais créé une macro qui va changer, quand je la solicite via un bouton par exemple, l'adresse du serveur dans la macro d'origine.

voilà un morçeau de mon code:
Workbooks.Open Filename:="\\Mrf67-tw\Externe_MF67\Resultat\" & gmao & ".slk"

j'aimerais que la macro, via un userform, change uniquement "\\Mrf67-tw\Externe_MF67\Resultat\".
merci d'avance
 

Pierrot93

XLDnaute Barbatruc
Re : macro pour changer une autre macro en vba

Re

A ma connaissance, pas moyen d'activer cette option par le code, du reste heureusement, sinon bonjour la sécurité... Mais maintenant va savoir....

@Skun

Exemple ci dessous pour supprimer le code présent dans le module de la feuille active, placé dans ce même module ce code "s'autodétruira" :

A noter si ton vba est protégé, il y aura sans doute lieu de le dé-protéger.
Code:
Sub Test()
Dim i As Long
i = ThisWorkbook.VBProject.VBComponents(ActiveSheet.Name).CodeModule.CountOfLines
ThisWorkbook.VBProject.VBComponents(ActiveSheet.Name).CodeModule.DeleteLines 1, i
End Sub

bon après midi
@+
 

Cousinhub

XLDnaute Barbatruc
Re : macro pour changer une autre macro en vba

Bonjour,

Bonjour Pierrot :)

@ sebkil28

Modifier une clé dans la base de Registre ne me semble pas une bonne idée....
Bien que cela soit possible, mais très dangereux....
Il vaut mieux que la personne modifie par elle-même dans Excel...

Par contre, à l'ouverture du fichier, sur un autre poste, tu peux vérifier si la clé a la bonne valeur....

Fonctionne sous 2003 et 2007, mais pas sûr que cela fonctionne dans les versions précédentes...

A l'ouverture du fichier :

Code:
Private Sub Workbook_Open()
Dim ObjShell As Object, Clé$
Dim Ver
Ver = Application.Version

Set ObjShell = CreateObject("WScript.Shell")
Clé = "HKEY_CURRENT_USER\Software\Microsoft\Office\" & Ver & "\Excel\Security\AccessVBOM"
On Error Resume Next
If ObjShell.RegRead(Clé) = 0 Then
    MsgBox "Veuillez Modifier dans Outils/Macros/Sécurité :" & Chr(10) & " Faire Confiance au Projet Visual Basic" & Chr(10) & " Puis Fermer Excel et Redémarrer"
End If
Set ObjShell = Nothing
End Sub
 

skun

XLDnaute Occasionnel
Re : macro pour changer une autre macro en vba

Salut le fil !

Merci pour se code !

Code:
Sub Test()
Dim i As Long
i = ThisWorkbook.VBProject.VBComponents(ActiveSheet.Name).CodeModule.CountOfLines
ThisWorkbook.VBProject.VBComponents(ActiveSheet.Name).CodeModule.DeleteLines 1, i
End Sub

Mais j'aimerai que ce code ne se déclanche que lors de l'ouverture du fichier, si la date de l'ordinateur dépasse une date prédéfini dans le code. Est ce possible?

merci d'avance !!

PS: sachant que mon dossier macro doit rester vérouiller, comment puis faire en sorte que ma macro le dévérouille avant son lancement, puis le revérouille aprés, avec le meme mot de passe svp?

mici


skun
 
Dernière édition:

skun

XLDnaute Occasionnel
Re : macro pour changer une autre macro en vba

Bonjour !

Pierrot, j'ai essayé le code, mais ca ne marche pas :s

y a t il des choses à adapter? comme le nom de la fueille ou du module?

faut il que je mette ce code dans un module ou une fueille?

je te remercie !


skun
 

Pierrot93

XLDnaute Barbatruc
Re : macro pour changer une autre macro en vba

Bonjour Skun

En l'état ce code est à utiliser dans le module d'une feuille, mais attention le nom de ton onglet doit être égal au "codename" de la feuille, si ce n'est pas le cas, modifies dans le code "ActiveSheet.Name" par "ActiveSheet.CodeName".

bonne journée
@+
 

skun

XLDnaute Occasionnel
Re : macro pour changer une autre macro en vba

Re,
euh..j'ai honte mais je n'y arrive pas , j'ai du mal à comprendre pourtant ca parrait simple... j'ai du mal ce matin:eek:

je joint un petit fichier exemple si tu peux me l'adapter que je compreinne, parce je suis dans le flou :(

merci d'avance !


skun
 

Pièces jointes

  • Exemple.xls
    42 KB · Affichages: 82
  • Exemple.xls
    42 KB · Affichages: 71
  • Exemple.xls
    42 KB · Affichages: 91

Pierrot93

XLDnaute Barbatruc
Re : macro pour changer une autre macro en vba

Re

le code dans le module 3 fonctionne très bien chez moi, il efface bien celui présent dans le module de la feuille...

as tu bien fait ceci :

Si j'ai bien compris, pour moi ce n'est pas un problème de "référence" mais option au niveau de la sécurité. Dans la barre de menu Excel => Outils => Macro => sécurité => onglet "éditeurs approuvés, il faut cocher la case "faire confiance au projet visual basic".

bon après midi
@+
 

Pierrot93

XLDnaute Barbatruc
Re : macro pour changer une autre macro en vba

Re,

A noter que si tu attends qu'elle se déclenche à l'ouverture, cela ne se produira que demain car tu fais un test sur le fait que la date du jour soit supérieure au 30 juin 2009....
 

Discussions similaires

Réponses
12
Affichages
304

Statistiques des forums

Discussions
312 559
Messages
2 089 639
Membres
104 235
dernier inscrit
Floflodu37