Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Macro, insertion dernier document téléchargé

  • Initiateur de la discussion Initiateur de la discussion Arnaud5962
  • 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 !

A

Arnaud5962

Guest
Bonjour,

Je cherche une macro qui me permettrait d'insérer un document en passant par données/a partir du texte/ et dans le dossier téléchargement, je voudrais que la macro me prenne le dernier document téléchargé, autrement dit le plus récent.

Merci d'avance

Arnaud
 
Re : Macro, insertion dernier document téléchargé

Bonsoir,
Pour touver le document le plus récent d'un dossier, utilise la fonction à placer dans un module :
VB:
Public Function GetLatestFile(ByVal vsFolder As String, Optional ByRef vsFilter As String = "*") As String
Dim sFileName As String
Dim dLatest As Date
   If Right$(vsFolder, 1) <> "\" Then
       vsFolder = vsFolder & "\"
   End If
   sFileName = Dir$(vsFolder & vsFilter)
   Do While LenB(sFileName)
       If LenB(GetLatestFile) = 0 Or dLatest < FileDateTime(vsFolder & sFileName) Then
           GetLatestFile = sFileName
           dLatest = FileDateTime(vsFolder & sFileName)
       End If
       sFileName = Dir$()
   Loop
End Function

Public Sub Test()
MsgBox GetLatestFile("C:\CheminDuDossierDeTéléchargement\", "*")
End Sub
Pour le reste, utilise l'enregistreur de macro pour personnaliser comme tu veux
A+
 
Re : Macro, insertion dernier document téléchargé

merci pour votre aide, mais j'ai réussi a créer la macro me permettant de me trouver le dernier document téléchargé mais je ne sais pas ce qu'il faut que je rajoute pour que ce meme document soit insérer
merci d'avance


Sub Macro4()

Dim monrep As String, monfic As String, derdate As Date, ledernier As String
monrep = "C:\Documents and Settings\compta\Mes documents\Téléchargements\"
monfic = Dir(monrep & "*.csv")
derdate = DateSerial(1, 1, 1)
Do While monfic <> ""
If FileDateTime(monrep & monfic) > derdate Then
ledernier = monrep & monfic
derdate = FileDateTime(monrep & monfic)
End If
monfic = Dir
 
Re : Macro, insertion dernier document téléchargé

Bonjour,
Utilise l'enregistreur de macros avec menu Données/Données externes/Importer les données…
tu auras les éléments pour ton code
A+
 
Re : Macro, insertion dernier document téléchargé

Je suis désolé mais je suis novice en macro et je n'arrive pas à associer les deux
Sub Macro9()
'
' Macro9 Macro
'

'
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;C:\Documents and Settings\compta\Mes documents\Téléchargements\Télécharger(2).csv" _
, Destination:=Range("$A$1"))
.Name = "Télécharger(2)"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 1252
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, _
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
End Sub

Dim monrep As String, monfic As String, derdate As Date, ledernier As String
monrep = "C:\Documents and Settings\compta\Mes documents\Téléchargements\"
monfic = Dir(monrep & "*.csv")
derdate = DateSerial(1, 1, 1)
Do While monfic <> ""
If FileDateTime(monrep & monfic) > derdate Then
ledernier = monrep & monfic
derdate = FileDateTime(monrep & monfic)
End If
monfic = Dir
Loop
MsgBox "le plus récent des fichiers csv dans ce répertoire est " & ledernier
End Sub

merci d'avance
 
Re : Macro, insertion dernier document téléchargé

Re,
Tous les doc téléchargés ont-ils la même structure ?
Peux-tu joindre un exemple ?
(comme je suis un peu paresseux, j'apprécie de ne pas avoir à tout construire pour pouvoir tester avant de poster)
A+
 
Re : Macro, insertion dernier document téléchargé

désolé mais je ne peux pas fournir d'exemple correspondant exactement ce que je veux car c'est confidentiel.
les deux macros ci dessus utilisées séparement fonctionnent, je voudrais juste que le dossier le plus récent trouver, au lieu qu'un message s'affiche, je voudrais qu'il me l'insére.
Oui chaque document à la même structure
.merci d'avance
 
Dernière modification par un modérateur:
Re : Macro, insertion dernier document téléchargé

Re,
Essaie
VB:
Sub Macro9()

    With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & Macro4, _
                                     Destination:=Range("$A$1"))
        .Name = "Télécharger(2)"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 1252
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = False
        .TextFileSemicolonDelimiter = False
        .TextFileCommaDelimiter = True
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, _
                                         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With
End Sub

