Se connecter avec
S'enregistrer | Connectez-vous

Format de date dans Excel et Formulaire

Dernière réponse : dans Programmation

Bonjour,

J'ai un soucis sur un formulaire Excel.
A l'initialisation du formulaire, la date affichée est bien au format "dd/MM/yyyy"
A l'enregistrement la date est au format "dddd, dd MMMM yyyy"

Je r'ouvre le formulaire, j'enregistre de nouveau sans rien toucher, la date est inversée (format dddd, MMMM dd yyyy)

Y'a t'il une solution ????

Si après le code utilisé

  1. 'initialisation du formulaire
  2. Dim i As Integer 'Date
  3.  
  4. ' Date de Début
  5. For i = 1 To 5
  6. Me.Controls("Date" & i).Value = Format(Sheets("HPRES1").Range("A" & i + 10).Value, ("dd/mm/yyyy"))
  7. Next
  8. For i = 6 To 10
  9. Me.Controls("Date" & i).Value = Format(Sheets("HPRES1").Range("A" & i + 12).Value, ("dd/mm/yyyy"))
  10. Next
  11. For i = 11 To 15
  12. Me.Controls("Date" & i).Value = Format(Sheets("HPRES1").Range("A" & i + 14).Value, ("dd/mm/yyyy"))
  13. Next


et dans la partie validation du formulaire

  1. 'Dates
  2. For i = 1 To 5
  3. Sheets("HPRES1").Range("A" & i + 10).NumberFormat = "dddd, dd MMMM yyyy"
  4. Sheets("HPRES1").Range("A" & i + 10).Value = Me.Controls("Date" & i).Value
  5. Next
  6. For i = 6 To 10
  7. Sheets("HPRES1").Range("A" & i + 12).NumberFormat = "dddd, dd MMMM yyyy"
  8. Sheets("HPRES1").Range("A" & i + 12).Value = Me.Controls("Date" & i).Value
  9. Next
  10. For i = 11 To 15
  11. Sheets("HPRES1").Range("A" & i + 14).NumberFormat = "dddd, dd MMMM yyyy"
  12. Sheets("HPRES1").Range("A" & i + 14).Value = Me.Controls("Date" & i).Value
  13. Next


D'avance merci

Autres pages sur : format date excel formulaire

Lassé par la pub ? Créez un compte

Citation :
Je n'ai pas compris ton problème.
Tu le veux en quel format ?


Merci pour la réponse mais je viens juste de trouver la solution

Il me suffisait juste de rajouter CDate

  1. For i = 1 To 5
  2. Sheets("HPRES1").Range("A" & i + 10).Value = CDate(Me.Controls("Date" & i).Value)
  3. Next
  4. For i = 6 To 10
  5. Sheets("HPRES1").Range("A" & i + 12).Value = CDate(Me.Controls("Date" & i).Value)
  6. Next
  7. For i = 11 To 15
  8. Sheets("HPRES1").Range("A" & i + 14).Value = CDate(Me.Controls("Date" & i).Value)
  9. Next


Par contre j'ai un autre soucis maintenant, mais l'explication risque d'être un peu longue

Je débute sur le forum, alors je ne sais pas trop comment poster cette fomule assez longue

Cordialement
Expert Programmation

Bah, tant que tu es respectueux des règles (*), tu peux poster toute question, même alambiquée :D  Il faut juste que ça reste compréhensible pour quelqu'un qui n'est pas sur ta machine avec ton problème ;) 




(*) Je ne dis pas ça pour toi :o 

Bon et bien je me lance.

Voilà, j'ai un formulaire qui se rempli en fonction de valeur saisie dans Excel, mais à l'initialisation, il va chercher les valeurs selon le choix d'un combobox.
Pour la première partie tout se déroule correctement.

