Visual basic diffDate - Page 2
Répondre à la discussion
Page 2 sur 2 PremièrePremière 2
Affichage des résultats 31 à 43 sur 43

Visual basic diffDate



  1. #31
    Optimix

    Re : Visual basic diffDate


    ------

    Il n'y a pas de 13/17/2013 dans la liste que j'ai utilisée dans mes exemples. Les dates utilisées sont les suivantes :
    31/01/2014 - 28/03/2014 -28/02/2014 - 21/02/2014 - 03/01/2014 - 07/02/2014 - 17/01/2014 - 14/02/2014 - 29/11/2013 - 30/12/2013 - 07/03/2014 - 14/03/2014 - 21/03/2014 - 20/12/2013 - 10/01/2014 - 13/12/2013 - 17/11/2013 - 24/01/2014 - 06/12/2013.
    Le 13/12/2013 correspond à Perceval.
    J'ai l'impression que votre tableur pose de sérieux problèmes. Le mieux sera de vérifier dans votre établissement.

    -----
    Dernière modification par Optimix ; 17/11/2013 à 19h17.

  2. #32
    dalfred

    Re : Visual basic diffDate

    Oui je sais j'ai modifié mon message 4 minutes apres l avoir écrit, vous avez surement dû me répondre durant ces 4 minutes. Du coup j'ai mis ensuite :

    "Par contre j'ai vu que toutes les dates d'expiration étaient sous la forme MM/JJ/AAAA l'autre forme JJ/MM/AAAA marche t elle ?"

  3. #33
    Optimix

    Re : Visual basic diffDate

    La mise en forme d'une date est à la portée d'un débutant "tableur". Je vous laisse vous pencher sur le format des cellules.

  4. #34
    dalfred

    Re : Visual basic diffDate

    J'ai adapté la macro a mon programme mais je ne comprends pourquoi il y a une erreur de compilation (j'ai enlevé l'ouverture manuelle car elle sera intégrée dans un menu et j'ai pris 40 jours comme date à partir de laquelle on avertit)


    Code:
    Sub Macro2()
        Dim i As Long, DerLigne As Long
        Dim date1 As Date, date2 As Date
            
        ' On trie la liste des détenteurs de carte dans l'ordre alphabétique
        Sheets("Liste des usagers").Activate
        Cells.Select
        Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlYes, _
            OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
            DataOption1:=xlSortNormal
       
        ' On vide la liste
        UserForm1.ListBox1.Clear
        
        Dernligne = Sheets("Liste des usagers").Range("A" & Rows.Count).End(xlUp).Row
        For i = 2 To Dernligne
            date1 = DateSerial(Year(Now), Month(Now), Day(Now))
            date2 = CLng(Sheets("Liste des usagers").Cells(i, 4))
            If date2 - date1 < 40 Then
                UserForm1.ListBox1.AddItem Cells(i, 1) & " " & Cells(i, 2) & " Carte n° " & Cells(i, 3) & " ---> " & date2 - date1
                Rows(i & ":" & i).Select
                Selection.Font.ColorIndex = 3
            Else
                Rows(i & ":" & i).Select
                Selection.Font.ColorIndex = 1
            End If
        Next i
        
        UserForm1.Show
        
    End Sub
    Ca me met que l'erreur est au niveau du Userform1.ListBox1.Clear pourtant j'ai créé un userform avec un "zone de texte" que s'appelle bien ListBox1 et mon userform bien Userform1.
    (Ca met méthode or data number not found) et ca me surligne aussi le nom de ma macro qui s'appelle macro2. Ma listBox1 est vide au départ mais je devrai quand meme pouvoir la vider.
    Dernière modification par dalfred ; 18/11/2013 à 20h22.

  5. #35
    Optimix

    Re : Visual basic diffDate

    pourtant j'ai créé un userform avec un "zone de texte" que s'appelle bien ListBox1
    ????? Pourquoi une zone de texte ?

    Vous avez peut-être confondu TextBox et ListBox. Si c'est le cas, il est temps de vous plonger dans VBA.
    Si la fenêtre des propriétés de vos contrôles n'est pas visible, pressez la touche F4. Cliquez sur le contrôle que vous avez appelé ListBox1. Si en haut de la fenêtre des propriétés vous lisez TextBox1 TextBox dans la liste déroulante, c'est que vous vous êtes trompé de contrôle. Vous devez lire ListBox1 ListBox.

  6. #36
    dalfred

    Re : Visual basic diffDate

    Effectivement je m'étais trompé mais même en corrigeant ça il y a un problème au niveau du tri ca ne veut pas compiler, je vais essayer de trouver où est la faute

  7. #37
    Optimix

    Re : Visual basic diffDate

    C'est bon, vous avancez. Essayez ceci pour votre tri :
    Code:
        Cells.Select
        Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Key2:=Range("B2") _
            , Order2:=xlAscending, Header:=xlYes, OrderCustom:=1, MatchCase:=False _
            , Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2:= _
            xlSortNormal
    Si ça ne fonctionne toujours pas, lancez une nouvelle macro, triez la feuille "Liste des usagers" (ordre ascendant avec titre sur colonne 'Nom', puis sur colonne 'Prénom'), arrêtez la macro et comparez les codes.

  8. #38
    dalfred

    Re : Visual basic diffDate

    Ca me met this operation requires the merged cells to be identically sized.
    Car sur la page liste des usagers il y a des cellulles qui ont une hauteur plus importantes que d'autres et dans votre programme ca sélectionne toutes les cellules de la page or sur cette page il y a des cases qu'il ne faut pas sélectionner je pense.

    Du coup je suppose que les cellules à sélectionner sont toutes celles qui contiennent les informations concernant les personnes et que les cellules soient de la meme taille ?
    Dernière modification par dalfred ; 20/11/2013 à 11h50.

  9. #39
    Optimix

    Re : Visual basic diffDate

    Dans l'exemple que je vous ai donné, votre liste ne doit pas comprendre de cellules fusionnées ou vides. Sinon, c'est à vous de le gérer dans votre propre programme.

  10. #40
    dalfred

    Re : Visual basic diffDate

    Comment ca "de cellules vides" ? vous il y avait bien des cellules vides.

  11. #41
    Optimix

    Re : Visual basic diffDate

    Dans la plage A1 : D20 de la feuille "Cartes" de l'exemple que je vous ai donné il n'y a aucune cellule vide (20 noms, 20 prénoms, 20 n° de carte et 20 dates de péremption).
    Pour ma part, je vais en rester là, car je pense vous avoir déjà bien dégrossi le terrain. Bonne continuation.

  12. #42
    Lika0n

    Re : Visual basic diffDate

    Pour en revenir à la question de départ...

    Sur excel ca me renvoit pour le nombre de jours 319, nombre de mois 10 et année 0 je ne comprends pas. En admettant que ca soit mon excel qui bug je voudrais savoir si
    wD = DateDiff("d", "1/10/2013", "25/11/2013") devrait me donner 24 soit (25-1) ou 55 c'est a dire 30 jours en octobre + 25 en novembre ?
    A mon avis il fallait juste modifier comme ceci :
    wD = DateDiff("d", "25/11/2013", "1/10/2013")...

  13. #43
    JPL
    Responsable des forums

    Re : Visual basic diffDate

    Je pense que depuis 2013 dalfred a trouvé une solution Il faut toujours regarder la date avant de répondre.
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

Page 2 sur 2 PremièrePremière 2

Discussions similaires

  1. Problème de réception port série visual basic ( visual studio 2012)
    Par extremgear dans le forum Programmation et langages, Algorithmique
    Réponses: 9
    Dernier message: 30/07/2013, 22h44
  2. visual basic
    Par alzon dans le forum Programmation et langages, Algorithmique
    Réponses: 0
    Dernier message: 03/05/2012, 16h55
  3. visual basic ??!!
    Par omar.STE dans le forum Logiciel - Software - Open Source
    Réponses: 6
    Dernier message: 13/07/2008, 20h02
  4. Visual Basic
    Par invited280a227 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 17/09/2007, 12h45
  5. Visual Basic
    Par invite16ba2b9a dans le forum Logiciel - Software - Open Source
    Réponses: 4
    Dernier message: 09/01/2007, 10h09