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 :

recuperer le formatdate du system sous forme de de numberformat


Sujet :

Macros et VBA Excel

  1. #1
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut recuperer le formatdate du system sous forme de de numberformat
    Bonsoir a tous

    je souhaite formater un textbox en date dans une sub (ca c'est bon)

    mais dans l'apel de la sub les arguments en l'occurence format son optional

    je voudrais donc identifier le format date sytem automatiquement mais sous la forme de "dd/mm/yyyy" ou "mm/dd/yyyy" ou autre selon le system

    je ne sais pas si c'est possible

    on a bien FormatDateTime mais ca nous le donne en date et pas en format

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox FormatDateTime(Now, vbShortDate)
    je voudrais pas passer par une cellule intermediare pour en recuperer le number format
    et de toute facon par defaut le numberformat d'une cellule contenant une date et le format magique "m/d/yyyy" donc ca fait pas l'affaire

    des idées?
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  2. #2
    Expert éminent
    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
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour Patrick,

    Avec Application.International peut être ?
    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
     
    Sub Test()
     
        Dim FDate As String
        Dim Annee As Integer
        Dim Mois As Integer
        Dim Jour As Integer
        Dim SepDate As String
        Dim SymbAnnee As String
        Dim SymbMois As String
        Dim SymbJour As String
     
        FDate = FormatDateTime(Date, vbGeneralDate)
     
        Annee = Year(FDate)
        Mois = Month(FDate)
        Jour = Day(FDate)
     
        SepDate = Application.International(xlDateSeparator)
        SymbAnnee = Application.International(xlYearCode)
        SymbMois = Application.International(xlMonthCode)
        SymbJour = Application.International(xlDayCode)
     
        'ici, construction du format par comparaison sur FDate
     
    End Sub

  3. #3
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    Bonjour theze j'avais regardé deja du coté de app.international
    le probleme c'est
    que les fonction day et month donne 1 chifre quand c'est en dessous de 10 pour replacer un "jj" ou "mm" ou "yyyy" c'est pas triste ca devient vite un moulin
    je vais voir ce que je peux faire avec

    merci du retour
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re bon une ebauche comme ca
    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 test()
    MsgBox Date_Format(Date, 1)
    End Sub
    '
    Function Date_Format(Fdate, mode)
        Dim FDate2 As String
        Dim Annee%, Mois%, Jour%, SepDate$
        Fdate = FormatDateTime(Date, vbGeneralDate)
        Annee = Year(Fdate): Mois = Month(Fdate): Jour =Day(Fdate)
        If mode = 1 Then
            With Application
                Fdate = Replace(Fdate, Right("0" & Jour, 2), String(2, .International(xlDayCode)))
                Fdate = Replace(Fdate, Right("0" & Mois, 2), String(2, .International(xlMonthCode)))
                Fdate = Replace(Fdate, Right("00" & Annee, 4), String(4, .International(xlYearCode)))
            End With
        Else
            Fdate = Replace(Fdate, Right("0" & Jour, 2), String(2, "d"))
            Fdate = Replace(Fdate, Right("0" & Mois, 2), String(2, "m"))
            Fdate = Replace(Fdate, Right("00" & Annee, 4), String(4, "y"))
        End If
        Date_Format = Fdate
        'SepDate = Application.International(xlDateSeparator)
    End Function
    edit:
    sinon en plus simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub test()
        MsgBox Date_Format2()
    End Sub
    '
    Function Date_Format2()
        Dim Annee%, Mois%, Jour%, SepDate$, fdate
        fdate = Date
        Annee = Year(fdate): Mois = Month(fdate): Jour = Day(fdate)
        fdate = Replace(fdate, Right("0" & Jour, 2), String(2, "d"))
        fdate = Replace(fdate, Right("0" & Mois, 2), String(2, "m"))
        fdate = Replace(fdate, Right("000" & Annee, 4), String(4, "y"))
        Date_Format2 = fdate
        'SepDate = Application.International(xlDateSeparator)
    End Function
    qu'est ce que vous en pensez y a t-il plus simple ???
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #5
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 942
    Points
    55 942
    Billets dans le blog
    131
    Par défaut
    Salut Patrick,

    Je ne suis pas sûr que c'est plus simple que ta solution (que je n'ai pas testée)

    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
    Function getDateFormat() As String
      Dim dString As String, mString As String, yString As String
      Dim sep As String
     
      sep = Application.International(xlDateSeparator)
      dString = IIf(Application.International(xlDayLeadingZero), "dd", "d")
      mString = IIf(Application.International(xlMonthLeadingZero), "mm", "m")
      yString = IIf(Application.International(xl4DigitYears), "yyyy", "yy")
      Select Case Application.International(xlDateOrder)
        Case 0
          getDateFormat = mString & sep & dString & sep & yString
        Case 1
          getDateFormat = dString & sep & mString & sep & yString
        Case 2
          getDateFormat = yString & sep & mString & sep & dString
      End Select
      End Function
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  6. #6
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    Bonjour pierre
    non c'est pas plus simple mais toi tu inclu le format "x/x/xx" dans les 3 dispositions si je ne me trompe pas ou alors je n'ai pas compris ton code
    si effectivement un systeme dans un pays dtermine sa date system comme ca ca peut le faire
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  7. #7
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 942
    Points
    55 942
    Billets dans le blog
    131
    Par défaut
    Ma fonction détermine
    • le séparateur;
    • les formats utilisés pour les trois parties;
    • l'ordre dans lequel les parties sont proposées.



    Elle recompose alors le format selon les valeurs récupérées. Elle permet de repérer le format tel qu'il est défini dans les paramètres régionaux. Les d ou dd, m ou mm, yy ou yyyy sont testés. Je n'ai pas joué avec les daycode et autres parce qu'au final, en VBA, tu utiliseras les valeurs "internationales" (d, m et y). Je l'ai testée avec différents paramètres régionaux. Il faut noter qu'elle n'est pas générique VBA puisqu'elle utilise Application.International.

    Je ne connais pas toutes les fonctions date du VBA, mais je pense qu'il faudrait passer par les api si on souhaite la généraliser à VBA.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  8. #8
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 942
    Points
    55 942
    Billets dans le blog
    131
    Par défaut
    Une autre approche full vba

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Function getDateFormat() As String
      Dim s As Object
      Dim Key As String
     
      Set s = CreateObject("WScript.Shell")
      Key = "HKEY_CURRENT_USER\Control Panel\International\sShortDate"
      getDateFormat = s.RegRead(Key)
     
    End Function
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  9. #9
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    a ben oui pour le coup la je suis sur d'avoir le format régional utilisé
    un petit détail de rien du tout on sais jamais vba permissif/pas permissif

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub test()
    MsgBox getDateFormat
    End Sub
    '
    Function getDateFormat() As String
      Dim s As Object
      Dim Key As String
       Set s = CreateObject("WScript.Shell")
      Key = "HKEY_CURRENT_USER\Control Panel\International\sShortDate"
      getDateFormat = LCase(s.RegRead(Key))
    End Function
    en object anonyme ca donne ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub test()
        MsgBox getDateFormatSystem
    End Sub
    '
    Function getDateFormatSystem() As String
        With CreateObject("WScript.Shell"): getDateFormatSystem = LCase(.RegRead("HKEY_CURRENT_USER\Control Panel\International\sShortDate")): End With
    End Function
    à caser dans un module

    pour en revenir à ta proposition précédente, comme je veux un format 2 chiffres pour jour ,2 chiffres pour mois et le nombre de chiffres correspondant à l'année du format régional
    je n'ai besoins que de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Application.International(xl4DigitYears)
    Application.International(xlDateOrder)
    selon leur valeur je crée la matrice dd mm yy(yy) dans l'ordre du xlDateoOder.

    merci pour les retours j'ai de quoi faire
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  10. #10
    Membre expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 267
    Points : 3 663
    Points
    3 663
    Par défaut
    Bonjour,

    une question pour satisfaire ma curiosité :-)
    En général on a un format date pour l'appliquer à une date.
    Dans ce cas FormatDateTime(Now, vbShortDate) suffit.
    Quel est donc l'usage prévu ? Je ne vois pas et ça m'intrigue
    eric

  11. #11
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    @eriic
    ca t'intrigue parce que tu a pas compris la question
    je ne veux pas le format date je veux la chaine representant son format regional

    pourquoi c'est faire
    j'ai une sub dans la quelle j'injecte une chaine de format: exemple "dd/mm/yyyy" OU !!! rien (argument optional)

    si j'injecte rien vba doit me trouver tout seul la chaine correspondant a la chaine representant le format regional utilisé par le sytem

    est-ce plus clair maintenant ???

    @pierre meme si je suis seduit par wscript.shell qui rend la chose plus facile je vais opté pour application international car wscript .shell n'est pas suporté par MAC

    a moins que la MAC ne le suporte pas non plus

    au quel cas l'argument sera obligatoire pour MAC
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  12. #12
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    en gros voila ce que ca donne

    le debut de la sub

    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
    Sub control_saisie(txt As Object, KeyCode, Optional forme As String = "Default")
     
        Dim pos&, T$, X&, XL&, J&, M&, A&, MI&, JI&, AI&, AIPLUS&,Z&
        Select Case forme
        Case "dd/mm/yyyy", "jjmmaaaa", 1: Mask = "__/__/____": AIPLUS = 3: forme = "dd/mm/yyyy"
        Case "mm/dd/yyyy", "mmjjaaaa", 0: Mask = "__/__/____": AIPLUS = 3: forme = "mm/dd/yyyy"
        Case "yyyy/mm/dd", "aaaammjj", 2: Mask = "____/__/__": AIPLUS = 3: forme = "yyyy/mm/dd"
        Case "dd/mm/yy", "jjmmaa": Mask = "__/__/__": AIPLUS = 2: forme = "dd/mm/yy"
        Case "mm/dd/yy", "mmjjaa": Mask = "__/__/__": AIPLUS = 2: forme = "mm/dd/yy"    ' je sais pas si celui la existe
        Case "Default"
            Z = IIf(Application.International(xl4DigitYears), 4, 2)
            Select Case Application.International(xlDateOrder)
            Case 0: Mask = "__/__/" & String(Z, "_"): AIPLUS = 3: forme = "mm/dd/" & String(Z, "y")
            Case 1: Mask = "__/__/" & String(Z, "_"): AIPLUS = 3: forme = "dd/mm/" & String(Z, "y")
            Case 2: Mask = String(Z, "_") & "/__/__": AIPLUS = 3: forme = String(Z, "y") & "/mm/dd"
            End Select
        Case Else: KeyCode = 0: MsgBox "format demandé non accepté": Exit Sub
        End Select
    'reste du code 
    MsgBox forme
     
    end sub
    et l'apel du textbox sera

    Private Sub TextBox4_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    control_saisie TextBox3, KeyCode',un des arguments possible OU !!! rien !!!!!
    End Sub

    les arguments possibles sont

    1. dd/mm/yyyy
    2. mm/dd/yyyy
    3. yyyy/mm/dd
    4. jjmmaaaa
    5. mmjjaaaa
    6. dd/mm/yy
    7. mm/dd/yy
    8. mmjjaa
    9. jjmmaa
    10. 0
    11. 1
    12. 2


    voila
    si vous avez des idées pour simplifier tout ca n'hésitez pas
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  13. #13
    Membre expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 267
    Points : 3 663
    Points
    3 663
    Par défaut
    Bonjour patrick,

    si si, j'avais bien compris la question.
    C'est le pourquoi de cette étape intermédiaire qui m'échappe.
    Pour moi, si on a un format c'est pour s'en servir. Et, comme déjà dit, au moment du besoin FormatDateTime(ta_date, vbShortDate) (ou vbLongDate ou...) suffit.
    Je ne vois toujours pas l'intérêt de l'avoir sous la forme dd/mm/yyyy
    Ta réponse ne m'éclaire donc pas plus mais tu dois avoir tes raisons d'en passer par là, pas grave... :-)
    eric

  14. #14
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    peut etre que ceci t'aidera a comprendre a quoi me sert la chaine de formatage
    https://www.developpez.net/forums/bl...que-dynamique/
    elle me sert non seulement a formater une date dans un textbox mais aussi et surtout !! gérer les erreur de saisie
    je n'avais pas le format par defaut, il ne me reste plus qu'a l'ajouter
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  15. #15
    Membre expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 267
    Points : 3 663
    Points
    3 663
    Par défaut
    ok, ça m'éclaire plus :-)
    eric

  16. #16
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    j'aurais une toute derniere petite question qui me tarode depuis dimanche

    a propos de application.international(XlDateOrder) 0,1,2

    dans un system FR le format francais c'est 1 mais dans une autre config regional(US par exemple) le 1 donnera le format de la config ou les index sont fixes
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  17. #17
    Expert éminent
    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
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour Patrick,

    Je dirai en toute logique que c'est 0 mais je ne peux pas le confirmer puisque pas de système US !

  18. #18
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    bonjour theze et oui c'est ca le probleme il nous faut quelqu'un qui a la config us qui puisse nous dire ce que le 0,1,2 sort comme ordre
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  19. #19
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    en fait en reflechissant un peu

    si on considere que la fonction vba excel "Date" donne la date du jour dans le format du sytem quelque soit le pay ou region
    on peut faire simplement un remplacement

    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub test()
    MsgBox GetFormatDateSystem
    End Sub
    '
    Function GetFormatDateSystem()
    Dim Ldate$, J&, M&, A&, A_Long&
    Ldate = Date
    'determine les Positions
    J = InStr(1, Ldate, Day(Ldate)): M = InStr(1, Ldate, Month(Ldate)): A = InStr(1, Ldate, Year(Ldate)): A_long = Len(CStr(Year(Ldate)))
    'transformation en chaine représentative du  format 
    Mid(Ldate, J, 2) = String(2, "d"): Mid(Ldate, M, 2) = String(2, "m"): Mid(Ldate, A, A_long) = String(A_long, "y")
    GetFormatDateSystem = Ldate
    End Function
    ca fait pas pro mais ca fonctionne

    reste a savoir ce que sort Date dans les autres pays
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  20. #20
    Membre expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 267
    Points : 3 663
    Points
    3 663
    Par défaut
    Bonjour,

    application.international(XlDateOrder) 0,1,2
    dans un system FR le format francais c'est 1 mais dans une autre config regional(US par exemple) le 1 donnera le format de la config ou les index sont fixes
    Retourne bien l'index indiqué dans l'aide selon le format choisi.
    Tu peux te mettre en Anglais(Etats-unis) dans Région et langue, tu verras que ça suit.
    Je pense que ça peut régler ton problème en effet.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Ldate = Date
    'determine les Positions
    J = InStr(1, Ldate, Day(Ldate)): M = InStr(1, Ldate, Month(Ldate)): A = InStr(1, Ldate, Year(Ldate)): A_long = Len(CStr(Year(Ldate)))
    Avant-hier tu aurais été embêté... On était le 11/11 ou le 11/11 ? :-)
    Impose une date sans ambiguïté comme 15/01/2018

    Quant à :
    ça ne peut que te ramener 4 même si LDate="13/11/18"
    eric

Discussions similaires

  1. Obtenir date system sous forme jj-mm-aa hh-mm-ss
    Par miss_ana dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 02/02/2014, 19h48
  2. Java recuperer le temps sous forme de long
    Par toure32 dans le forum Langage
    Réponses: 7
    Dernier message: 12/05/2011, 17h05
  3. Recuperer les donnees d'une base de donnee sous forme de liste
    Par j-gat dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 29/11/2010, 03h45
  4. recuperer une requete SQL sous forme de tableau EXCEL
    Par skillipo dans le forum VBA Access
    Réponses: 0
    Dernier message: 06/12/2007, 17h45
  5. Recuperer Nom_machine sous Forms 10G
    Par Challenger dans le forum Forms
    Réponses: 10
    Dernier message: 31/05/2005, 17h06

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