Macro qui s'effectue sur plusieurs fichiers .xlsx en même temps
Résolu
bassmart
Messages postés
281
Date d'inscription
Statut
Membre
Dernière intervention
-
bassmart Messages postés 281 Date d'inscription Statut Membre Dernière intervention -
bassmart Messages postés 281 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Macro qui s'effectue sur plusieurs fichiers .xlsx en même temps
- Renommer plusieurs fichiers en même temps - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Comment ouvrir un fichier xlsx ? - Guide
- Excel trier plusieurs colonnes en même temps - Guide
- XLSX Viewer Free - Télécharger - Tableur
1 réponse
Bonjour,
Macro qui s'effectue sur plusieurs fichiers .xlsx en même temps
Ce sera toujours un fichier a la fois, un apres l'autre
Macro qui s'effectue sur plusieurs fichiers .xlsx en même temps
Ce sera toujours un fichier a la fois, un apres l'autre
Private Sub CommandButton1_Click() Dim nombre As Integer Dim Motdepasse As String Dim QuelFichier() Dim Chemin As String, Fichier As String 'If Not Application.Dialogs(xlDialogOpen).Show("M:\Entrepot\BDFS\1_Piézomètres") Then Exit Sub ChDrive "m" ChDir "M:\Entrepot\BDFS\1_Piézomètres\" QuelFichier = Application.GetOpenFilename(, , , , True) If IsArray(QuelFichier) Then For i = LBound(QuelFichier, 1) To UBound(QuelFichier, 1) Workbooks.Open QuelFichier(i) '------------------------------------------- Application.ScreenUpdating = False nombre = ActiveWorkbook.Sheets.Count For n = 2 To nombre Worksheets(n).Unprotect Next n For x = 2 To Sheets.Count - 1 With Sheets(x) Sheets(x).Select Columns("E:O").Select Selection.EntireColumn.Hidden = False derlig = .Range("F" & Rows.Count).End(xlUp).Row For n = 2 To derlig If .Range("D" & n) <> "" Then If .Range("A" & n) <> "" Then TInfos = .Range("A" & n & ":C" & n) Else .Range("A" & n & ":C" & n) = TInfos End If End If Next n Sheets(x).Range("A2").Select End With Next x nombre = ActiveWorkbook.Sheets.Count For n = 2 To nombre Worksheets(n).Protect Next n Chemin = "M:\Entrepot\BDFS\1_Piézomètres\" Fichier = "Nomclasseur_" & Format("traité") & ".xlsx" ActiveWorkbook.SaveCopyAs Chemin & Fichier '------------------------------------------- Next i Else MsgBox "Annuler" End If UserForm1.Hide 'Application.Dialogs(xlDialogSaveAs).Show ("M:\Entrepot\BDFS\1_Piézomètres\") ThisWorkbook.Saved = True Application.ScreenUpdating = True 'UserForm2.Show End Sub
Tout fonctionne bien jusqu'au moment de la sauvegarde. Il ne sauvegarde pas automatiquement, il ouvre tous mes fichiers et effectue l'opération de copie et d'affichage des colonnes masqués très bien et après plus rien ne se passe. Normalement, il devrait sauvegarder tous mes fichiers un à un.
Ben, ça se situe au niveau de la ligne Fichier=, y a un truc avec format que je peux savoir puisque je n'ai pas vos fichiers !!!!!!!!!!!!!!
Sur la ligne Fichier, je voulais qu'il sauve en ajoutant le terme traité dans le nouveau nom du fichier sauvegardé. C'est pourquoi, j'ai inscrit Format("Traité"), mais probablement que ce n'est pas la bonne manière de l'écrire.
http://www.cjoint.com/c/FCynDUsRE2o
Fichier modifie pour nom classeur_traite
https://www.cjoint.com/c/FCzhQwtprvf