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 :

problème formulaire textbox (numérique)


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Mai 2015
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Mai 2015
    Messages : 77
    Par défaut problème formulaire textbox (numérique)
    Bonjour,

    étant débutant, je viens de me rendre compte d'une grosse bêtise de ma part !
    En effet, j'ai créé un formulaire pour rendre la saisie plus rapide MAIS je me rends compte que les valeurs numériques saisies dans les textbox de mon userform ne sont pas pris en compte dans les formules car elles sont pris comme du texte ! J'ai une trentaine de textbox sur l'userform mais je suis prêt s'il le faut à faire des changements un par un et à répéter 30 fois la même manip s'il le faut . J'ai l'impression d'avoir le même problème avec deux combobox.....

    le code du formulaire est celui-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub CommandButton1_Click()
    derligne = Feuil2.Range("a1956").End(xlUp).Row + 1
    For Each Ctrl In UserForm2.Controls
    colonne = Val(Ctrl.Tag)
    If colonne > 0 Then Feuil2.Cells(derligne, colonne) = Ctrl
    Next
    End
    End Sub

  2. #2
    Invité
    Invité(e)
    Par défaut
    If colonne > 0 Then Feuil2.Cells(derligne, colonne) = Val(replace(Ctrl,",","."))

  3. #3
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, toujours consultable : Obliger une saisie numérique dans une TextBox
    A voir également ( allègement et centralisation ) : http://www.developpez.net/forums/d49...e/#post2994774

  4. #4
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    qu'est ce que tu entends par "ça ne marche pas"
    la ligne 5 me parait suspecte, tu envoies Ctrl sans propriété dans ta plage
    en ajoutant l'absence de déclaration des variables ...

    EDIT : y'a du monde sur la corde

  5. #5
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Mai 2015
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Mai 2015
    Messages : 77
    Par défaut
    Merci à vous pour vos réponses.

    Rdurupt... cela marche super bien merci... mais trop bien car sur l'userform il y a aussi des textbox ou des combobox a gardé en texte

    Dans l'initialize de l'usf je ne peux pas déclarer les textbox en numérique? tant pis si je dois le faire une par une ce n'est pas un pb. Quand on n'a pas de tête on a des jambes
    Merci

  6. #6
    Membre chevronné
    Homme Profil pro
    Ingénieur Industrialisation
    Inscrit en
    Mai 2015
    Messages
    222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Industrialisation
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2015
    Messages : 222
    Par défaut
    Salut

    Intéresse-toi aux fonctions de conversion !

    Par exemple, ta TextBox a sa valeur comprise comme une String, par exemple "53.4". Si tu utilises la fonction CSng(TextBox1.Text), alors tu obtiendras la valeur 53.4 et plus une chaîne de caractères "5" puis "3" puis "." puis "4"...

    Tu as plusieurs fonctions (Attention, il faut que le texte soit cohérent avec ta demande !) :

    CInt(String) : Convertit du texte en nombre entier
    CSng(String) : Convertit en Single
    CDbl(String) : Convertit en Double
    CLng(String) : Convertit en Long
    ...
    https://msdn.microsoft.com/en-us/lib.../gg278896.aspx

    Cordialement

  7. #7
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Mai 2015
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Mai 2015
    Messages : 77
    Par défaut
    Bonsoir quentin,

    il n'y a pas un truc simple même si je dois le répéter 30 Fois dans mon userform sur chaque textbox?

  8. #8
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, voir avec les liens donnés plus haut. Sinon faire une recherche sur les modules de classe concernant les TextBoxes.

  9. #9
    Membre Expert
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Par défaut
    Bonjour

    Un truc très simple:

    Remplace Cells(1, 1).Value par Cells(1, 1).FormulaLocal et assure-toi, si les Combobox et les TextBox contiennent un nombre, que ce nombre soit au format local ( virgule comme séparateur décimal si la virgule est le séparateur décimal sur cet ordi )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub tt()
     
    Cells(1, 1).FormulaLocal = Combobox1.Text
    Cells(1, 1).FormulaLocal = Combobox1.Value
    Cells(1, 1).FormulaLocal = Combobox1 'JAMAIS
     
    End Sub

  10. #10
    Invité
    Invité(e)
    Par défaut
    If colonne > 0 Then Feuil2.Cells(derligne, colonne) = TrouveType(Ctrl)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Function TrouveType(V)
    TrouveType = V
    If IsDate(TrouveType) = True And InStr(TrouveType, "/") <> 0 And InStr(TrouveType, ":") <> 0 Then TrouveType = Format(TrouveType, "yyyy-mm-dd hh:mm"): Exit Function
    If IsDate(TrouveType) = True And InStr(TrouveType, "/") <> 0 Then TrouveType = Format(TrouveType, "yyyy-mm-dd"): Exit Function
    If IsNumeric(Replace(TrouveType, ".", ",")) = True Then TrouveType = Replace(TrouveType, ",", "."): Exit Function
    End Function

  11. #11
    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,

    Pour les TextBox qui reçoivent des valeurs numériques, tu peux utiliser ce type de contrainte afin de n'avoir que des chiffres. Les procédures évènementielles "KeyDown" des TextBox devant recevoir des chiffres appelle la procédure "Numerique" qui se charge de contrôler (et modifier si nécessaire) si se sont bien des chiffres qui sont saisis ainsi que d'adapter le séparateur décimal :
    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
     
    Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
     
        Numerique TextBox1, KeyCode 'KeyCode passé par référence (par défaut dans VB)
     
    End Sub
     
    Private Sub TextBox2_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
     
        Numerique TextBox2, KeyCode 'KeyCode passé par référence (par défaut dans VB)
     
    End Sub
     
    Sub Numerique(Txt As MSForms.TextBox, CodeCle As MSForms.ReturnInteger)
     
        Select Case CodeCle
     
            Case 96 To 105
                'des chiffres donc ne rien faire...
     
            Case 110, 188
     
                'séparateur décimal
                If InStr(Txt, ",") > 1 Or InStr(Txt, ".") > 1 Then
                    CodeCle = 0
                    Exit Sub
                End If
     
                If Chr(46) <> Format(0, ".") Then
                    CodeCle = 188
                End If
     
                If Chr(44) <> Format(0, ".") Then
                    CodeCle = 110
                End If
     
            Case Else
     
                CodeCle = 0
     
        End Select
     
    End Sub
    Par contre, je ne vois pas l'utilité de ce test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    If colonne > 0 Then Feuil2.Cells(derligne, colonne) = Ctrl
    si tu mets le n° de colonne dans les propriétés "Tag" des TextBox, je pense que tu commence au minimum à 1 !
    Je verrai le code plutôt de cette façon :
    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
     
    Private Sub CommandButton1_Click()
     
        derligne = Feuil2.Range("a1956").End(xlUp).Row + 1
     
        For Each Ctrl In UserForm2.Controls
     
            colonne = Val(Ctrl.Tag)
     
            If IsNumeric(Ctrl.Text) Then
     
                'force VB à faire la conversion
                Feuil2.Cells(derligne, colonne) = Ctrl.Text * 1
     
            Else
     
                Feuil2.Cells(derligne, colonne) = Ctrl.Text
     
            End If
     
        Next
     
    End Sub
    Hervé.

  12. #12
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Mai 2015
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Mai 2015
    Messages : 77
    Par défaut
    Bonjour et merci à tous. Merci vraiment de votre aide.

    J'ai travaillé tout le matin là dessus sans regarder le forum donc je n'avais pas vu vos propositions et vous allez probablement halluciner vu la médiocrité de ce code mais bon je fais ce que je peux promis !!!!!
    Quand je saisis des nombre entier cela fonctionne, il les prend bien et fait des calculs ensuite sur ces cellules donc je suis déjà content de cela.
    Mais je peux rentrer des nombres décimaux et là il ne les prend pas en compte et les garde en texte. J'imagine que je ne suis plus tres loin de la solution.
    Âme sensible s'abstenir...... Que dois je changer svp ?

    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
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    Private Sub CommandButton1_Click()
     
    If TextBox1.Text <> "" Then
    TextBox1.Value = CDate(TextBox1.Text)
    End If
     
    If TextBox3.Text <> "" Then
    TextBox3.Value = CDbl(TextBox3.Value)
    End If
     
    If TextBox5.Text <> "" Then
    TextBox5.Value = CDbl(TextBox5.Text)
    End If
     
    If TextBox8.Text <> "" Then
    TextBox8.Value = CDbl(TextBox8.Text)
    End If
     
    If TextBox10.Text <> "" Then
    TextBox10.Value = CDbl(TextBox10.Text)
    End If
     
    If TextBox12.Text <> "" Then
    TextBox12.Value = CDbl(TextBox12.Text)
    End If
     
    If TextBox14.Text <> "" Then
    TextBox14.Value = CDbl(TextBox14.Text)
    End If
     
    If TextBox16.Text <> "" Then
    TextBox16.Value = CDbl(TextBox16.Text)
    End If
     
    If TextBox18.Text <> "" Then
    TextBox18.Value = CDbl(TextBox18.Text)
    End If
     
    If TextBox20.Text <> "" Then
    TextBox20.Value = CDbl(TextBox20.Text)
    End If
     
    If TextBox22.Text <> "" Then
    TextBox22.Value = CDbl(TextBox22.Text)
    End If
     
    If TextBox26.Text <> "" Then
    TextBox26.Value = CDbl(TextBox26.Text)
    End If
     
    If TextBox28.Text <> "" Then
    TextBox28.Value = CDbl(TextBox28.Text)
    End If
     
    If TextBox30.Text <> "" Then
    TextBox30.Value = CDbl(TextBox30.Text)
    End If
     
    If TextBox32.Text <> "" Then
    TextBox32.Value = CDbl(TextBox32.Text)
    End If
     
    If TextBox34.Text <> "" Then
    TextBox34.Value = CDbl(TextBox34.Text)
    End If
     
    If TextBox36.Text <> "" Then
    TextBox36.Value = CDbl(TextBox36.Text)
    End If
     
    If TextBox38.Text <> "" Then
    TextBox38.Value = CDbl(TextBox38.Text)
    End If
     
    If TextBox40.Text <> "" Then
    TextBox40.Value = CDbl(TextBox40.Text)
    End If
     
     
    If TextBox42.Text <> "" Then
    TextBox42.Value = CDbl(TextBox42.Text)
    End If
     
     
    If TextBox44.Text <> "" Then
    TextBox44.Value = CDbl(TextBox44.Text)
    End If
     
     
    If TextBox46.Text <> "" Then
    TextBox46.Value = CDbl(TextBox46.Text)
    End If
     
    If TextBox48.Text <> "" Then
    TextBox48.Value = CDbl(TextBox48.Text)
    End If
     
    If TextBox50.Text <> "" Then
    TextBox50.Value = CDbl(TextBox50.Text)
    End If
     
    If TextBox52.Text <> "" Then
    TextBox52.Value = CDbl(TextBox52.Text)
    End If
     
    If TextBox54.Text <> "" Then
    TextBox54.Value = CDbl(TextBox54.Text)
    End If
     
    If TextBox56.Text <> "" Then
    TextBox56.Value = CDbl(TextBox56.Text)
    End If
     
    If TextBox58.Text <> "" Then
    TextBox58.Value = CDbl(TextBox58.Text)
    End If
     
    If TextBox60.Text <> "" Then
    TextBox60.Value = CDbl(TextBox60.Text)
    End If
     
    If TextBox62.Text <> "" Then
    TextBox62.Value = CDbl(TextBox62.Text)
    End If
     
    If TextBox63.Text <> "" Then
    TextBox63.Value = CDbl(TextBox63.Text)
    End If
     
    If TextBox64.Text <> "" Then
    TextBox64.Value = CDbl(TextBox64.Text)
    End If
     
    derligne = Feuil2.Range("a1956").End(xlUp).Row + 1
    For Each Ctrl In UserForm2.Controls
    colonne = Val(Ctrl.Tag)
    If colonne > 0 Then Feuil2.Cells(derligne, colonne) = Ctrl.Value
    Next
    End
    End Sub

  13. #13
    Invité
    Invité(e)
    Par défaut
    bonjour,
    regarde le poste #10
    Dernière modification par AlainTech ; 19/07/2015 à 13h45.

  14. #14
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Mai 2015
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Mai 2015
    Messages : 77
    Par défaut
    Bon rdurupt
    super. ça marche. c'est génial. tous les nombres sont pris pour des nombres.
    Merci énormément.
    Je vois un bug minime mais qui est gênant. J'ai saisi qques lignes de test et j'ai voulu les supprimer. Je les sélectionne. j'appuie sur la touche Suppr et cela ne supprime rien en fait. Je suis obligé d'appuyer sur la touche "del" et supprimer les cellules une par une.
    Je ne veux pas non plus faire clic droit supprimer les lignes pour que mon tableau reste toujours sur le même nombre de ligne.
    Tu sais pourquoi cela bloque la touche suppr ?

    Et encore merci pour les nombres !!!!!!!!!!!!!!!!!!!!!!! x 100000


    edit : La touche del ne vide pas le contenu car quand je créé un nouvel enregistrement. Il vient se mettre sous la plage effacée avec "del"

    Bonjour,

    Grâce à votre aide et en particulier celle de rdurupt (je dois regarder le pseudo à chaque fois pour pas me tromper )
    j'ai le code ci-dessous dans mon formulaire et cela fonctionne enfin !!!!! Merci encore

    Je souhaite maintenant saisir dans la première textbox de ce formulaire (textbox1) une date. Cette date se retrouve dans mon tableau Excel dans la première colonne. Je vois la date mais je sais maintenant que ce que je vois n'est pas obligatoirement au bon format. donc je me méfie

    j'aimerais ensuite faire un filtre qui trouve les lignes entre deux dates. J'ai donc créé un autre userform avec une textbox1 pour la date de départ et une textbox2 pour la date de fin. J'ai actuellement le code suivant sur cet userform mais il filtre que dalle.... j'imagine que c'est encore un pb de format.

    CODE DU FILTRE
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub CommandButton1_Click()
     
    Feuil2.ListObjects("Tableau1").Range.AutoFilter Field:=1, Criteria1:= _
            ">=" & TextBox1.Text, Operator:=xlAnd, Criteria2:="<=" & TextBox2.Text
    End Sub

    CODE DU FORMULAIRE
    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
     
    Function TrouveType(V)
    TrouveType = V
    If IsDate(TrouveType) = True And InStr(TrouveType, "/") <> 0 And InStr(TrouveType, ":") <> 0 Then TrouveType = Format(TrouveType, "yyyy-mm-dd hh:mm"): Exit Function
    If IsDate(TrouveType) = True And InStr(TrouveType, "/") <> 0 Then TrouveType = Format(TrouveType, "yyyy-mm-dd"): Exit Function
    If IsNumeric(Replace(TrouveType, ".", ",")) = True Then TrouveType = Replace(TrouveType, ",", "."): Exit Function
    End Function
     
     
    Private Sub CommandButton1_Click()
     
    derligne = Feuil2.Range("a1956").End(xlUp).Row + 1
    For Each Ctrl In UserForm2.Controls
    colonne = Val(Ctrl.Tag)
    If colonne > 0 Then Feuil2.Cells(derligne, colonne) = TrouveType(Ctrl)
    Next
    End
    End Sub

  15. #15
    Invité
    Invité(e)
    Par défaut
    TrouveType gère tous les format

  16. #16
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Mai 2015
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Mai 2015
    Messages : 77
    Par défaut
    Si on sait le placer au bon endroit

    C'est un pb de format us je pense car quand je mets le filtre entre le 01/01/2015 et le 12/12/2015 il me filtre comme il faut !

    Voici mon code avec le filtre à la fin j'essaie bien de lui dire dd/mm/yyyy pourtant

    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
    Function TrouveType(V)
    TrouveType = V
    If IsDate(TrouveType) = True And InStr(TrouveType, "/") <> 0 And InStr(TrouveType, ":") <> 0 Then TrouveType = Format(TrouveType, "yyyy-mm-dd hh:mm"): Exit Function
    If IsDate(TrouveType) = True And InStr(TrouveType, "/") <> 0 Then TrouveType = Format(TrouveType, "yyyy-mm-dd"): Exit Function
    If IsNumeric(Replace(TrouveType, ".", ",")) = True Then TrouveType = Replace(TrouveType, ",", "."): Exit Function
    End Function
     
     
    Private Sub CommandButton1_Click()
     
    Feuil2.ListObjects("Tableau1").Range.AutoFilter Field:=1, Criteria1:= _
            ">=" & CDate(Format(TextBox1.Value, "dd/mm/yyyy")), Operator:=xlAnd, Criteria2:="<=" & CDate(Format(TextBox2.Value, "dd/mm/yyyy"))
     
    Unload Me
     
    End Sub

  17. #17
    Invité
    Invité(e)
    Par défaut
    C'est normal il faut mettre le date aux format international et ensuite le convertir en date!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    dim dateDeb as date,datFin as date
    dateDeb=TrouveType("01/01/2015")
    datFin=TrouveType("12/12/2015")

  18. #18
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Mai 2015
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Mai 2015
    Messages : 77
    Par défaut
    Je te promets que je ne me fous pas de toi mais je n'y arrive pas....

    j'ai écrit cela et cela ne fonctionne pas.


    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
    Function TrouveType(V)
    TrouveType = V
     
     
    If IsDate(TrouveType) = True And InStr(TrouveType, "/") <> 0 And InStr(TrouveType, ":") <> 0 Then TrouveType = Format(TrouveType, "yyyy-mm-dd hh:mm"): Exit Function
    If IsDate(TrouveType) = True And InStr(TrouveType, "/") <> 0 Then TrouveType = Format(TrouveType, "yyyy-mm-dd"): Exit Function
    If IsNumeric(Replace(TrouveType, ".", ",")) = True Then TrouveType = Replace(TrouveType, ",", "."): Exit Function
    End Function
     
     
    Private Sub CommandButton1_Click()
     
    Dim dateDeb As Date, datFin As Date
    dateDeb = TrouveType(TextBox1)
    datFin = TrouveType(TextBox2)
     
     
     
    Feuil2.ListObjects("Tableau1").Range.AutoFilter Field:=1, Criteria1:= _
            ">=" & dateDeb, Operator:=xlAnd, Criteria2:="<=" & datFin
     
    Unload Me
     
    End Sub

  19. #19
    Invité
    Invité(e)
    Par défaut
    Tes comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Feuil2.ListObjects("Tableau1").Range.AutoFilter Field:=1, Criteria1:= _
            ">=" & TrouveType(textbox1), Operator:=xlAnd, Criteria2:="<=" & TouveType(textbox2)

  20. #20
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Mai 2015
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Mai 2015
    Messages : 77
    Par défaut
    Cela a l'air de fonctionner sur un test super court.
    Je teste plus en profondeur.

    Merci rdurupt. Je reviens te dire.
    Merci encore !

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. Réponses: 10
    Dernier message: 11/05/2008, 18h49
  2. Problème de TextBox numérique
    Par Lutine dans le forum VB.NET
    Réponses: 25
    Dernier message: 23/07/2007, 13h28
  3. Réponses: 2
    Dernier message: 19/12/2005, 12h23
  4. problème formulaire tabulaire
    Par jax69 dans le forum Access
    Réponses: 2
    Dernier message: 05/09/2005, 11h28
  5. Problème Formulaire + popup + page PHP
    Par Invité dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 25/02/2005, 00h10

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