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é
et dans la partie validation du formulaire
D'avance merci
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é
'initialisation du formulaire
Dim i As Integer 'Date
' Date de Début
For i = 1 To 5
Me.Controls("Date" & i).Value = Format(Sheets("HPRES1").Range("A" & i + 10).Value, ("dd/mm/yyyy"))
Next
For i = 6 To 10
Me.Controls("Date" & i).Value = Format(Sheets("HPRES1").Range("A" & i + 12).Value, ("dd/mm/yyyy"))
Next
For i = 11 To 15
Me.Controls("Date" & i).Value = Format(Sheets("HPRES1").Range("A" & i + 14).Value, ("dd/mm/yyyy"))
Next
et dans la partie validation du formulaire
'Dates
For i = 1 To 5
Sheets("HPRES1").Range("A" & i + 10).NumberFormat = "dddd, dd MMMM yyyy"
Sheets("HPRES1").Range("A" & i + 10).Value = Me.Controls("Date" & i).Value
Next
For i = 6 To 10
Sheets("HPRES1").Range("A" & i + 12).NumberFormat = "dddd, dd MMMM yyyy"
Sheets("HPRES1").Range("A" & i + 12).Value = Me.Controls("Date" & i).Value
Next
For i = 11 To 15
Sheets("HPRES1").Range("A" & i + 14).NumberFormat = "dddd, dd MMMM yyyy"
Sheets("HPRES1").Range("A" & i + 14).Value = Me.Controls("Date" & i).Value
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
For i = 1 To 5
Sheets("HPRES1").Range("A" & i + 10).Value = CDate(Me.Controls("Date" & i).Value)
Next
For i = 6 To 10
Sheets("HPRES1").Range("A" & i + 12).Value = CDate(Me.Controls("Date" & i).Value)
Next
For i = 11 To 15
Sheets("HPRES1").Range("A" & i + 14).Value = CDate(Me.Controls("Date" & i).Value)
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
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
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
Voilà, j'espère avoir été suffisemment explicite quant à ma demande
Cordialement
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
Public Sub Intervenant_Change()
Dim i As Integer 'Date
Dim j As Integer 'Heure Début
Dim k As Integer 'Heure Fin
Dim o As Integer 'Observations
Dim m As Integer 'Kilometres
Dim H As Integer 'Heures effectuées
If Intervenant.Value = Range("Base!C3").Value Then
'Initialisation des horaires
Label37.Caption = Format(Range("HPRES1!G11").Value, ("hh:mm"))
Label38.Caption = Format(Range("HPRES1!G12").Value, ("hh:mm"))
Label39.Caption = Format(Range("HPRES1!G13").Value, ("hh:mm"))
Label40.Caption = Format(Range("HPRES1!G14").Value, ("hh:mm"))
Label36.Caption = Format(Range("HPRES1!G15").Value, ("hh:mm"))
Label69.Caption = Format(Range("HPRES1!G22").Value, ("hh:mm"))
Label70.Caption = Format(Range("HPRES1!G18").Value, ("hh:mm"))
Label71.Caption = Format(Range("HPRES1!G19").Value, ("hh:mm"))
Label72.Caption = Format(Range("HPRES1!G20").Value, ("hh:mm"))
Label73.Caption = Format(Range("HPRES1!G21").Value, ("hh:mm"))
Label102.Caption = Format(Range("HPRES1!G29").Value, ("hh:mm"))
Label103.Caption = Format(Range("HPRES1!G25").Value, ("hh:mm"))
Label104.Caption = Format(Range("HPRES1!G26").Value, ("hh:mm"))
Label105.Caption = Format(Range("HPRES1!G27").Value, ("hh:mm"))
Label106.Caption = Format(Range("HPRES1!G28").Value, ("hh:mm"))
'Initialisation des dates
'***************************************************************************************
' Date de Début
For i = 1 To 5
Me.Controls("Date" & i).Value = Format(Sheets("HPRES1").Range("A" & i + 10).Value, ("dd/mm/yyyy"))
Next
For i = 6 To 10
Me.Controls("Date" & i).Value = Format(Sheets("HPRES1").Range("A" & i + 12).Value, ("dd/mm/yyyy"))
Next
For i = 11 To 15
Me.Controls("Date" & i).Value = Format(Sheets("HPRES1").Range("A" & i + 14).Value, ("dd/mm/yyyy"))
Next
'***************************************************************************************
'Initialisation des Heures
'***************************************************************************************
' Heure de Début
For j = 1 To 5
Me.Controls("HD" & j).Value = Format(Sheets("HPRES1").Range("C" & j + 10).Value, ("hh:mm"))
Next
For j = 6 To 10
Me.Controls("HD" & j).Value = Format(Sheets("HPRES1").Range("C" & j + 12).Value, ("hh:mm"))
Next
For j = 11 To 15
Me.Controls("HD" & j).Value = Format(Sheets("HPRES1").Range("C" & j + 14).Value, ("hh:mm"))
Next
'***************************************************************************************
' Heure de Fin
For k = 1 To 5
Me.Controls("HF" & k).Value = Format(Sheets("HPRES1").Range("E" & k + 10).Value, ("hh:mm"))
Next
For k = 6 To 10
Me.Controls("HF" & k).Value = Format(Sheets("HPRES1").Range("E" & k + 12).Value, ("hh:mm"))
Next
For k = 11 To 15
Me.Controls("HF" & k).Value = Format(Sheets("HPRES1").Range("E" & k + 14).Value, ("hh:mm"))
Next
'***************************************************************************************
' Observations
For o = 1 To 5
Me.Controls("OB" & o).Value = Sheets("HPRES1").Range("H" & o + 10).Value
Next
For o = 6 To 10
Me.Controls("OB" & o).Value = Sheets("HPRES1").Range("H" & o + 12).Value
Next
For o = 11 To 15
Me.Controls("OB" & o).Value = Sheets("HPRES1").Range("H" & o + 14).Value
Next
'***************************************************************************************
'Initialisation des kilometres
For m = 1 To 6
km1.Value = Sheets("HPRES1").Range("H10").Value
km2.Value = Sheets("HPRES1").Range("H16").Value
km3.Value = Sheets("HPRES1").Range("H17").Value
km4.Value = Sheets("HPRES1").Range("H23").Value
km5.Value = Sheets("HPRES1").Range("H24").Value
km6.Value = Sheets("HPRES1").Range("H30").Value
Next
'***************************************************************************************
'Heures effectuées
HT1.Value = Format(Sheets("HPRES1").Range("G10").Value, ("hh:mm"))
HT2.Value = Format(Sheets("HPRES1").Range("G16").Value, ("hh:mm"))
HT3.Value = Format(Sheets("HPRES1").Range("G17").Value, ("hh:mm"))
HT4.Value = Format(Sheets("HPRES1").Range("G23").Value, ("hh:mm"))
HT5.Value = Format(Sheets("HPRES1").Range("G24").Value, ("hh:mm"))
HT6.Value = Format(Sheets("HPRES1").Range("G30").Value, ("hh:mm"))
'***************************************************************************************
MsgBox "Vous êtes sur la fiche de " & Sheets("Base").Range("C3").Value
End If
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
Public Sub Valider_Click()
Dim i As Integer 'Date
Dim j As Integer 'Heure Début
Dim k As Integer 'Heure Fin
Dim o As Integer 'Observations
Dim H As Integer 'Heures effectuées
If Intervenant.Value = Range("Base!C3").Value Then
'Consultant 1 HPRES1
'Dates
For i = 1 To 5
Sheets("HPRES1").Range("A" & i + 10).Value = CDate(Me.Controls("Date" & i).Value)
Next
For i = 6 To 10
Sheets("HPRES1").Range("A" & i + 12).Value = CDate(Me.Controls("Date" & i).Value)
Next
For i = 11 To 15
Sheets("HPRES1").Range("A" & i + 14).Value = CDate(Me.Controls("Date" & i).Value)
Next
'***************************************************************************************
' Heure de Début
For j = 1 To 5
Sheets("HPRES1").Range("C" & j + 10).Value = Me.Controls("HD" & j).Value
Next
For j = 6 To 10
Sheets("HPRES1").Range("C" & j + 12).Value = Me.Controls("HD" & j).Value
Next
For j = 11 To 15
Sheets("HPRES1").Range("C" & j + 14).Value = Me.Controls("HD" & j).Value
Next
'***************************************************************************************
' Heure de Fin
For k = 1 To 5
Sheets("HPRES1").Range("E" & k + 10).Value = Me.Controls("HF" & k).Value
Next
For k = 6 To 10
Sheets("HPRES1").Range("E" & k + 12).Value = Me.Controls("HF" & k).Value
Next
For k = 11 To 15
Sheets("HPRES1").Range("E" & k + 14).Value = Me.Controls("HF" & k).Value
Next
'***************************************************************************************
' Observations
For o = 1 To 5
Sheets("HPRES1").Range("H" & o + 10).Value = Me.Controls("OB" & o).Value
Next
For o = 6 To 10
Sheets("HPRES1").Range("H" & o + 12).Value = Me.Controls("OB" & o).Value
Next
For o = 11 To 15
Sheets("HPRES1").Range("H" & o + 14).Value = Me.Controls("OB" & o).Value
Next
'***************************************************************************************
'Initialisation des kilometres
Sheets("HPRES1").Range("H10").Value = km1.Value
Sheets("HPRES1").Range("H16").Value = km2.Value
Sheets("HPRES1").Range("H17").Value = km3.Value
Sheets("HPRES1").Range("H23").Value = km4.Value
Sheets("HPRES1").Range("H24").Value = km5.Value
Sheets("HPRES1").Range("H30").Value = km6.Value
'***************************************************************************************
'Heures effectuées
Sheets("HPRES1").Range("G10").Value = HT1.Value
Sheets("HPRES1").Range("G16").Value = HT2.Value
Sheets("HPRES1").Range("G17").Value = HT3.Value
Sheets("HPRES1").Range("G23").Value = HT4.Value
Sheets("HPRES1").Range("G24").Value = HT5.Value
Sheets("HPRES1").Range("G30").Value = HT6.Value
End If
End Sub
Voilà, j'espère avoir été suffisemment explicite quant à ma demande
Cordialement
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 :
Utiliser directement Sheets ( numéro ) plutôt que Sheets ( "Nom" ).
Pour alléger ton code, tu veux utiliser With.
Exemple :
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
) :"HPRES" & (Combo.ListIndex + 1)
Pour alléger ton code, tu veux utiliser With.
Exemple :
'Code chiant à taper
Sheets("HPRES1").Range("G10").Value = HT1.Value
Sheets("HPRES1").Range("G16").Value = HT2.Value
Sheets("HPRES1").Range("G17").Value = HT3.Value
Sheets("HPRES1").Range("G23").Value = HT4.Value
Sheets("HPRES1").Range("G24").Value = HT5.Value
Sheets("HPRES1").Range("G30").Value = HT6.Value
'Code chiant à taper mais moins :D
With Sheets("HPRES1")
.Range("G10").Value = HT1.Value
.Range("G16").Value = HT2.Value
.Range("G17").Value = HT3.Value
.Range("G23").Value = HT4.Value
.Range("G24").Value = HT5.Value
.Range("G30").Value = HT6.Value
End
Lassé par la pub ? Créez un compte
Il faut juste que ça reste compréhensible pour quelqu'un qui n'est pas sur ta machine avec ton problème