Ci-après le code actuel d'initialisation du formulaire

  1. Public Sub Intervenant_Change()
  2. Dim i As Integer 'Date
  3. Dim j As Integer 'Heure Début
  4. Dim k As Integer 'Heure Fin
  5. Dim o As Integer 'Observations
  6. Dim m As Integer 'Kilometres
  7. Dim H As Integer 'Heures effectuées
  8. If Intervenant.Value = Range("Base!C3").Value Then
  9. 'Initialisation des horaires
  10. Label37.Caption = Format(Range("HPRES1!G11").Value, ("hh:mm"))
  11. Label38.Caption = Format(Range("HPRES1!G12").Value, ("hh:mm"))
  12. Label39.Caption = Format(Range("HPRES1!G13").Value, ("hh:mm"))
  13. Label40.Caption = Format(Range("HPRES1!G14").Value, ("hh:mm"))
  14. Label36.Caption = Format(Range("HPRES1!G15").Value, ("hh:mm"))
  15. Label69.Caption = Format(Range("HPRES1!G22").Value, ("hh:mm"))
  16. Label70.Caption = Format(Range("HPRES1!G18").Value, ("hh:mm"))
  17. Label71.Caption = Format(Range("HPRES1!G19").Value, ("hh:mm"))
  18. Label72.Caption = Format(Range("HPRES1!G20").Value, ("hh:mm"))
  19. Label73.Caption = Format(Range("HPRES1!G21").Value, ("hh:mm"))
  20. Label102.Caption = Format(Range("HPRES1!G29").Value, ("hh:mm"))
  21. Label103.Caption = Format(Range("HPRES1!G25").Value, ("hh:mm"))
  22. Label104.Caption = Format(Range("HPRES1!G26").Value, ("hh:mm"))
  23. Label105.Caption = Format(Range("HPRES1!G27").Value, ("hh:mm"))
  24. Label106.Caption = Format(Range("HPRES1!G28").Value, ("hh:mm"))
  25. 'Initialisation des dates
  26. '***************************************************************************************
  27. ' Date de Début
  28. For i = 1 To 5
  29. Me.Controls("Date" & i).Value = Format(Sheets("HPRES1").Range("A" & i + 10).Value, ("dd/mm/yyyy"))
  30. Next
  31. For i = 6 To 10
  32. Me.Controls("Date" & i).Value = Format(Sheets("HPRES1").Range("A" & i + 12).Value, ("dd/mm/yyyy"))
  33. Next
  34. For i = 11 To 15
  35. Me.Controls("Date" & i).Value = Format(Sheets("HPRES1").Range("A" & i + 14).Value, ("dd/mm/yyyy"))
  36. Next
  37. '***************************************************************************************
  38. 'Initialisation des Heures
  39. '***************************************************************************************
  40. ' Heure de Début
  41.  
  42. For j = 1 To 5
  43. Me.Controls("HD" & j).Value = Format(Sheets("HPRES1").Range("C" & j + 10).Value, ("hh:mm"))
  44. Next
  45.  
  46. For j = 6 To 10
  47. Me.Controls("HD" & j).Value = Format(Sheets("HPRES1").Range("C" & j + 12).Value, ("hh:mm"))
  48. Next
  49.  
  50. For j = 11 To 15
  51. Me.Controls("HD" & j).Value = Format(Sheets("HPRES1").Range("C" & j + 14).Value, ("hh:mm"))
  52. Next
  53. '***************************************************************************************
  54. ' Heure de Fin
  55. For k = 1 To 5
  56. Me.Controls("HF" & k).Value = Format(Sheets("HPRES1").Range("E" & k + 10).Value, ("hh:mm"))
  57. Next
  58. For k = 6 To 10
  59. Me.Controls("HF" & k).Value = Format(Sheets("HPRES1").Range("E" & k + 12).Value, ("hh:mm"))
  60. Next
  61. For k = 11 To 15
  62. Me.Controls("HF" & k).Value = Format(Sheets("HPRES1").Range("E" & k + 14).Value, ("hh:mm"))
  63. Next
  64. '***************************************************************************************
  65. ' Observations
  66. For o = 1 To 5
  67. Me.Controls("OB" & o).Value = Sheets("HPRES1").Range("H" & o + 10).Value
  68. Next
  69. For o = 6 To 10
  70. Me.Controls("OB" & o).Value = Sheets("HPRES1").Range("H" & o + 12).Value
  71. Next
  72. For o = 11 To 15
  73. Me.Controls("OB" & o).Value = Sheets("HPRES1").Range("H" & o + 14).Value
  74. Next
  75. '***************************************************************************************
  76. 'Initialisation des kilometres
  77. For m = 1 To 6
  78. km1.Value = Sheets("HPRES1").Range("H10").Value
  79. km2.Value = Sheets("HPRES1").Range("H16").Value
  80. km3.Value = Sheets("HPRES1").Range("H17").Value
  81. km4.Value = Sheets("HPRES1").Range("H23").Value
  82. km5.Value = Sheets("HPRES1").Range("H24").Value
  83. km6.Value = Sheets("HPRES1").Range("H30").Value
  84. Next
  85. '***************************************************************************************
  86. 'Heures effectuées
  87. HT1.Value = Format(Sheets("HPRES1").Range("G10").Value, ("hh:mm"))
  88. HT2.Value = Format(Sheets("HPRES1").Range("G16").Value, ("hh:mm"))
  89. HT3.Value = Format(Sheets("HPRES1").Range("G17").Value, ("hh:mm"))
  90. HT4.Value = Format(Sheets("HPRES1").Range("G23").Value, ("hh:mm"))
  91. HT5.Value = Format(Sheets("HPRES1").Range("G24").Value, ("hh:mm"))
  92. HT6.Value = Format(Sheets("HPRES1").Range("G30").Value, ("hh:mm"))
  93.  
  94. '***************************************************************************************
  95. MsgBox "Vous êtes sur la fiche de " & Sheets("Base").Range("C3").Value
  96.  
  97. End If
  98. End Sub


