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 :

[VBA-E] Sélectionner toutes les dates correspondantes à un mois choisit


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 9
    Points : 2
    Points
    2
    Par défaut [VBA-E] Sélectionner toutes les dates relatives à un mois choisit
    Bonjour,
    Je bute sur un point et j’aimerai savoir comment je peux faire par une inputbox ou autre, qui permettrai de sélectionner des dates (par exemple sélectionner du : 01/01/06 au : 31/01/06) afin de sélectionner toutes les dates comprises dans la sélection (ce tableau gère mes comptes) afin de copier cette sélection dans une autre feuille, qui me permettrait ainsi par la suite de calculer mes montants HT et TVA du mois concerné .

    Donc le point où je bute est cette sélection de dates !

    Dans l’espoir que quelqu’un puisse me sortir de ce problème .
    Bien cordialement.

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Bonsoir,

    pourrai-tu nous donner plus de précision .. sur ton environnement ( VB6, VBA Excel..., modifie ton titre et rajoute y un tag [VB...)

    peu être un contrôle DTPicker : Microsoft date and time Picker...

  3. #3
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 220
    Points
    1 220
    Par défaut
    question 1: comment compte-tu faire en sorte que l'utilisateur entre un mois dans une imputbox...une combobox serait plus apropriée

    Question 2: un ou plusieurs mois? Un mois de durée ou de calendrier?

    Question 3: fait une recherche sur la fonction format ?, tu devrais trouver ta réponse.
    Méphistophélès
    Si la solution ne résout pas votre problème, changez le problème...
    Cours et tutoriels C++ - FAQ C++ - Forum C++.

  4. #4
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Personnellement, quel que soit l'environnement, pour une sélection de mois, j'utilise toujours une Combo.
    Inutile de s'encombrer de composant ou de masque.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par bbil
    Bonsoir,

    pourrai-tu nous donner plus de précision .. sur ton environnement ( VB6, VBA Excel..., modifie ton titre et rajoute y un tag [VB...)

    peu être un contrôle DTPicker : Microsoft date and time Picker...
    Citation Envoyé par ouskel'n'or
    Avant tout : VB ou VBA ? Excel ? ...

    Avec Excel, regarde à datediff
    Si c'est le Input qui te pose problème --> VB ou VBA ?
    VB : Une solution a été donnée la semaine dernière pour une saisie au format désiré

    Tu dis

    A+

    Bonjour,
    merci pour votre intérêt à mon problème .

    J’essaie sous Excel 2003 (avec le VBA) de gérer mes comptes .
    J’ai longtemps cherché! Et je ne trouve pas !

    Voilà le début de la macro :

    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
    Dim Message As Date, Plage, LaDate
        'Insertion d'une boite de message pour choisir le mois
    LaDate = InputBox("Saisir le mois recherché", "SAISIE DU MOIS", "mois-aaaa")
    If Not IsDate(LaDate) Then Exit Sub  'vérifie que la saisie est bien une date
        'On suppose que la date a été saisie sous une autre forme (ex. juin 06)...
        '... mais on cherche juin-06  -> On doit formater la date
    Message = CVar(Format(CDate(LaDate), "mmmm-yyyy")) ' donne "mois-année"
        'Sélection du tableau actif
    Sheets("Feuil1").Select
    Range("A7").Select
    Set tbl = ActiveCell.CurrentRegion
    tbl.Offset(6, 0).Resize(tbl.Rows.Count - 1, tbl.Columns.Count).Select
        'Tri des dates valeurs de la banque en ordre décroissant
    Selection.Sort Key1:=Range("A8"), Order1:=xlDescending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
    Voilà c’est à ce niveau que j’aimerai ne sélectionner que les lignes du mois tapé dans l’inputbox afin de copier cette sélection dans une autre feuille .

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par méphistopheles
    question 1: comment compte-tu faire en sorte que l'utilisateur entre un mois dans une imputbox...une combobox serait plus apropriée

    Question 2: un ou plusieurs mois? Un mois de durée ou de calendrier?

    Question 3: fait une recherche sur la fonction format ?, tu devrais trouver ta réponse.
    Bonjour,
    merci pour votre réponse
    J'ai répondu à bbil et à ouskel'n'or et je m'apperçois que dans la discussion, comme je leur ai répondu la même chose, et bien, les infos font en fait un doublé, et Je me pose la question : Est-ce qu'il faut absoluement que je donne toutes les données aux personnes qui me répondent ou bien elles ont la possibilité de consulter la page de la discussion (ceci, non par fainiantise mais pour éviter de surcharger avec les mêmes données)
    Pour tes questions, dans le début de la macro, je formate la date en "mois-aaaa" je pense que ça doit marcher !

    merci, a+

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par AlainTech
    Personnellement, quel que soit l'environnement, pour une sélection de mois, j'utilise toujours une Combo.
    Inutile de s'encombrer de composant ou de masque.
    Bonjour,
    merci pour l'info

    A+

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 9
    Points : 2
    Points
    2
    Par défaut [VBA-E] Sélectionner toutes les dates correspondantes à un mois choisit
    Bonjour c'est encore moi,
    J'ai créé une InputBox me permettant de choisir un mois .
    Je bute sur un point : j’aimerai savoir comment je peux faire pour sélectionner toutes les dates comprises dans la sélection (ce tableau gère mes comptes) afin de copier cette sélection dans une autre feuille, qui me permettrait ainsi par la suite de calculer mes montants HT et TVA du mois concerné .

    Donc le point où je bute : est cette sélection de dates par rapport au mois choisit dans l'inputbox !

    Je pense à un truc comme : Sélectionner les lignes visibles puis copier coller
    ou bien une boucle du genre : par rapport à la sélection de l'ensemble du tableau : départ de la recherche sur la cellule "A8"
    si le mois correspond au mois choisit dans l'inputbox, alors copier cette ligne sur autre feuille, sinon passer à la cellule "A9"
    Ensuite passer à la cellule "A9" avec les mêmes opérations
    Et ainsi de suite jusqu'à la dernière cellule du tableau non vide

    Et là je ne sais pas comment faire !
    d'avance merci pour votre aide.

  9. #9
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    bonsoir

    tu peux tester une procedure de ce type


    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
    Sub filtreMois()
    Dim Mois As Variant
    Dim Cell As Range
     
     
    Mois = InputBox("Saisissez un numero de mois", , 1)
    If Mois = "" Then Exit Sub
     
     
    'les dates à tester sont dans la plage A1:A10 de la Feuil1
    For Each Cell In Sheets("Feuil1").Range("A1:A10")
     
        If Month(Cell) = CDec(Mois) Then
        'copie des lignes dans la Feuil2 , si le mois est OK
        Cell.EntireRow.Copy _
        Sheets("Feuil2").Cells(Sheets("Feuil2").Range("A65536").End(xlUp).Row + 1, 1)
        End If
     
    Next Cell
     
     
    Application.CutCopyMode = False
    End Sub


    bonne soiree
    michel

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    Merci Michel pour l'info
    quand je pourrai tester, je te tiens au courant des avancées
    A+
    Fifi.

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 9
    Points : 2
    Points
    2
    Par défaut [VBA-E] Sélectionner toutes les dates relatives à un mois choisit
    Bon voilà où j'en suis , j'ai bien avancé, mais j'ai un souci :
    En testant le déroulement de la macro avec F8, lorsque je rentre par exemple : mai-2007 Eh bien dans ma "feuil2" les dates correspondant à : mai 2006 sont copier ?????
    _____________________________________________________________
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    Sub TotalHtTvaCopiePourTravail() 
     
    Dim LeMois As Variant
    Dim Cell As Range
    Dim BonMois As Date
     
     
    'Insertion d'une boite de message pour choisir le mois
    LeMois = InputBox("Saisir le mois recherché", "SAISIE DU MOIS", "mois-aaaa")
    'On suppose que la date a été saisie sous une autre forme (ex. juin 06)...
    '... mais on cherche juin-06  -> On doit formater la date
    BonMois = CVar(Format(CDate(LeMois), "mmmm-yyyy")) ' donne "mois-année"
     
     
    Do While Not IsDate(BonMois)
    LeMois = InputBox("Mauvaise saisie du mois" & Chr(10) & _
              "Re-Saisir le mois" & Chr(10) & _
              "Par exemple : mai-2006", "SAISIE DU MOIS", "mois-aaaa")
    Loop
     
    'Sélection du tableau actif
    Sheets("Feuil1").Select
    Range("A7").Select
        Set tbl = ActiveCell.CurrentRegion
    tbl.Offset(6, 0).Resize(tbl.Rows.Count - 1, tbl.Columns.Count).Select
     
    'Tri des dates valeurs en ordre décroissant
    Selection.Sort Key1:=Range("A8"), Order1:=xlDescending, Header:=xlGuess, _
    OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
    DataOption1:=xlSortNormal
     
    Plage = Range("A8", Range("A8").EntireColumn.Find(What:="*", _
                SearchDirection:=xlPrevious)).Select
     
     
    For Each Cell In Selection  'Pour chaque cellule de la sélection
        If Month(Cell) = Month(BonMois) Then    'Si le mois = le mois cherché, alors
     
        'Copier les lignes correspondantes dans "Feuil2"
        Cell.EntireRow.Copy Sheets("Feuil2").Cells(Sheets("Feuil2").Range("A65536").End(xlUp).Row + 1, 1)
        End If
    Next Cell   'Recherche sur les cellules suivantes
     
    Application.CutCopyMode = False     'Annule mode copie
     
    End Sub
    ____________________________________________________________

  12. #12
    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
    Points : 15 543
    Points
    15 543
    Par défaut
    Au lieu de
    If Month(Cell) = Month(BonMois) Then 'Si le mois = le mois cherché, alors
    tu testes également l'année
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Month(Cell) = Month(BonMois) and Year(Cell) = Year(BonneAnnée) then
    Tu dis

    A+

  13. #13
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 9
    Points : 2
    Points
    2
    Par défaut [VBA-E] Sélectionner toutes les dates relatives à un mois choisit
    Bonsoir,
    Merci pour la réponse
    Je réponds un peu tard, mais j'ai pas eu trop le temps ces jours-ci .

    J'ai testé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Month(Cell) = Month(BonMois) and Year(Cell) = Year(BonneAnnée) then
    Mais là , je n'ai aucune copie de lignes dans la feuille2

    Je cherche pourquoi, mais je trouve pas
    Dans l'espoir de votre réponse !
    merci d'avance

  14. #14
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    bonjour

    ci joint une autre approche

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    Sub TotalHtTvaCopiePourTravail()
    Dim LeMois As Integer, Annee As Integer
    Dim Cell As Range
    Dim BonMois As Date
     
    LeMois = InputBox("Saisir le mois recherché(valeur entre 1 et 12", _
    "SAISIE DU MOIS", 1)
    Annee = InputBox("Saisir l'année cible", "SAISIE DE L'ANNEE", 2006)
     
    Do While Not IsNumeric(LeMois) And LeMois < 1 And LeMois > 12
    LeMois = InputBox("Mauvaise saisie du mois" & Chr(10) & _
              "Re-Saisir le mois" & Chr(10) & _
              "Une valeur entre 1 et 12", "SAISIE DU MOIS", 1)
    Loop
     
    'Sélection du tableau actif
    Sheets("Feuil1").Select
    Range("A7").Select
        Set tbl = ActiveCell.CurrentRegion
    tbl.Offset(6, 0).Resize(tbl.Rows.Count - 1, tbl.Columns.Count).Select
     
    'Tri des dates valeurs en ordre décroissant
    Selection.Sort Key1:=Range("A8"), Order1:=xlDescending, Header:=xlGuess, _
    OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
    DataOption1:=xlSortNormal
     
    Plage = Range("A8", Range("A8").EntireColumn.Find(What:="*", _
                SearchDirection:=xlPrevious)).Select
     
     
    For Each Cell In Selection  'Pour chaque cellule de la sélection
        If Month(Cell) = LeMois And Year(Cell) = Annee Then
        'Copier les lignes correspondantes dans "Feuil2"
        Cell.EntireRow.Copy Sheets("Feuil2").Cells(Sheets("Feuil2"). _
        Range("A65536").End(xlUp).Row + 1, 1)
        End If
    Next Cell 'Recherche sur les cellules suivantes
     
    Application.CutCopyMode = False 'Annule mode copie
    End Sub


    bonne journée
    michel

  15. #15
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 9
    Points : 2
    Points
    2
    Par défaut [VBA-E] Sélectionner toutes les dates relatives à un mois choisit
    Bonsoir Michel,

    Super, ton code me permets de faire exactement ce que je voulais faire...
    Ca MARCHE !
    Je te dis un grand merci .


    Bien cordialement .
    Fifi.

  16. #16
    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
    Points : 15 543
    Points
    15 543
    Par défaut
    Inutile de crier, on n'est pas sourd ! T'as de la veine que zazaraignée ne soit pas passée par là !

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

Discussions similaires

  1. Sélectionner toutes les dates entre deux dates
    Par corgato dans le forum Langage
    Réponses: 2
    Dernier message: 09/11/2008, 20h50
  2. obtenir toutes les dates valides comprises entre dates
    Par captainamerica75 dans le forum VBA Access
    Réponses: 3
    Dernier message: 01/06/2006, 13h25
  3. [VB6] Toutes les dates entre un interval dans un dynaset
    Par tim69000 dans le forum VB 6 et antérieur
    Réponses: 18
    Dernier message: 10/04/2006, 15h13
  4. Retourner toutes les dates d'une période
    Par Gwipi dans le forum Requêtes
    Réponses: 2
    Dernier message: 27/03/2006, 23h44
  5. [VB6]sortir toutes les dates entre deux dates
    Par AlfiQue dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 20/02/2006, 19h09

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