supprimer boite de dialogue lors de la fermeture fichier - VB/VBA/VBS - Programmation
Marsh Posté le 04-05-2006 à 19:58:18
Salut pierre9393,
il existe ceci : Application.displayAlerts
Tu le place a False pour désactiver ce genre de fenetre mais il faut surtout ne pas oublier de le remttre a True ensuite.
Une autre sollution est d'ouvrir les fichiers en lecture seule si tu n'as rien à y écrire
@+
Marsh Posté le 04-05-2006 à 20:08:27
ok ok merci bcp pour la réponse INSTANTANEE
par contre, petit souci, je connais quasiment rien en VB...
donc comment mettre Application.displayAlerts en mode False ?
quelle est la ligne de commande a taper ?
sinon pour la lecture seule j'ai mis tous les fichier dans ce mode (click droit, tick "lecture seule" ) mais rien n'y fait.. :-(
Marsh Posté le 04-05-2006 à 20:21:02
Bon j'ai trouvé ceci...
Application.DisplayAlerts = False
ActiveWorkbook.Close
Application.DisplayAlerts = True
ca devrait m'aider
je vais injecter ces lignes dans le script VB
si qqln peut me conseiller sur la localisation des lignes, histoire que le "remettage à true" ait bien lieu...
bonne soirée
Marsh Posté le 04-05-2006 à 20:30:26
Voila, mon code est le suivant, ou dois-je insérer les balises, et quelles sont elles SVP ???
le nom du fichier contenant la macro s'appelle Anmois.xls
Sub Macro1()
' Visualiser et LANCER LA MACRO EN PAS a PAS (F8),
' et promener la souris sur les variables
' pour en voir le contenu, et modifier si nécessaire ...
' Mettre le bon chemin
Dim CheAn, Chemois, Fichxl, T_M(12) As String
Dim T_An(4), X, M, Lig As Integer
' Mise en place des noms dossiers An dans X postes
T_An(1) = 2003: T_An(2) = 2004: T_An(3) = 2005: T_An(4) = 2006
' Vous pouvez traiter An par an sur 4 feuilles et regrouper (copier/coller)
' les 4 feuilles en 1
' Tableau des dossiers Mois (juste l'élément qui varie)
T_M(1) = "01": T_M(2) = "02": T_M(3) = "03": T_M(4) = "04":
T_M(5) = "05": T_M(6) = "06": T_M(7) = "07": T_M(8) = "08":
T_M(9) = "09": T_M(10) = "10": T_M(11) = "11": T_M(12) = "12":
For X = 1 To 4 ' On boucle 4 fois pour 4 ans
' on charge le répertoire d'1 année T_An(X) dans la variable Chemxl
CheAn = "E:\CD\Bilans_Journaliers_Choisy\" & T_An(X) & "\" & T_An(X) & "_"
For M = 1 To 12 ' on va sur 12 dossiers Mois
' en pas à pas, on doit lire le chemin exact du dossier dans chemois
Chemois = CheAn & T_M(M)
' la commande DIR met le nom du 1er .XLS du dossier chemois\... dans FichXL
Fichxl = Dir(Chemois & "\*.XLS" )
Do While Fichxl <> "" ' si plus de fichier => fin
Workbooks.Open Filename:= _
Chemois & "\" & Fichxl
'"C:\Documents and Settings\JPIERRE\Mes documents\Excel\LEVIER1.xls"
'BK45, BL45, BM45
Range("BK45:BM45" ).Select ' on select/copy 3 cellules lig.45
Selection.Copy
Windows("Anmois.xls" ).Activate ' on va sur l'XL central à la bonne ligne
Lig = Lig + 1 ' 1 ligne 12 cellules
Range("A" & Lig).Select ' Col A ligne Lig, chemin & fichier
ActiveCell.Value = Chemois & "\" & Fichxl
Range("B" & Lig).Select ' Col B lig.45
ActiveSheet.Paste
Windows(Fichxl).Activate ' on va copier la lig.46
Range("BK46:BM46" ).Select
Selection.Copy
Windows("Anmois.xls" ).Activate ' on va sur l'XL central Col E ligne Lig46
Range("E" & Lig).Select
ActiveSheet.Paste
Windows(Fichxl).Activate ' on va copier la lig.47
Range("BK47:BM47" ).Select
Selection.Copy
Windows("Anmois.xls" ).Activate ' on va sur l'XL central Col H ligne Lig47
Range("H" & Lig).Select
ActiveSheet.Paste
Windows(Fichxl).Activate ' on va copier la lig.48
Range("BK48:BM48" ).Select
Selection.Copy
Windows("Anmois.xls" ).Activate ' on va sur l'XL central Col H ligne Lig48
Range("K" & Lig).Select
ActiveSheet.Paste
Windows(Fichxl).Activate ' on revient sur le fcihier lu
ActiveWorkbook.Close ' pour le fermer
Fichxl = Dir ' nom Fichier suivant
Loop
Next M
' Sauvegarde du tableau chaque fin de dossier mois
' Remplacer le chemin "C:\Documents and Settings\Anmois.xls" par le bon.
ActiveWorkbook.SaveAs Filename:="E:\CD\Bilans_Journaliers_Choisy\Anmois.xls", _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
Next X
' en pas à pas, on peut passer de la macro à la feuille et suivre le travail
' Quand tout va bien, F5 exécute sans pas à pas...
'
'
End Sub
Marsh Posté le 04-05-2006 à 20:48:02
c bon j'ai trouvé, j'ai inséré de part et d'autre de ca:
----- false
ActiveWorkbook.Close
-----true
Marsh Posté le 05-05-2006 à 15:44:30
C'est parfait comme ça Tu peux améliorer ta macro en ne selectionant pas tout le temps. excel lit et écrit dans les cellules sans avoir besoin de les activer. Celà t'éviteras d'avoir la tête qui tourne à chaque fois que tu lance ta macro
@+
Marsh Posté le 05-05-2006 à 18:12:10
Salut
bon, y a un petit souci, je pense que c'est du au fait que les cellules a recopier dans le fichier Anmois, ont été obtenues par formule, et le copier coller n'a pas été régler avec l'option "copier les valeurs uniquement".
Comment faire SVP ?
pourriez-vous corriger ma macro, donnée dans le post d'avant ?
Bon WE (de 3 jours :-) )
Marsh Posté le 06-05-2006 à 16:34:19
Salut pierre
Pour régler celà il te suffit de dire :
Range(3A1" ).value = Range("A2" ).value
Tu enlève donc carrément le copier coller
@+
Marsh Posté le 06-05-2006 à 20:44:01
Heu merci beaucoup pour la réponse
je ne connais rien au VB, en fait la macro, je ne l'ai pas faite. Peux tu me donner la macro avec ta proposition stp ?
je suis désolé de t'embeter avec ca. C'est pour mon stage de fin d'études
salut, et bonne soirée
Marsh Posté le 07-05-2006 à 09:22:16
Salut Pierre
Je comprends qu'il soit important pour toi de bien réussir ton programme pour ton stage de fin d'études mais crois tu vraiement que ton stage te sera profitable si c'est moi qui rectifie toute ta macro ?
Moi aussi au début je ne comprennais rien au VBA, mais je m'y suis interessée parce que j'en avait besoin tout comme toi maintenant.
Si tu essayais dans un premier temps de trouver la fonction qui permet d'ouvrir un ficher en lecture seule pour que tu n'aies plus de demande d'enregistrement à la fermeture du fichier ?
Ensuite je regarderais ta macro.
@+
Marsh Posté le 07-05-2006 à 10:17:54
pierre9393 a écrit : Heu merci beaucoup pour la réponse |
Lis les règles : sur ce forum on aide mais on ne fait pas le boulot pour les autres. Internet n'a pas toujours existé, tu ferais comment si tu n'avais pas de net ? Crois tu que les étudiants des années 80-90 pouvaient utiliser Internet ? Et ça ne les a pas empéché d'avoir leur diplome...
Marsh Posté le 07-05-2006 à 10:56:33
ok, merci, je vais me pencher sur ca de plus près.
Je vous tiendrai au courant
@ la prochaine
Marsh Posté le 04-05-2006 à 19:53:50
Bonsoir
j'ai un souci:
j'ai "un grand nombre de fichiers" excel, quand je les ouvre (un seul, au hasard), et que je le referme, meme sans avoir touché a rien, j'ai une boite de dialogue genre "voulez vous enregistrer les modifs"..alors que j'ai toucher a rien...jusque la, ca va.
Le probleme c'est que j'ai une macro qui a besoin d'ouvrir ces 1000 et qqlqs fichiers, et résultat au lieu de travailler toute seule, la macro est stoppée par cette boite de dialogue...
Comment désactuver ceci ?
Merci