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 :

Copy Paste Value en fonction de la date


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 13
    Par défaut Copy Paste Value en fonction de la date
    Bonjour,
    Dans la colonne A d'une feuille Excel j'ai des dates, je voudrais que lorsqu'une de ces dates correspond à la date du jour toute la ligne correspondante soit copy/paste value.
    Est ce que quelqu'un a une idée afin de résoudre ceci ?

    Merci de votre aide

    Arnaud

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Bonjour nono21x29,7, bienvenue sur le forum,
    Tu vois ça comment ? Exécution à l'ouverture du fichier ? Un bouton ?

  3. #3
    Membre averti
    Inscrit en
    Février 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 13
    Par défaut
    je voudrais que cette macro se lance tous les jours à une heure donnée, disons 18h00

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Pour que cette macro s'exécute à une heure donnée, ton classeur doit être ouvert. Tu en es conscient ?
    Pour lancer une macro à heure fixe regarde à OnTime, dans l'aide en ligne.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'Extrait de l'aide en ligne
    Application.OnTime TimeValue("18:00:00"), "Ta_Procedure"

  5. #5
    Membre averti
    Inscrit en
    Février 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 13
    Par défaut
    Je suis au point pour lancer la macro à heure fixe, ce que je n'arrive pas à écrire c'est le code de la macro en elle même

  6. #6
    Membre Expert Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Par défaut
    Bonjour,
    Voici un code pour "Ta_procedure"

    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
    Sub Ta_Procedure()
     
    Dim cell As Range
    Today = Date 'Défini la date du jour
     
    For Each cell In Range("a:a") 'ballaie la plge mentionnée
     
        If cell.Value = Today Then
        cell.EntireRow.Copy 
        cell.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Application.CutCopyMode = False
        End If
    Next
     
    End Sub

  7. #7
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Find est infiniment plus rapide que For each Next pour trouver une donnée.
    Comme j'ignore ta manière de traiter les dates dans ta feuille (format) je te suggère de passer par le N° de série pour les comparer à la date du jour. Ainsi tu pourras toutes les passer en revue d'un seul coup d'un seul sans avoir à lire ligne par ligne.
    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
    Sub Test()
    Dim c As Range, LaDate As Long, LeFormat As String
    'On relève le format de date
        LeFormat = Columns(1).NumberFormat
    'On donne le format du N° de série à la colonne
        Columns(1).NumberFormat = "General"
    'on convertit la date cherchée en N° de série
        LaDate = CDbl(Date)
    'on lance la recherche de LaDate sur la plage de cellule A1:A & dernière ligne
        With Worksheets("feuil1").Range(Cells(1, 1), Cells(Range("A65535").End(xlUp).Row, 1))
            Set c = .Find(LaDate)
            If Not c Is Nothing Then 'si donnée trouvé, on copie la ligne
                MsgBox "Trouvé !"
                Rows(c.Row).Copy
                Rows(c.Row).PasteSpecial Paste:=xlPasteValues
              Else
                MsgBox "Pas trouvé !"
            End If
        End With
    'On rétablit le format
        Columns(1).NumberFormat = LeFormat
    End Sub
    Si la date d'aujourd'hui peut être rencontrée plusieurs fois tu devras utiliser une boucle dont tu trouveras un exemple facile à adapter dans l'aide en ligne à Find.

Discussions similaires

  1. [XL-2002] Copie du contenu de cellule en fonction de la date
    Par hobaken dans le forum Conception
    Réponses: 9
    Dernier message: 18/03/2013, 22h57
  2. [XL-2010] Copy/paste en fonction d'une cellule
    Par RodKAZ dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/02/2013, 13h33
  3. Copie range dynamique en fonction de la date
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 23/03/2012, 13h41
  4. fonction copy/paste du TextComponent
    Par adel.87 dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 02/11/2007, 16h56
  5. Trier les enregistrements en fonction de la date
    Par mpereg dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 12/09/2004, 14h16

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