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é

Re,
pouvoir surligner en jaune, les lignes qui contiennent soit le mot, remboursement,soit annulation, soit paiement reçu
Utilise Find et FindNext, l'exemple de l'aide te montre comment faire une boucle pour traiter une plage.
Point important qui manque dans l'aide :
Avant le début de la recherche, il faut mettre Application.Findformat.Clear
car ces paramètres sont mémorisés pour toute recherche ou remplacement, en manuel ou par macro, et sont repris par défaut si tu n'écris pas tous les arguments.
Dans ce dernier cas, la réinitialisation de Findformat évite des surprises.
A+
 
Re : Macro, insertion dernier document téléchargé

Re,
Ton problème vient du fait que certains nombres sont écrits en chaînes de caractères, il faut les convertir.
D'autre part, pour réduire le temps de calcul, il faut limiter la macro à la dernière ligne et ne pas traiter des colonnes entières.
VB:
Sub total()
    Dim Dlign As Long
    Dlign = Range("H65536").End(xlUp).Row
    Range("H1:J" & Dlign).Replace What:=" ", Replacement:="", LookAt:=xlPart, _
                SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
                ReplaceFormat:=False
    Dim c As Range
    For Each c In Range("H1:J" & Dlign)
        On Error Resume Next
        c = CDbl(c)
    Next c
    Set c = Range("H" & Dlign + 1)
    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
A+
 
Re : Macro, insertion dernier document téléchargé

Bonjour Arnaud5962, Hippolite, le fil , le fopum


• Une solution avec Autofilter qui à l'avantage d'éviter la boucle
( ==> temps d'exécution de la macro plus rapide 😉 )

VB:
Sub SupprimeLigne_a()
    Dim LastLig&, pf As Range
    Application.ScreenUpdating = False
    With Sheets("Feuil1")
        LastLig = .Cells(.Rows.Count, 4).End(3).Row
        .Range("D1:D" & LastLig).AutoFilter 1, "MEGA"
        Set pf = [_FilterDataBase]
        pf.Offset(1, 0).Resize(pf.Rows.Count - 1).SpecialCells(12).EntireRow.Delete
        .AutoFilterMode = False
    End With
Set pf = Nothing
End Sub
 
Re : Macro, insertion dernier document téléchargé

merci beaucoup, deplus je pense que pour vous demander moins de travail il set bon de me donner les bases et que je cherche un peu moi meme.

Dequelle aide parler vous?
merci
 
Re : Macro, insertion dernier document téléchargé

Re,
Dequelle aide parler vous?
Tu mets le curseur sur le mot Find et tu appuies sur la touche F1
tu obtiens :
Find, méthode
Voir aussi S'applique à Exemple

Méthode Find telle qu'elle s'applique à l'objet WorksheetFunction.
Méthode Find telle qu'elle s'applique à l'objet Range.

Exemple
Cet exemple montre comment rechercher toutes les cellules de la plage A1:A500 dans la feuille de calcul Worksheet 1 contenant la valeur 2 et comment la remplacer par la valeur 5.

With Worksheets(1).Range("a1:a500")
Set c = .Find(2, lookin:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
c.Value = 5
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With
A+
 
Re : Macro, insertion dernier document téléchargé

voila ce que j'ai fait, mais ça ne fonctionne pas

Sub jaune()
Application.FindFormat.Clear
With Worksheets(1).Range("a1:j500")
Set e = .Find(Remboursement, LookIn:=xlValues)
If Not e Is Nothing Then
firstAddress = e.Address
Do
c.Value = Color = 65535
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
FindNext
Set e = .Find(Annulé, LookIn:=xlValues)
If Not e Is Nothing Then
firstAddress = e.Address
Do
c.Value = Color = 65535
Set c = .FindNext(c)
End If
End With
End Sub
 
Re : Macro, insertion dernier document téléchargé

Re,
Il manquait un End If, un Loop, mélange de e et c + colorIndex
VB:
Sub jaune()
    Dim c As Range
    Application.FindFormat.Clear
    With Worksheets(1).Range("a1:j500")
        Set c = .Find("Remboursement", LookIn:=xlValues)
        If Not c Is Nothing Then
            firstAddress = c.Address
            Do
                With c.EntireRow.Interior
                    .ColorIndex = 6
                    .Pattern = xlSolid
                End With
                Set c = .FindNext(c)
            Loop While Not c Is Nothing And c.Address <> firstAddress
        End If

        Set c = .Find("Annulé", LookIn:=xlValues)
        If Not c Is Nothing Then
            firstAddress = c.Address
            Do
                With c.EntireRow.Interior
                    .ColorIndex = 6
                    .Pattern = xlSolid
                End With
                Set c = .FindNext(c)
            Loop While Not c Is Nothing And c.Address <> firstAddress
        End If
    End With
End Sub
A+
 
Re : Macro, insertion dernier document téléchargé

olala j'en était loin.
je voudrais ajouter, qu'il mette en jaune les lignes contenant une valeur négative dans la colonne h4
merci pour tout
 
Re : Macro, insertion dernier document téléchargé

Re,
Pour faciliter l'écriture, il existe des addon qui indentent automatiquement.
J'ai installé "IndenterVBA.exe", je ne me souviens pas de sa provenance, tu devrais retrouver avec Google
Je te conseille de faire de même.
A+

PS : H4 n'est pas une colonne ???
 
Dernière édition:
Re : Macro, insertion dernier document téléchargé

Re,
Tu devrais faire un petit effort avec ce que tu as déjà vu, ce n'est pas compliqué :
VB:
Sub jaune()
    Dim Dlign As Long
    Dlign = Range("H65536").End(xlUp).Row
    For i = 1 To Dlign
        If Feuil1.Cells(i, 8).Value < 0 Then
            With Feuil1.Cells(i, 8).EntireRow.Interior
                .ColorIndex = 6
                .Pattern = xlSolid
            End With
        End If
    Next i
End Sub
A+
 
- 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
Retour