Function Macro4() As String
    Dim monrep As String, monfic As String, derdate As Date, ledernier As String
    monrep = "C:\Documents and Settings\compta\Mes documents\Téléchargements\"
    monfic = Dir(monrep & "*.csv")
    derdate = DateSerial(1, 1, 1)
    Do While monfic <> ""
        If FileDateTime(monrep & monfic) > derdate Then
            ledernier = monrep & monfic
            derdate = FileDateTime(monrep & monfic)
        End If
        monfic = Dir
    Loop
    'MsgBox "le plus récent des fichiers csv dans ce répertoire est " & ledernier
    Macro4 = ledernier
End Function
A+
 
Re : Macro, insertion dernier document téléchargé

Merci beaucoup, ça marche parfaitement, seulement j'aurai voulu ajouter cela,
Sub SupprimeLigne()


Dim LastLig As Long, i As Long

With Sheets("Feuil1")
LastLig = .Cells(.Rows.Count, "d").End(xlUp).Row
For i = 1 To LastLig
If .Range("d" & i).Text = "MEGA " Then .Rows(i).EntireRow.Delete
Next i
End With


End Sub

merci d'avance
 
Re : Macro, insertion dernier document téléchargé

Bonjour Arnaud,
Si tu veux l'ajouter après l'insertion, ajoute la ligne SupprimeLigne avant End Sub.
J'ai corrigé une coquille dans Cells.
Quand tu supprimes des lignes dans une boucle, il faut mieux partir du bas pour que la suppression n'interfère pas avec la boucle (dans ton cas si deux lignes consécutives répondaient au critère, la deuxième n'aurait pas été supprimée)
VB:
Sub SupprimeLigne()
    Dim LastLig As Long, i As Long
    With Sheets("Feuil1")
        LastLig = .Cells(.Rows.Count, 4).End(xlUp).Row
        For i = LastLig To 1 Step -1
            If .Range("D" & i).Text = "MEGA " Then .Rows(i).EntireRow.Delete
        Next i
    End With
End Sub
A+
 
Re : Macro, insertion dernier document téléchargé

J'ai donc fait cette macro mais sa ne fonctionne pas

Sub Macro9()

With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & Macro4, _
Destination:=Range("$A$1"))
.Name = "Télécharger(2)"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 1252
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, _
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
End Sub

Function Macro4() As String
Dim monrep As String, monfic As String, derdate As Date, ledernier As String
monrep = "C:\Documents and Settings\compta\Mes documents\Téléchargements\"
monfic = Dir(monrep & "*.csv")
derdate = DateSerial(1, 1, 1)
Do While monfic <> ""
If FileDateTime(monrep & monfic) > derdate Then
ledernier = monrep & monfic
derdate = FileDateTime(monrep & monfic)
End If
monfic = Dir
Loop
'MsgBox "le plus récent des fichiers csv dans ce répertoire est " & ledernier
Macro4 = ledernier
End Function
Sub SupprimeLigne()
Dim LastLig As Long, i As Long
With Sheets("Feuil1")
LastLig = .Cells(.Rows.Count, 4).End(xlUp).Row
For i = LastLig To 1 Step -1
If .Range("D" & i).Text = "MEGA " Then .Rows(i).EntireRow.Delete
Next i
End With
Supprime ligne
End Sub
 
Re : Macro, insertion dernier document téléchargé

merci beaucoup,
j'ai encore un soucis,
je veux faire la somme sur la derniére ligne, seulement parfois le format des nombres ne convient pas, je dois donc supprimer l'espace, mais le total n'est pas correct

Sub total()
Range("H:H,J:J").Select
Range("J1").Activate
Selection.Replace What:=" ", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Dim c As Range
Set c = Range("H65536").End(xlUp).Offset(1, 0)
Range(c, c(1, 3)).FormulaR1C1 = "=SUM(R1C:R" & c.Row - 1 & "C)"
'Range(c,c(1,3)).Value = Range(c,c(1,3)).Value ': à mettre si tu ne veux pas la formule mais que la somme
End Sub
 
Re : Macro, insertion dernier document téléchargé

Bonjour,
Si tu fais la somme pour les trois colonnes H, I et J, il faut aussi supprimer les espaces de la colonne I : Range("H:J").Select

D'autre part, tu peux supprimer les sélections (qui ralentissent)
Code:
Range("H:J").Replace What:=" ", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
A+
 
Dernière édition:
Re : Macro, insertion dernier document téléchargé

je voudrais également pouvoir surligner en jaune, les lignes qui contiennent soit le mot, remboursement,soit annulation, soit paiement reçu.merci d'avance
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
310
Réponses
4
Affichages
281
Réponses
5
Affichages
551
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…