IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Trier et copier des commentaires en fonction de la date du jour [XL-2019]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Consultant communication & réseaux
    Inscrit en
    Janvier 2022
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 23
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant communication & réseaux

    Informations forums :
    Inscription : Janvier 2022
    Messages : 8
    Points : 5
    Points
    5
    Par défaut Trier et copier des commentaires en fonction de la date du jour
    Bonjour,

    J'essaye de créer une macro qui me permettrait d'extraire des données d'un tableau pour envoyer un mail.

    Le tri doit s'effectuer en fonction des commentaires que vous pouvez trouver dans la feuille excel. Le but est de détecter la date du jour, par exemple aujourd'hui le 22/08/2022, et d'extraire la ligne dans une autre page en effaçant dans la case commentaire, les commentaires qui ne datent pas d'aujourd'hui, cad avoir toute la ligne avec dans la case commentaire, le dernier commentaire. En revanche, s'il n'y a pas de commentaire datant d'aujourd'hui la ligne ne doit pas être sélectionnée ni copiée.
    Essai macro.xlsx

    Or peu importe le code que je rentre, je n'arrive pas à trier les données en fonction de la date et à récupérer seulement le commentaire d'aujourd'hui, sachant que dans cet excel je n'ai que quelques lignes mais je dois pouvoir l'utiliser pour 1000 lignes.

    Comment dois-je m'y prendre ?

    Merci et bonne journée

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 239
    Points : 5 610
    Points
    5 610
    Par défaut
    Bonjour,

    Une façon de faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    Option Explicit
     
    Sub ThisDay(d As String)
        Dim wshA As Worksheet, wshB As Worksheet
        Dim kRA As Long, kRB As Long, k As Long, s As String
        Set wshA = ThisWorkbook.Worksheets("Updates")
        Set wshB = ThisWorkbook.Worksheets("Mail")
        kRA = 2
        kRB = 2
        wshA.Select
        While Range("A" & kRA) <> ""
            k = InStr(Range("F" & kRA), d)
            If k > 0 Then
                s = Mid(Range("F" & kRA), k)
                k = InStr(s, vbLf)              '--- vbLf = saut de ligne
                If k > 0 Then
                    s = Left(s, k - 1)
                End If
                Range("A" & kRA & ":F" & kRA).Copy wshB.Range("A" & kRB)
                wshB.Range("F" & kRB) = s
                kRB = kRB + 1
            End If
            kRA = kRA + 1
        Wend
    End Sub
     
    Sub CeJour()
        ThisDay Format(Date, "dd/mm/yyyy")
    End Sub
    Cordialement.

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Consultant communication & réseaux
    Inscrit en
    Janvier 2022
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 23
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant communication & réseaux

    Informations forums :
    Inscription : Janvier 2022
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Bonjour EricDgn,

    Merci beaucoup de m'avoir répondu. Votre code marche très bien mais il prend les derniers commentaires de chaque ligne. Comment puis-je faire en sorte qu'il ne prenne que les commentaires du jour d'écriture ?

    Par exemple, aujourd'hui nous sommes le 23/08/2022, or pour l'instant avec votre code, qui est très bien, j'ai tous les derniers commentaires mais je souhaiterais avoir seulement ceux qui ont été rentré le jour même.

    Merci beaucoup

  4. #4
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 239
    Points : 5 610
    Points
    5 610
    Par défaut
    Bonjour,

    Sur mon pc, cela le fait. Ce sont les lignes 15 à 18 du code qui s'occupent de ne prendre que la ligne avec la date en cherchant où se trouve le saut de ligne (vbLf), s'il y en a un (k>0).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
                k = InStr(s, vbLf)              '--- vbLf = saut de ligne
                If k > 0 Then
                    s = Left(s, k - 1)
                End If
    Cordialement.
    Fichiers attachés Fichiers attachés

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Consultant communication & réseaux
    Inscrit en
    Janvier 2022
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 23
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant communication & réseaux

    Informations forums :
    Inscription : Janvier 2022
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Effectivement, j'ai retapé le code et cela fonctionne.
    Merci pour votre aide !

  6. #6
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 239
    Points : 5 610
    Points
    5 610
    Par défaut
    Une remarque en passant: en travaillant par date précise (aujourd'hui) il y a un risque de passer outre des commentaires dont la date tombe par inadvertance sur un jour non travaillé (samedi, dimanche, jour férié).
    Cordialement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 28
    Dernier message: 11/03/2020, 09h05
  2. Top 2 des modifs en fonction de la date du jour
    Par amalliap dans le forum Développement
    Réponses: 2
    Dernier message: 04/09/2017, 16h26
  3. trier et copier des données sur une autre feuille excel
    Par mirage37 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 09/07/2012, 17h08
  4. Réponses: 5
    Dernier message: 21/12/2011, 08h31
  5. Ajouter des commentaire aux fonction/sub d'une dll
    Par zebrette dans le forum VB.NET
    Réponses: 2
    Dernier message: 11/04/2011, 10h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo