Installation macro par macro

Bonjour,

Est-il possible par l'éxécution d'une macro d'installer une macro :

dans personnal macro

de tester si module1 est créer sinon le créer

dans le module1 coller le code suivant :

sub test
msgbox("installation réussi")
end sub

Ensuite si la première question est possible serait-il possible de mettre à jour ce même code par macro en remplaçant directement les fonction au par autres méthodes ?

Merci beaucoup par avance,

Gloutoni.

Bonjour

oui cela est possible

donc dans le principe on demande a l'utilisateur de

sélectionner le fichier

j'ouvre le fichier

déprotège le vba project par macro

fait la correction du code en rajoutant les lignes oubliées

fermeture du fichier traité

a+

Fred

Option Explicit

Sub corrige_erreur_frappe()
'Dim VBComp As VBComponent
Dim Ancien As String, Nouveau As String, Cible As String
Dim WB As Workbook
Dim i As Integer
Dim nomfichier As String
Dim code, code2 As String
Dim toto

Set WB = ActiveWorkbook
'demande le fichier de validation de projet
nomfichier = Application.GetOpenFilename("Fichiers Excel (*.xlsm), *.xlsm", , "Choix du fichier ")
If nomfichier = "" Then Exit Sub
If nomfichier = "Faux" Then Exit Sub
'empeche l'execution des macros a l'ouverture du fichier
Application.EnableEvents = False
'ouverture du fichier destination
Workbooks.Open nomfichier

Application.EnableEvents = True
'deproctection du VBA project
UnprotectVBProject ActiveWorkbook, "TOTO"
DoEvents

code = code & "If tableau(i, j) Like ""*_*"" Then" & vbCr
code = code & "tab_item(UBound(tab_item) - 1) = Mid(tableau(i, j), 7, 7)" & vbCr
code = code & "Else" & vbCr
code2 = "End if" & vbCr

'recherche et corrige la ligne
If ActiveWorkbook.Name <> WB.Name Then
With ActiveWorkbook.VBProject.VBComponents("module1").CodeModule
    ' pour le remplacement d'une ligne entière
    'test ligne par ligne pour retrouvé l'endroit approprié
    For i = 100 To .CountOfLines
    Cible = .Lines(i, 1)
    If LTrim(Cible) = "For j = Range(""H1"").Column To Range(""J1"").Column Step 2" Then
        'vérifie qu'on est sur la bonne boucle
        If LTrim(.Lines(i + 2, 1)) = "If tableau(i, j) Like ""*_*"" Then" Then Exit Sub
        .InsertLines i + 2, code
        .InsertLines i + 7, code2
         ActiveWorkbook.Save
         Exit For
    End If
    Next
End With

MsgBox ("Correction du Code effectuée")
'fermture du fichier de validation avec enregistrement
Application.DisplayAlerts = False
ActiveWorkbook.Close True
Else
toto = MsgBox("vérifier les options d'excel, le projet VBA doit etre approuvé", vbExclamation)
Set WB = Nothing
End If

End Sub
Sub UnprotectVBProject(WB As Workbook, ByVal Password As String)
Dim vbProj As Object
Set vbProj = WB.VBProject
If vbProj.Protection <> 1 Then Exit Sub
Set Application.VBE.ActiveVBProject = vbProj
SendKeys Password & "~~~"
Application.VBE.CommandBars(1).FindControl(ID:=2578, recursive:=True).Execute
End Sub

Bonjour,

J'ai parcouru le tuto et je n'ai pas trouvé comment installer dans les macros personnelles.

bonjour

Installer dans les macros personnelles, jamais fait... j'ai peut-être mal compris la demande initiale....

fred

Bonjour,

Pour détailler un peu :

J'ai une macro qui doit être installer dans les macros personnelles, que je vais envoyer à pas mal de personnes et je souhaiterais créer un petit installeur qui avec un clic copie le code dans le module1 des macros personnelles.

Si le module1 existe alors copier le code à la suite sinon le créer.

Merci par avance

Rechercher des sujets similaires à "installation macro"