Mon classeur est composé de 12 onglets respectivement nommé HPRES1 à HPRES2, tous identiques au niveau des colonnes et des lignes
Chaque onglet correspond à un consultant dans mon cas, référencé dans l'onglet Base de la ligne C3 à C14.
Chaque consultant dans mon formulaire apparait dans la sélection du combobox "Intervenant".

Je souhaiterai donc trouver une solution pour que lorsque la valeur du combo "Intervenant" s'initialise, à l'enregistrement, il aille positionner les données dans l'onglet associé au consultant.

Si après le code actuel de validation des données

  1. Public Sub Valider_Click()
  2.  
  3. Dim i As Integer 'Date
  4. Dim j As Integer 'Heure Début
  5. Dim k As Integer 'Heure Fin
  6. Dim o As Integer 'Observations
  7. Dim H As Integer 'Heures effectuées
  8.  
  9. If Intervenant.Value = Range("Base!C3").Value Then
  10.  
  11. 'Consultant 1 HPRES1
  12. 'Dates
  13. For i = 1 To 5
  14. Sheets("HPRES1").Range("A" & i + 10).Value = CDate(Me.Controls("Date" & i).Value)
  15. Next
  16. For i = 6 To 10
  17. Sheets("HPRES1").Range("A" & i + 12).Value = CDate(Me.Controls("Date" & i).Value)
  18. Next
  19. For i = 11 To 15
  20. Sheets("HPRES1").Range("A" & i + 14).Value = CDate(Me.Controls("Date" & i).Value)
  21. Next
  22. '***************************************************************************************
  23. ' Heure de Début
  24. For j = 1 To 5
  25. Sheets("HPRES1").Range("C" & j + 10).Value = Me.Controls("HD" & j).Value
  26. Next
  27. For j = 6 To 10
  28. Sheets("HPRES1").Range("C" & j + 12).Value = Me.Controls("HD" & j).Value
  29. Next
  30. For j = 11 To 15
  31. Sheets("HPRES1").Range("C" & j + 14).Value = Me.Controls("HD" & j).Value
  32. Next
  33. '***************************************************************************************
  34. ' Heure de Fin
  35. For k = 1 To 5
  36. Sheets("HPRES1").Range("E" & k + 10).Value = Me.Controls("HF" & k).Value
  37. Next
  38. For k = 6 To 10
  39. Sheets("HPRES1").Range("E" & k + 12).Value = Me.Controls("HF" & k).Value
  40. Next
  41. For k = 11 To 15
  42. Sheets("HPRES1").Range("E" & k + 14).Value = Me.Controls("HF" & k).Value
  43. Next
  44. '***************************************************************************************
  45. ' Observations
  46. For o = 1 To 5
  47. Sheets("HPRES1").Range("H" & o + 10).Value = Me.Controls("OB" & o).Value
  48. Next
  49. For o = 6 To 10
  50. Sheets("HPRES1").Range("H" & o + 12).Value = Me.Controls("OB" & o).Value
  51. Next
  52. For o = 11 To 15
  53. Sheets("HPRES1").Range("H" & o + 14).Value = Me.Controls("OB" & o).Value
  54. Next
  55. '***************************************************************************************
  56. 'Initialisation des kilometres
  57. Sheets("HPRES1").Range("H10").Value = km1.Value
  58. Sheets("HPRES1").Range("H16").Value = km2.Value
  59. Sheets("HPRES1").Range("H17").Value = km3.Value
  60. Sheets("HPRES1").Range("H23").Value = km4.Value
  61. Sheets("HPRES1").Range("H24").Value = km5.Value
  62. Sheets("HPRES1").Range("H30").Value = km6.Value
  63.  
  64. '***************************************************************************************
  65. 'Heures effectuées
  66. Sheets("HPRES1").Range("G10").Value = HT1.Value
  67. Sheets("HPRES1").Range("G16").Value = HT2.Value
  68. Sheets("HPRES1").Range("G17").Value = HT3.Value
  69. Sheets("HPRES1").Range("G23").Value = HT4.Value
  70. Sheets("HPRES1").Range("G24").Value = HT5.Value
  71. Sheets("HPRES1").Range("G30").Value = HT6.Value
  72.  
  73.  
  74.  
  75.  
  76. End If
  77. End Sub


