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 :

Macro sur date


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Novembre 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Novembre 2016
    Messages : 7
    Par défaut Macro sur date
    Bonjour au forum,
    J’ai ma base de données dans la laquelle la 1er colonne contient des dates.

    La colonne 6, contient des codes ISO de pays.

    La macro suivante permet de filtrer la base de données, de la colonne 6 avec comme critère « FR ».

    Une fois le filtre effectué par la macro, je voudrai copier uniquement les données contenant la date d’hier, soit le 16/11/2016 vers un autre fichier SYNTHESE.

    Comment effectuer cette requête ? Pouvez-vous m'aiguiller ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Macro1()
     
     
        Windows("FICHIER XXXXX.xlsx").Activate
        Sheets("base").Select
        Range("A3").AutoFilter
        Range("A3:N" & Range("A" & Rows.Count).End(xlUp).Row).AutoFilter Field:=6, Criteria1:="FR"
     
    End Sub

  2. #2
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    Bonjour,
    Dans ce cas là tu filtre aussi la colonne des dates avec la date d'aujourd'hui -1
    Puis tu copie seulement les cellules visibles et colle à l'endroit voulu
    Utilise l'enregistreur de macro, cela te donnera un code tout fait prêt à l'emploi ( bien sûr il faudra le rectifier un peu pour enlever les imperfections)
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

  3. #3
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    dans le billet suivant : http://www.developpez.net/forums/blo...nt-2-criteres/

    une proposition réalise un filtrage sous 2 critères (dont un double critère sur une même colonne) et en supprime les résultats

    il suffit de remplacer la suppression par une copie, et d'aménager les deux critères car l'un des deux (le premier) n'est pas un filtre automatique mais une détection de cellule

    si ça peut t'être utile

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub Macro1()
        Workbooks("FICHIER XXXXX.xlsx").Sheets("base").Activate
        Range("A3").AutoFilter
        Range("A3:N" & Range("A" & Rows.Count).End(xlUp).Row).AutoFilter Field:=6, Criteria1:="FR"
        Range("A3:N" & Range("A" & Rows.Count).End(xlUp).Row).SpecialCells(xlCellTypeVisible).Copy Workbooks("SYNTHESE.xlsx").Worksheets(1).Range("A1")
    End Sub

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    re
    on ne pends que les "FR" en colonne 6 et les date d'hier en colonne A
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub test1()
       With Range("A3:N" & Range("A" & Rows.Count).End(xlUp).Row)
            .AutoFilter Field:=1, Criteria1:=Date - 1    'on ne prend que les date d'hier soit le 18 car on est le 19
            .AutoFilter Field:=6, Criteria1:="FR"    'on ne prend que les "FR"
            .SpecialCells(xlCellTypeVisible).Copy Workbooks("SYNTHESE.xlsx").Worksheets(1).Range("A1") 'on transfert le resultat
            .AutoFilter    'on enleve le filtre
        End With
    End Sub
    a+
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Novembre 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Novembre 2016
    Messages : 7
    Par défaut
    Citation Envoyé par Menhir Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub Macro1()
        Workbooks("FICHIER XXXXX.xlsx").Sheets("base").Activate
        Range("A3").AutoFilter
        Range("A3:N" & Range("A" & Rows.Count).End(xlUp).Row).AutoFilter Field:=6, Criteria1:="FR"
        Range("A3:N" & Range("A" & Rows.Count).End(xlUp).Row).SpecialCells(xlCellTypeVisible).Copy Workbooks("SYNTHESE.xlsx").Worksheets(1).Range("A1")
    End Sub
    Bonjour,

    Avec ton code, il me sélectionne bien la base avec le filtre "FR", mais il me copie toute la base.
    Je ne veux uniquement qu'il me copie les données de la veille.

  7. #7
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    re
    bonjour
    li le post #5
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  8. #8
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    Bonjour,
    As tu lu le post #2 et #5

    Edit : Hi Patrick, Marc
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Novembre 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Novembre 2016
    Messages : 7
    Par défaut
    Citation Envoyé par RyuAutodidacte Voir le message
    Bonjour,
    As tu lu le post #2 et #5

    Edit : Hi Patrick, Marc

    Bonjour,

    Oui, j'ai bien lu les posts 2 et 5, et malgré çà, je suis toujours bloqué.

  10. #10
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    oui effectivement quand on travail sur deux classeurs différents il se peut que copy>>>destination déraille

    alors on activâtes
    je n'ai pas testé mais on doit pas être loin

    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 test1()
        Workbooks("FICHIER XXXXX.xlsx").Sheets("base").Activate
        With Range("A3:N" & Range("A" & Rows.Count).End(xlUp).Row)
            .AutoFilter Field:=1, Criteria1:=Date - 1    'on ne prend que les date d'hier soit le 18 car on est le 19
            .AutoFilter Field:=6, Criteria1:="FR"    'on ne prend que les "FR"
            .SpecialCells(xlCellTypeVisible).Copy
            Workbooks("SYNTHESE.xlsx").Activate
            With .Worksheets(1)
                .Activate
                .Range("A1").Select
                .Paste
            End With
            'on transfert le resultat
            .AutoFilter    'on enleve le filtre
        End With
    End Sub
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  11. #11
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Bonjour,

    vite fait en passant, je rappelle la pourtant simple méthode Range.Copy (comme Delete du reste) sur une plage filtrée
    prend en compte uniquement les cellules visibles …

    _________________________________________________________________________________________________________
    Je suis Paris, Nice, Bruxelles, Charlie, …

Discussions similaires

  1. [OpenOffice][Tableur] Macro alerte sur date
    Par machin truc dans le forum OpenOffice & LibreOffice
    Réponses: 2
    Dernier message: 22/10/2009, 18h26
  2. Requête sur date
    Par guenfood dans le forum Access
    Réponses: 11
    Dernier message: 08/12/2004, 16h11
  3. [Debutant(e)]operation sur dates
    Par sUrTr dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 11/10/2004, 15h58
  4. Resutlat de calcul sur date formaté
    Par neness dans le forum SQL
    Réponses: 6
    Dernier message: 16/06/2004, 15h34
  5. Calcul sur date
    Par Thomad dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 17/09/2003, 08h55

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