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 :

Recherche d'une date dans une Sheet et recupérer la ligne dans une autre Sheet


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2008
    Messages : 17
    Points : 12
    Points
    12
    Par défaut Recherche d'une date dans une Sheet et recupérer la ligne dans une autre Sheet
    Bonjour tout le monde,

    Je suis débutant en VBA et je dois faire quelque chose qui dépasse mes connaissances.

    J’ai un fichier Excel avec deux Sheet : Sheet1 et Sheet2.
    Sheet1 contient la date du jour et la date du jour dans une semaine donc une période de 7 jours ainsi que des entêtes (Person, Location, Title, Date, Event)
    Sheet2 contient les colonnes suivantes : Person, Location, Title, Date1, Date2, Date3, Date4, Date5, Date6, Date7, Event1, Event 2, Event 3, Event 4, Event 5, Event 6, Event 7.
    Pour chaque ligne la Date1 sera inferieur (donc pas égale) à la Date2.

    Ce que je voudrais faire une macro qui sélectionne la date et son event (par exemple Date3 et Event3) pour les dates qui sont incluses dans ma période de 7 jours et qui report les informations sur Sheet1.

    Pour continuer l’exemple :
    On aurait Date3 (incluse dans ma periode), je voudrais que Sheet1 contienne les informations suivante pour la Date3 : Person, Location, Title, Date3, Event3


    Est-ce que quelqu'un saurait m'aider?

    Merci beaucoup

    B.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 202
    Points : 14 353
    Points
    14 353
    Par défaut
    Bonjour,

    Est-ce que tu peux mettre un petit classeur exemple en PJ, ça sera beaucoup compréhensible.
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2008
    Messages : 17
    Points : 12
    Points
    12
    Par défaut
    Merci pour la réponse! Voici le fichier.

    B.
    Fichiers attachés Fichiers attachés

  4. #4
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Points : 3 974
    Points
    3 974
    Par défaut
    Bonsoir,

    Une solution
    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
    Option Explicit
    Sub Test()
    Dim Ws1 As Worksheet
    Dim DerLig1 As Long, DerLig2 As Long
    Dim Debut As Date, Fin As Date
    Dim Plagedates As Range, Cel As Range
        Set Ws1 = ThisWorkbook.Worksheets("Feuil1")
        With ThisWorkbook.Worksheets("Feuil2")
            DerLig2 = .Range("A" & .Rows.Count).End(xlUp).Row
            Set Plagedates = .Range("D2:J" & DerLig2)
            Debut = Ws1.Range("B2")
            Fin = Ws1.Range("B3")
            For Each Cel In Plagedates
                If Cel >= Debut And Cel <= Fin Then
                    DerLig1 = Ws1.Range("B" & Ws1.Rows.Count).End(xlUp).Row
                    Ws1.Range("B" & DerLig1 + 1).Resize(1, 3) = .Range("A" & Cel.Row).Resize(1, 3).Value
                    Ws1.Range("E" & DerLig1 + 1) = Cel.Value
                    Ws1.Range("F" & DerLig1 + 1) = Cel.Offset(0, 7).Value
                End If
            Next Cel
            Set Plagedates = Nothing
        End With
        Set Ws1 = Nothing
    End Sub
    Cordialement.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2008
    Messages : 17
    Points : 12
    Points
    12
    Par défaut
    Merci beaucoup!

    Dans un autre fichier je dois faire plus ou moins la même chose sauf que je voudrais retourner le nom de la colonne si la date est inclue dans ma période. Par example une de mes observations sous Date3 est inclue dans ma periode, je devrais retrouver Date3(simplement le nom de la colonne) sous Event dans Feuil1.

    Comment devrais-je modifier le code?

    Merci beaucoup

    B.

  6. #6
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Points : 3 974
    Points
    3 974
    Par défaut
    Le code te permet de balayer toutes les dates des colonnes D à J de Feuil2 et de relever celles qui sont incluses dans ta période.
    Tu peux alors en déduire l’en-tête de colonne qui correspond à la cellule trouvée Cordialement.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2008
    Messages : 17
    Points : 12
    Points
    12
    Par défaut
    Merci mes macros fonctionnent à la perfection!

    B.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 25/11/2014, 16h49
  2. Réponses: 3
    Dernier message: 05/05/2011, 15h22
  3. Réponses: 5
    Dernier message: 29/07/2008, 16h59
  4. Réponses: 2
    Dernier message: 12/02/2008, 17h08
  5. Réponses: 7
    Dernier message: 05/04/2006, 11h22

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