Desavtiver les macros dun classeur apartir dun autre classeur
blalaa
Messages postés
167
Date d'inscription
Statut
Membre
Dernière intervention
-
blalaa Messages postés 167 Date d'inscription Statut Membre Dernière intervention -
blalaa Messages postés 167 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai une macro qui se trouve dans le classeur A elle ouvrent 5 autres classeurs pour faire limportation de donnée, ce que je souhaite c a louverture des 5 classeurs aucun evenement ni aucune macro se lance, autrement dit desactiver les macros de 5 fclasseurs afin de ne pas afficher les different messages de 5 classuers
je ne sais pas si c possibles ou nn
je vous remercie d'avance pour vos reponses
merci
j'ai une macro qui se trouve dans le classeur A elle ouvrent 5 autres classeurs pour faire limportation de donnée, ce que je souhaite c a louverture des 5 classeurs aucun evenement ni aucune macro se lance, autrement dit desactiver les macros de 5 fclasseurs afin de ne pas afficher les different messages de 5 classuers
je ne sais pas si c possibles ou nn
je vous remercie d'avance pour vos reponses
merci
A voir également:
- Desavtiver les macros dun classeur apartir dun autre classeur
- Imprimer un classeur excel sur mac - Guide
- Classeur numérique gratuit - Télécharger - Bureautique
- Ce classeur comporte des liaisons avec une ou plusieurs sources externes ✓ - Forum Excel
- Excel ne parvient pas à insérer les feuilles dans le classeur de destination ✓ - Forum Excel
- Étiquette classeur a imprimer gratuit excel ✓ - Forum Bureautique
2 réponses
Bonjour,
La programmation exige beaucoup de rigueur, je vais commencer par quelques conseils qui t'éviterons bien des déboires :
• commences tous les modules par Option Explicit, cela oblige à déclarer toutes les variables
• déclares les variables avec le type ad hoc (i.e. pas toutes en Variant)
• limites leur portée au strict nécessaire (i.e. locale, privée, publique ou globale) ;
• envisages tous les types potentiels de chaque variable pour éviter les erreurs ;
• dans le doute prévois un gestionnaire d"erreur ;
• n'utilises jamais .Select, évites d'utiliser les objets actifs : Selection, Activecell, Activesheet, ... ;
• évites les références implicites(i.e. partielles), privilégies les références explicites (i.e. suffisamment complètes),
--- par exemple, au lieu de
donc, précises toujours la feuille pour un objet Range (Cells, Rows, ...) et la propriété cible (Value, Text, ...)
• n'hésites pas à utiliser des variables pour représenter les objets, ça facilite l'écriture et la lecture du code,
--- par exemple :
• pour les mêmes raisons, n'hésites pas à utiliser aussi
• évites d'utiliser des propriétés ou méthodes d'objet héritées qui pourraient ne pas exister,
--- par exemple, au lieu de :
en effet l'objet Range n'appartient pas à Sheet mais à Worksheet ;
• éviter d'utiliser le Presse-Papier, préfères la copie directe avec une destination
bien, pour copier uniquement les valeurs :
Voila du pain sur la planche ....
Ceci dit, pour éviter le 1° message d'erreur, il suffit de désactiver les liaisons à l'ouverture du classeur, au lieu de :
J'aurais écrit :
La programmation exige beaucoup de rigueur, je vais commencer par quelques conseils qui t'éviterons bien des déboires :
• commences tous les modules par Option Explicit, cela oblige à déclarer toutes les variables
• déclares les variables avec le type ad hoc (i.e. pas toutes en Variant)
• limites leur portée au strict nécessaire (i.e. locale, privée, publique ou globale) ;
• envisages tous les types potentiels de chaque variable pour éviter les erreurs ;
• dans le doute prévois un gestionnaire d"erreur ;
• n'utilises jamais .Select, évites d'utiliser les objets actifs : Selection, Activecell, Activesheet, ... ;
• évites les références implicites(i.e. partielles), privilégies les références explicites (i.e. suffisamment complètes),
--- par exemple, au lieu de
= Cells(1,2)écrire
= Worksheets(1).Cells(1,2).Value,
donc, précises toujours la feuille pour un objet Range (Cells, Rows, ...) et la propriété cible (Value, Text, ...)
• n'hésites pas à utiliser des variables pour représenter les objets, ça facilite l'écriture et la lecture du code,
--- par exemple :
Set MaPlage = Me.Range("B2:C8");
• pour les mêmes raisons, n'hésites pas à utiliser aussi
Withet
End With;
• évites d'utiliser des propriétés ou méthodes d'objet héritées qui pourraient ne pas exister,
--- par exemple, au lieu de :
Sheets(1).Range("A1")écrire
Workheets(1).Range("A1"),
en effet l'objet Range n'appartient pas à Sheet mais à Worksheet ;
• éviter d'utiliser le Presse-Papier, préfères la copie directe avec une destination
Source.Copy Destinationou
bien, pour copier uniquement les valeurs :
Destination.valeur = Source.Valeur.
Voila du pain sur la planche ....
Ceci dit, pour éviter le 1° message d'erreur, il suffit de désactiver les liaisons à l'ouverture du classeur, au lieu de :
Workbooks.Open Filename:=Chemin & NomFichier ' .... ' .... Windows(wb1).Activate ActiveWorkbook.Close False
J'aurais écrit :
Dim monClasseur As Workbook Set monClasseur = Workbooks.Open(Filename:=Chemin & NomFichier, UpdateLinks:=0) ' .... ' .... monClasseur.Close False
Bonjour,
Avec :
Avec :
Application.AutomationSecurity = msoAutomationSecurityForceDisable
Bonjour
merci pour votre reponse mais ca ne marche tjrs pas
voici e code que jai mis , peut etre ca vas vous donner une idee
merci encore
merci pour votre reponse mais ca ne marche tjrs pas
voici e code que jai mis , peut etre ca vas vous donner une idee
Sub feuil_macro_1()
Dim test2, test3, test4, test5, test6, test7, test8, test9, test10, test11 As Integer
wsh1 = Worksheets("NEW_VB_config").Range("o2") 'nom de la 1ere feuille
wsh2 = Worksheets("NEW_VB_config").Range("o3") 'nom de la 2eme feuille
wsh3 = Worksheets("NEW_VB_config").Range("o4") 'nom de la 3eme feuille
wsh4 = Worksheets("NEW_VB_config").Range("o5") 'nom de la 4eme feuille
wsh5 = Worksheets("NEW_VB_config").Range("o6") 'nom de la 5eme feuille
wsh6 = Worksheets("NEW_VB_config").Range("o7") 'nom de la 6eme feuille
wsh7 = Worksheets("NEW_VB_config").Range("o8") 'nom de la 7eme feuille
wsh8 = Worksheets("NEW_VB_config").Range("o9") 'nom de la 8eme feuille
wsh9 = Worksheets("NEW_VB_config").Range("o10") 'nom de la 9eme feuille
wsh10 = Worksheets("NEW_VB_config").Range("o11") 'nom de la 10eme feuille
wsh11 = Worksheets("NEW_VB_config").Range("o12") 'nom de la 11eme feuille
wb = ActiveWorkbook.Name
wsh = Workbooks(wb).Worksheets("NEW_VB_config").Range("o13")
wb1 = Workbooks(wb).Worksheets(wsh).Range("a2")
Workbooks(wb1).Application.AutomationSecurity = msoAutomationSecurityForceDisable
chemin_1 = Workbooks(wb).Worksheets(wsh).Range("a9")
'chemin
Chemin = chemin_1
NomFichier = wb1
Workbooks.Open Filename:=Chemin & NomFichier
Call Feuil_1(wsh1, test2, last1)
Call Feuil_1(wsh2, test3, last2)
Call Feuil_1(wsh3, test4, last3)
Call Feuil_1(wsh4, test5, last4)
Call Feuil_1(wsh5, test6, last5)
Call Feuil_1(wsh6, test7, last6)
Call Feuil_1(wsh7, test8, last7)
Call Feuil_1(wsh8, test9, last8)
Call Feuil_1(wsh9, test10, last9)
Call Feuil_1(wsh10, test11, last10)
Call Feuil_1(wsh11, test12, last11)
Windows(wb1).Activate
ActiveWorkbook.Close
End Sub
merci encore
Re
effictivement ca desactive les macros
excusez moi jai confondu les messages des macros avec ceux de la fermeture des classeur
je ne sais pas si ya moyen de desactiver ces 2 messages :
le premier a chque louverture a cause des laisons
le 2 eme a la fermeture des classeur ou il demade si jenrigistre les modif ou nn


merci davance
effictivement ca desactive les macros
excusez moi jai confondu les messages des macros avec ceux de la fermeture des classeur
je ne sais pas si ya moyen de desactiver ces 2 messages :
le premier a chque louverture a cause des laisons
le 2 eme a la fermeture des classeur ou il demade si jenrigistre les modif ou nn
merci davance
jai trouver un code pour fermer le classuer sans que le 2 eme message (message de demande d'enregistrement) s'affiche
Workbooks("NomFichier").Close SaveChanges:=False
jai une autre question
quand je mis le code en haut pour desactiver les macro je soiuhaiterais que avant la fermeture de mon classeur activer les macros parceque au 2 eme essai il ya un message derrure parceque les macros desactive sont enregisteree
merci et excusez moi pour ces messages
Workbooks("NomFichier").Close SaveChanges:=False
jai une autre question
quand je mis le code en haut pour desactiver les macro je soiuhaiterais que avant la fermeture de mon classeur activer les macros parceque au 2 eme essai il ya un message derrure parceque les macros desactive sont enregisteree
merci et excusez moi pour ces messages
ftp://ftp-developpez.com/bidou/Cours/VBA/formationVBA.pdf
merci bcp pour ts ces conseils
merci encore une fois et excellente journée