Voilà, j'espère avoir été suffisemment explicite quant à ma demande

Cordialement
Expert Programmation

Ah. En résumé, tu veux faire le lien entre le nom d'une feuille et la valeur du combo.

Bien. Quand tu sélectionnes une ligne dans un combo, la valeur de la propriété ListIndex du combo te donne le numéro de cette ligne.

Pour préciser quelle feuille considérer, tu donnes son nom, HPRES1 dans ton exemple.

Tu as deux solitions (rien que ça ;)  ) :

  • Trouver un lien entre ListIndex et le nom de la feuille. Je propose :
    "HPRES" & (Combo.ListIndex + 1)


  • Utiliser directement Sheets ( numéro ) plutôt que Sheets ( "Nom" ).


    Pour alléger ton code, tu veux utiliser With.
    Exemple :
    1. 'Code chiant à taper
    2. Sheets("HPRES1").Range("G10").Value = HT1.Value
    3. Sheets("HPRES1").Range("G16").Value = HT2.Value
    4. Sheets("HPRES1").Range("G17").Value = HT3.Value
    5. Sheets("HPRES1").Range("G23").Value = HT4.Value
    6. Sheets("HPRES1").Range("G24").Value = HT5.Value
    7. Sheets("HPRES1").Range("G30").Value = HT6.Value

    1. 'Code chiant à taper mais moins :D
    2. With Sheets("HPRES1")
    3. .Range("G10").Value = HT1.Value
    4. .Range("G16").Value = HT2.Value
    5. .Range("G17").Value = HT3.Value
    6. .Range("G23").Value = HT4.Value
    7. .Range("G24").Value = HT5.Value
    8. .Range("G30").Value = HT6.Value
    9. End
    Lassé par la pub ? Créez un compte