XL 2013 Problème de Macro qui sont en conflic.

  • Initiateur de la discussion Initiateur de la discussion MAt5999
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

MAt5999

XLDnaute Nouveau
Bonjour à tous.

Au boulot nous faisons nos devis dans un fichier excel.
La personne qui à créer se fichier il y a des années y avait inséré des macros.
Depuis que je le remplace, j'ai fait évoluer le fichier en y ajoutant d'autres macros. (Copier/coller du texte sélectionné dans 2 autres onglet - Supprimer les ligne sélectionnées - Insérer des ligne)

Avant de modifier le fichier, j'ai supprimé les macros existante puis j'ai créer les 3 nouvelles.

Tout va bien quand il n'y a que la nouvelle version du fichier qui est ouverte. Le problème arrive quand j'ouvre d'ancien devis. Les anciennes et les nouvelles macro entre en conflic et les nouvelles ne fonctionnent plus.

Y a t-il un moyen, une astuce pour que les macros n'agissent que dans le fichier où elles sont sans parasiter les autre fichier excel ouvert?

Merci pour votre aide
 
Bonjour
Dans le nouveau fichier j'ai fait les 3 nouvelles macro. Si j'ouvre un ancien fichier, toutes les macro de l'ancien fichier sont listé dans la fenêtre macro du nouveau fichier
1565357536017.png

.

Si dans mon nouveau fichier je fait ctrl+s pour supprimer une ligne j'obtien le message d'erreur suivant :

1565357673984.png
 
Bonjour,
je vois que dans l image, il est indique pour ”tous les classeurs ouverts”
a voir !
ensuite le message indique que la feuille cible est protegee
donc la deproteger dans procedure
puis reproteger apres action.
jean marie
 
Bonjour,
je vois que dans l image, il est indique pour ”tous les classeurs ouverts”
a voir !
ensuite le message indique que la feuille cible est protegee
donc la deproteger dans procedure
puis reproteger apres action.
jean marie

Bonjour
Dans la macro j'ai intégré le fait de déproteger le fichier, supprimer la ligne et reproteger le fichier. La macro inserer ligne , CC fonctionnent, il n'y a que supprimer ligne qui bug quand une ancienne version du fichier est ouverte.
 
Bonjour,
Bonjour au vacancier,

Sans doute serait-il judicieux de réécrire les macros afin quelle sache sur quoi appliquer leurs actions, qui par défaut s'applique au classeur actif, sur la feuille active.

Réécrire dans le style, partout où vos macros ciblent un objet de la hierarchie (Classeur/Feuille/Cellule ou plage de cellules):
VB:
    Dim c As Range
    Dim MaVariable As Long
    With ThisWorkbook.Sheets("Feuil1")
        For Each c In .Range("A1:A100")
            c = c + 1
        Next
    End With
    MaVariable = ThisWorkbook.Sheets("Feuil2").Range("B12").Row

C'est pourquoi, la majorité du temps je le fais systématiquement.

Autre idée: si les macros ne sont plus utiles dans les anciennes versions, les supprimer.


Bon courage
 
Re,

Pour renforcer l'idée de @danielco mettre en tête de chaque module obsolète: 'Option Private Module'
Les macros n'apparaîtront plus dans la liste des macros.
Par contre pour les appeler par vba il faudra 'nomdumodule.nomdelamacro'.
Mais si elles sont lancées par vba elle continueront à interagir comme d'habitude sur le classeur actif et la feuille active si aucune mesure ne les en empêche.

Cordialement
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
520
Réponses
10
Affichages
763
Retour