Bonjour,
J'essaie d'appliquer une macro à tous les fichiers contenus dans un dossier.
La macro permet de supprimer les lignes dans un fichier Excel et de conserver un pas de temps de 15 minutes (voir ci-joint l'explication concernant le pas de temps : https://www.excel-downloads.com/threads/suppression-multiple-de-lignes-macro.20057548/post-20433583 )
J'ai créé une nouvelle macro mais cela ne fonctionne pas . Je la joins ici et les documents à "simplifier" en pièce jointe.
L'idée est de lancé la macro à partir d'un fichier Excel et de mettre à jour les documents dans le dossier sélectionné.
Je vous remercie pour votre aide.
Cordialement
Bastien
J'essaie d'appliquer une macro à tous les fichiers contenus dans un dossier.
La macro permet de supprimer les lignes dans un fichier Excel et de conserver un pas de temps de 15 minutes (voir ci-joint l'explication concernant le pas de temps : https://www.excel-downloads.com/threads/suppression-multiple-de-lignes-macro.20057548/post-20433583 )
J'ai créé une nouvelle macro mais cela ne fonctionne pas . Je la joins ici et les documents à "simplifier" en pièce jointe.
L'idée est de lancé la macro à partir d'un fichier Excel et de mettre à jour les documents dans le dossier sélectionné.
VB:
Sub Modifier_Pas()
Dim i As Integer
Dim Chemin As String
Dim tablo, i&, dat$, min%, n&
Chemin = Selection_Dossier
'manque une étape
tablo = [A1].CurrentRegion.Resize(, 2) 'feuille active
For i = 1 To UBound(tablo)
dat = Format(tablo(i, 1), "mm/dd/yyyy hh:mm") 'date au format US
min = Val(Right(dat, 2))
If min Mod 15 = 0 Then n = n + 1: tablo(n, 1) = dat: tablo(n, 2) = tablo(i, 2)
Next
'---restitution---
Application.ScreenUpdating = False
If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData 'si la feuille est filtrée
Columns("A:B").ClearContents 'RAZ
[A1].Resize(n, 2) = tablo '1ère cellule de destination, à adapter
[A1].Resize(n, 2).RemoveDuplicates Array(1, 2), Header:=xlYes 'supprime les doublons en colonnes A et B (ce n'est pas obligatoire)
With ActiveSheet.UsedRange: End With 'actualise la barre de défilement verticale
End Sub
Function Selection_Dossier() As Variant
'1 ouvrir un fichier
'2 enregistrement de fichier
'3 sélection de fichier
'4 sélection de dossier
With Application.FileDialog(4)
.Show
On Error Resume Next 'si annuler
Dossier = .SelectedItems(1)
If Err.Number <> 0 Then Dossier = False
End With
End Function
Je vous remercie pour votre aide.
Cordialement
Bastien
Pièces jointes
Dernière édition: