IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Modifier une macro avec une autre


Sujet :

Macros et VBA Excel

  1. #21
    Membre à l'essai
    Inscrit en
    Mars 2004
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 28
    Points : 13
    Points
    13
    Par défaut
    Bon bon bon, j'ai du nouveau.

    Et c'est n'importe quoi, je comprends pas tout... Quand j'exécute ma fonction d'unlock seule, sans faire de modif après, elle fonctionne (lentement et je perds pendant quelques secondes le contrôle de la souris mais bon, passons).

    Par contre, après, j'ai à nouveau un souci avec le nom de ma feuille, comme au début de ce post !!

    Voilà ce que je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Workbooks(WRK_FN).Activate
    UnprotectVBProject Workbooks(WRK_FN), "97654321"
    Ma fonction Unprotect :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    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 & "~~" & "{ESC}"
       Application.VBE.CommandBars(1).FindControl(ID:=2578, recursive:=True).Execute
     
    End Sub
    Et le code qui suit l'appel à la fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    With Workbooks(Range("H12").Text).VBProject.VBComponents("Sheet2").CodeModule
           .ReplaceLine 16, "Worksheets(""BCS Information"").Range(""A1:CC6000"").Select"
        End With
    Et je me ramasse une erreur 9 "l'indice n'appartient pas à la sélection", plus une box qui me réclame (encore !) mon mot de passe. C'est à n'y rien comprendre, puisque la fonction Unprotect fonctionne seule...

  2. #22
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Déjà, je ne vois pas à quoi te sert cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.VBE.CommandBars(1).FindControl(ID:=2578, recursive:=True).Execute
    "chez moi" elle affiche le menu "Propriétés de VBAProject"
    Pour moi, elle ne sert à rien (et, avec ou sans, ça ne change rien au niveau de la protection)
    Pour ton pb. Quand tu mets ces lignes
    With Workbooks(Range("H12").Text).VBProject.VBComponents("Sheet2").CodeModule
    .ReplaceLine 16, "Worksheets(""BCS Information"").Range(""A1:CC6000"").Select"
    End With
    Ton classeur est-il ouvert ? S'il ne l'est pas, ton message d'erreur a raison, t'as une erreur
    S'il est ouvert, pour ces mêmes lignes, essaie en créant une instance de ton book
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim CL1 as workbook
    Set CL1 = Workbooks(Range("H12").Text)
    With CL1.VBProject.VBComponents("Sheet2").CodeModule
           .ReplaceLine 16, "Worksheets(""BCS Information"").Range(""A1:CC6000"").Select"
    End With
    A... tout... hasard...
    Quand nous joins-tu ton fichier ?
    A+

  3. #23
    Membre à l'essai
    Inscrit en
    Mars 2004
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 28
    Points : 13
    Points
    13
    Par défaut
    J'ai retiré la ligne en question, c'est déjà ça, merci.

    Ensuite, j'ai fait quelques modifs et j'ai à nouveau une erreur qui me dit que mon projet doit être deverrouillé pour effectué ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    With CL1.VBProject.VBComponents("Sheet2").CodeModule
    Je joins mon fichier de correction pack( l'autre est trop gros (14 Mo)), qui de toute façon est sensé fonctionner sur n'importe quel classeur, pour la partie deverrouillage du code.

    Merci
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/04/2015, 11h17
  2. [XL-2010] Modifier une macro avec une autre macro
    Par bifconsult dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/03/2012, 15h30
  3. [XL-2003] Désactiver une macro avec une macro
    Par Sibuxian dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 29/10/2010, 00h54
  4. [XL-2002] Macro de comparaison d'une cellule d'une feuille avec une cellule d'une autre feuille.
    Par steelydan dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/09/2010, 12h59
  5. Réponses: 4
    Dernier message: 15/10/2009, 13h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo