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 :

Finalisation de date sur USF [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 343
    Par défaut Finalisation de date sur USF
    Bonjour

    J'ai un USF avec trois combobox qui donne Jour, Mois et Année et j'ai un textbox auquel j'aimerais qui me donne la date au complet aprés avoir rempli les trois combobox au format (jj mmm yyyy)

    Voici mon code

    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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    Option Explicit
    Dim lig&, flag As Boolean 'mémorisation
     
    Private Sub CommandButton1_Click()
     
    ComboBox1 = ""
    ComboBox2 = ""
    ComboBox3 = ""
     
    ComboBox3.SetFocus
    End Sub
     
     
    Private Sub CommandButton2_Click()
    Unload Me
    End Sub
     
    Private Sub UserForm_Activate()
    Dim i As Integer
    For i = 2012 To 2020
    ComboBox1.AddItem i
    Next
    For i = 1 To 12
    ComboBox2.AddItem Application.Proper(Format(CDate("1/" & i), "mmmm"))
    Next
    For i = 1 To 31
    ComboBox3.AddItem i
    Next
    'CommandButton1.Visible = False
    End Sub
     
    Private Sub CheckBox1_Change()
    If CheckBox1 And Not flag Then
      ComboBox1 = Year(Date)
      ComboBox2.ListIndex = Month(Date) - 1
      ComboBox3 = Day(Date)
    End If
    End Sub
     
    Private Sub ComboBox1_Change()
    Recherche
    End Sub
     
    Private Sub ComboBox2_Change()
    Recherche
    End Sub
     
    Private Sub ComboBox3_Change()
    Recherche
    End Sub
    Sub Recherche()
    Dim dat$, tablo, i&
    lig = 0
    CheckBox1 = False
    'CommandButton1.Visible = False
    If ComboBox1.ListIndex < 0 Then ComboBox1 = ""
    If ComboBox2.ListIndex < 0 Then ComboBox2 = ""
    If ComboBox3.ListIndex < 0 Then ComboBox3 = ""
    If ComboBox1 = "" Or ComboBox2 = "" Or ComboBox3 = "" Then Exit Sub
    dat = ComboBox3 & "/" & ComboBox2.ListIndex + 1 & "/" & ComboBox1
    If Not IsDate(dat) Then MsgBox "Date non valide !", 48: ComboBox3.SetFocus: Exit Sub
    If CDate(dat) = Date Then flag = True: CheckBox1 = True: flag = False
    With Feuil4
      tablo = .Range("B6:D" & .[B65536].End(xlUp).Row)
      For i = 1 To UBound(tablo)
        If ComboBox3 = CStr(tablo(i, 1)) And ComboBox2 = tablo(i, 2) _
          And ComboBox1 = CStr(tablo(i, 3)) Then lig = i + 5: Exit For
      Next
     ' CommandButton1.Caption = IIf(lig, "Modifier", "Créer")
     ' CommandButton1.Visible = True
     
     ' If lig = 0 Then Exit Sub
      'TextBox10 = .Cells(lig, "E")
      'TextBox11 = .Cells(lig, "F")
      'TextBox12 = .Cells(lig, "I")
      'TextBox15 = .Cells(lig, "J")
      'TextBox13 = .Cells(lig, "L")
      'TextBox14 = .Cells(lig, "N")
    End With
    End Sub
    Je vous remercie d'avance

    Cordialement

    Max

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Peut être comme ceci ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    TextBox1.Text = Format(DateValue(ComboBox3.Text & " " & ComboBox2.Text & " " & ComboBox1.Text), "dddd d mmm yyyy")
    Hervé.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2007
    Messages : 6
    Par défaut Il reste à tester les jours de fin de mois
    Voici un exemple de code....

    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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    ' Déclaration des variables au niveau module
    Dim Vjour As Integer
    Dim VmoisT As String
    Dim VmoisI As Integer
    Dim van As Integer
    Dim VMadate As Date
     
     
    Private Sub CommandButton1_Click()
    ComboBox1 = ""
    ComboBox2 = ""
    ComboBox3 = ""
    ComboBox3.SetFocus
    End Sub
     
     
    Private Sub CommandButton2_Click()
    Unload Me
    End Sub
     
    Private Sub UserForm_Activate()
    Dim i As Integer
    For i = 2012 To 2020
        ComboBox1.AddItem i
    Next
    For i = 1 To 12
    ComboBox2.AddItem Application.Proper(Format(CDate("1/" & i), "mmmm"))
    Next
    For i = 1 To 31
    ComboBox3.AddItem i
    Next
    'CommandButton1.Visible = False
    End Sub
     
    Private Sub Combobox3_Change()
    Vjour = Me.ComboBox3.Value
    End Sub
     
    Private Sub ComboBox2_Change()
    VmoisT = Me.ComboBox2.Value
    Select Case VmoisT
    Case Is = "Janvier"
        VmoisI = 1
    Case Is = "Février"
        VmoisI = 2
    Case Is = "Mars"
        VmoisI = 3
    Case Is = "Avril"
        VmoisI = 4
    Case Is = "Mai"
        VmoisI = 5
    Case Is = "Juin"
        VmoisI = 6
    Case Is = "Juillet"
        VmoisI = 7
    Case Is = "Août"
        VmoisI = 8
    Case Is = "Septembre"
        VmoisI = 9
    Case Is = "Octobre"
        VmoisI = 10
    Case Is = "Novembre"
        VmoisI = 11
    Case Is = "Décembre"
        VmoisI = 12
    End Select
     
    End Sub
     
     
    Private Sub ComboBox1_Change()
    van = Me.ComboBox1.Value
     
    VMadate = DateSerial(van, VmoisI, Vjour)
    VMadate = Format(DateSerial(van, VmoisI, Vjour), "dd mmmm yyyy")
    Me.TextBox1.Value = VMadate
    End Sub

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 343
    Par défaut
    Bonjour emmadan,Hervé.

    Je vous remercie beaucoup super.

    Hervé juste une petite chose comment mettre la ligne ci-dessous pour que l'affichage se face automatiquement ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TextBox1.Text = Format(DateValue(ComboBox3.Text & " " & ComboBox2.Text & " " & ComboBox1.Text), "dddd d mmm yyyy")
    Merci et bonne journée

    Max

  5. #5
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Re,

    Tu peux mettre l'appel dans l'évennement Change des Combo avant ou après l'appel de la proc Recherche :
    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
     
    Private Sub ComboBox1_Change()
     
        AfficherDate
        Recherche
     
    End Sub
     
    Sub AfficherDate()
     
        If ComboBox1.Text <> "" And ComboBox2.Text <> "" And ComboBox3.Text <> "" Then
     
            TextBox1.Text = Format(DateValue(ComboBox3.Text & " " & ComboBox2.Text & " " & ComboBox1.Text), "dddd d mmm yyyy")
     
        End If
     
    End Sub
    Hervé.

  6. #6
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 343
    Par défaut
    Re bonsoir Hervé

    Je te remercie nickel.

    Bon WE

    Max

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

Discussions similaires

  1. Help!! Probleme avec les dates sur SQL SERVER
    Par Nadaa dans le forum MS SQL Server
    Réponses: 16
    Dernier message: 03/08/2006, 16h55
  2. affichage de la date sur forms 6i
    Par safou dans le forum Oracle
    Réponses: 4
    Dernier message: 06/10/2005, 10h58
  3. Pb cast date sur un linked Server Oracle
    Par bran_noz dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 13/07/2005, 15h50
  4. [C#]Recuperer la date sur un textbox
    Par kenzo080 dans le forum ASP.NET
    Réponses: 17
    Dernier message: 27/05/2005, 23h15
  5. [VB.NET] Pb avec date sur VB.Net
    Par mpascolo dans le forum Windows Forms
    Réponses: 4
    Dernier message: 06/01/2005, 09h14

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