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 :

[EXCEL] Validation des données saisies - nouvelle Question :-)


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier Avatar de Paloma
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 228
    Points : 79
    Points
    79
    Par défaut [EXCEL] Validation des données saisies - nouvelle Question :-)
    Bonjour,

    Voilà j'ai un problème assez important, j'ai un truc à gérer et je ne sais pas et comment commencer.

    Voilà, j'ai un fichier Excel qui utilise un form.
    Mon form contient notamment un bouton parcourir qui me permet de sélectionner un répertoire.
    Une fois fait, la page 2 est rempli comme suit :

    feuille (2) "WorkFile" avec en titre dans la ligne 1 :
    A = Parent Folder
    B = Full Path
    C = File Name
    D ....

    Puis un autre bouton permet d'ajouter dans une "listBox" des filtres.
    Je m'explique :

    les fichiers trouvés dans le répertoire sont du type
    M5711045500000 ....

    les filtres sont du type M571;P777
    ou le ; sépare la chaîne à chercher dans le résultat obtenu à la lecture du répertoire de la chaîne que deviendra celle qui sera copier dans une autre feuille (3) "result" de ce même classeur sous la forme P77...

    Mais voilà j'ai d'autres trucs à contrôler :
    Par exemple les filtres entrés un à un ne peuvent contenir que des lettres autorisées. exemple : M, P, Z, T ou aucune
    donc M571;B88 interdit

    mais je peux avoir 571;888 et ça doit fonctionner.
    la lettre restera donc M (pour mon cas précédent )

    puis quand les différents filtres sont ajoutés et valider (à chaque nouveau filtre), la feuille (3) est mis à jour ...
    Colonne C = liste des nouveaux noms.

    Enfin, je rentre à la maison et je rajouterais un lien vers une vidéo se sera plus explicite.

    Cordialement,
    Paloma

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Je pense que Like règlerait ton pb. Regarde dans l'aide, un peu fastidieux mais très bien expliqué. Te permet de comparer une chaîne de caractères à une liste de caractères.
    Si tu as des difficultés, tu dis, on verra ça. Mais fais-nous quelque chose
    A+

    Edit
    Je regarde si on peut faire mieux mais pour exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim ok as boolean
    For i = 1 To 4
        Ok = "M569" Like Mid("MPZT", i, 1) & "*"
        If ok then Exit for
    Next
    Et en simplifiant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ok = "M569" Like "M*" Or "M569" Like "P*" Or "M569" Like "T*" Or "M569" Like "Z*"

  3. #3
    Membre régulier Avatar de Paloma
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 228
    Points : 79
    Points
    79
    Par défaut Merci ouskel'n'or
    Effectivement, j'avais vu Like et j'ai commencé par là.
    Mais bon ça n'est que le début donc je continu, on verra bien.

    Voici une ch'tite vidéo qui montre un peu ce que j'aimerais obtenir.
    http://patrick.dubernet.free.fr/perso.html

    @ plus
    Cordialement,
    Paloma

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Ta vidéo m'a refusé la lecture A pas trouvé le lecteur Y'a un blème... Chez HTML ou chez moi ?

  5. #5
    Membre régulier Avatar de Paloma
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 228
    Points : 79
    Points
    79
    Par défaut Pour la vidéo.
    Bonjour ouskel'n'or,

    Bonjour tout le monde ;-)

    Pour la vidéo, vu tous les formats standards qui existent, on se demande lequel est standard?

    Je suis désolé ...

    Pour moi, ça fonctionne à la maison et au boulot.
    J'utilise VLC pour toutes mes vidéos et ça fonctionne bien.

    Ce soir, j'essaierais sinon de refaire la vidéo en mpeg, mais elle sera plus lourde.

    Bon, en tout cas, je teste ce que tu m'as dit ouskel'n'or et je reviendrais.

    @ plus

    Paloma

  6. #6
    Membre régulier Avatar de Paloma
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 228
    Points : 79
    Points
    79
    Par défaut Peut être avec ça ?
    En fait, je me suis demandé si je pouvais vérifier la saisie avec un truc du genre :

    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
    Private Sub ButAdd_Click()
        strValue = InputBox("Please enter a value to consider to translate the package", "Add filter")
        If strValue = "NULL" Or strValue = "" Then
        MsgBox "You must enter a not empty value!", vbCritical, "!STOP!"
        Else
        ListBoxFilters.AddItem UCase(strValue)
        End If
        'Programs Check value entries ---------------------------------------------
     
    Dim DataString(11) As String
        Dim InString() As String
        Dim i As Integer
     
        'Remplissage du tableau qui va être testé
        DataString(0) = "R" ' AC_WBY_A300
        DataString(1) = "L" ' AC_SA_A318
        DataString(2) = "L" ' AC_SA_A319
        DataString(3) = "L" ' AC_SA_A319CJ
        DataString(4) = "L" ' AC_SA_A320
        DataString(5) = "L" 'AC_SA_A321
        DataString(6) = "N" ' AC_LR_A330
        DataString(7) = "N" ' AC_LR_A340
        DataString(8) = "F" ' AC_LR_A380
        DataString(9) = "N" ' AC_XWB_A350
        DataString(10) = "M" ' AC_Military_A400M
        DataString(11) = ";"
     
        '"DataString" est le tableau dans lequel doit être effectué la recherche.
        '"str" est la chaîne à rechercher.
        'La fonction Filter renvoie le tableau "InString" contenant les éléments
        'qui répondent aux critères de la recherche.
        InString = Filter(DataString, strValue, True)
     
        'Boucle sur le tableau afin de visualiser les éléments
        'qui répondent aux critères de recherche.
        For i = 0 To UBound(InString)
            Debug.Print InString(i)
        Next i
    End Sub
    Source : http://silkyroad.developpez.com/VBA/...racteres/#LI-V

    Mais j'ai une message d'erreur quand je compil :
    Variable ou procédure attendue, et non un module et le mot Filter est en surbrillance dans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        '"DataString" est le tableau dans lequel doit être effectué la recherche.
        '"str" est la chaîne à rechercher.
        'La fonction Filter renvoie le tableau "InString" contenant les éléments
        'qui répondent aux critères de la recherche.
        InString = Filter(DataString, strValue, True)
    Si quelqu'un a une idée?

    Bien à vous,
    Paloma

  7. #7
    Invité
    Invité(e)
    Par défaut


    Tu as qu'elle version d'Excel ?
    Car chez moi sur Excel 2003, ça fonctionne !

    A+

  8. #8
    Membre régulier Avatar de Paloma
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 228
    Points : 79
    Points
    79
    Par défaut Bonjour BrunoM45
    Domage, je suis sous Excel 2000

    Mais, j'en profite pour dire que je ne dois pas pouvoir faire comme ça, il faut que je modifie plus le code car ce que j'aimerais faire, c'est récupérer la valeur saisie (ici strValue) et regarder dedans si elle a bien un élément du tableau.

    Si c'est du type

    584;566 c'est bon
    R541;L632 c'est bon
    P401;L632 c'est pas bon P n'existe pas donc message d'erreur à renvoyer "Fault !" et le filtre ne s'ajoute pas.
    R456N542 ne fonctionne pas : message Il manque le ; pour avoir un filtre valide !"

    Donc je cherche comment faire ça au mieux

    Merci pour vos infos, elles sont précieuse ....

    Cordialement,
    Paloma

  9. #9
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Juste un truc pour simplifier l'écriture d'un tableau tel que le tien
    DataString = Array("R" ,"L","L","L","L","L","N","N","F","N","M",";")
    nbd = Ubound(DataString) 'pour la taille
    Le tableau commence à l'index 0
    Ceci dit, je n'ai pas compris ton pb, j'y retourne

  10. #10
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Voilà. Tu mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Dim InString() As String
    mais tu ne redimensionnes pas ton tableau avant la ligne
    InString = Filter(DataString, strValue, True)
    Mets
    En VBA 97, ça ne passe pas non plus
    Tu devras le redimensionner avec Redim Preserve si tu veux conserver les données stockées et indexer ton tableau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        i = i + 1
        Redim Preserve InString(i)
        InString(i) = Filter(DataString, strValue, True)
    A+

  11. #11
    Membre régulier Avatar de Paloma
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 228
    Points : 79
    Points
    79
    Par défaut pfiou ...
    Merci ouskel'n'or

    ben j'ai pas tout compris mais là ça devient intéressant.

    Bon j'en profite pour passer un PowerPoint que j'avais préparais pour essayer de me faire comprendre car mon souci n'est pas si simple que ça enfin, vu mon niveau de vb, c'est ce que je crois

    Mais bon je n'en suis qu'a six semaine de code vb soignez indulgent please ...

    Merci encore
    @ plus
    Paloma

  12. #12
    Membre régulier Avatar de Paloma
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 228
    Points : 79
    Points
    79
    Par défaut
    J'ai testé ce que tu m'as dit ouskel'n'or mais il me fait toujours le même message d'erreur :

    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
    Private Sub ButAdd_Click()
        strValue = InputBox("Please enter a value to consider to translate the package", "Add filter")
        If strValue = "NULL" Or strValue = "" Then
        MsgBox "You must enter a not empty value!", vbCritical, "!STOP!"
        Else
        ListBoxFilters.AddItem UCase(strValue)
        ButGenerate.Visible = True
        End If
        'Programs Descriptions ---------------------------------------------
     
    Dim DataString(11) As String
        ReDim InString(0)
        Dim i As Integer
     
    'Remplissage du tableau qui va être testé
        DataString(0) = "R" ' AC_WBY_A300
        DataString(1) = "L" ' AC_SA_A318
        DataString(2) = "L" ' AC_SA_A319
        DataString(3) = "L" ' AC_SA_A319CJ
        DataString(4) = "L" ' AC_SA_A320
        DataString(5) = "L" 'AC_SA_A321
        DataString(6) = "N" ' AC_LR_A330
        DataString(7) = "N" ' AC_LR_A340
        DataString(8) = "F" ' AC_LR_A380
        DataString(9) = "N" ' AC_XWB_A350
        DataString(10) = "M" ' AC_Military_A400M
        DataString(11) = ";"
     
        '"DataString" est le tableau dans lequel doit être effectué la recherche.
        '"str" est la chaîne à rechercher.
        'La fonction Filter renvoie le tableau "InString" contenant les éléments
        'qui répondent aux critères de la recherche.
        i = i + 1
        ReDim Preserve InString(i)
        InString(i) = Filter(DataString, strValue, True)
     
        'Boucle sur le tableau afin de visualiser les éléments
        'qui répondent aux critères de recherche.
        For i = 0 To UBound(InString)
            Debug.Print InString(i)
        Next i
    End Sub
    Mais j'ai une message d'erreur quand je compil :
    Variable ou procédure attendue, et non un module et le mot Filter est en surbrillance dans :

    Code :
    '"DataString" est le tableau dans lequel doit être effectué la recherche.
    '"str" est la chaîne à rechercher.
    'La fonction Filter renvoie le tableau "InString" contenant les éléments
    'qui répondent aux critères de la recherche.
    InString = Filter(DataString, strValue, True)

  13. #13
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Hello, j'ai vu ta présentation. Tu as un chouette projet M635;P542
    Un truc pour tes copies d'écrans Excel (qui sont dégeulasses dans les toutes premières diapos, yfobienl'dire ) (Pas taper !)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        Worksheets("Feuil1").Range("E6:I27").CopyPicture xlScreen, xlBitmap
        Worksheets("Feuil1").Paste destination:=Worksheets("Feuil1").Range("E6")
    Ainsi tu auras la plage toute propre d'une feuille de calculs que tu peux copier/Coller en tant qu'image dans ppt
    A toutes fins utiles

  14. #14
    Membre régulier Avatar de Paloma
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 228
    Points : 79
    Points
    79
    Par défaut ouiiinnn c'est pas sympa !!!!
    Elles sont peut être moches en partie mais c'est voulu

    En fait, si la copie écran est juste là pour info, je la dégrade et cela me permet d'éviter de mettre des fichiers trop lourd sur le forum, je ne voudrais pas abuser non plus ;-)

    Merci quand même pour les critiques, ça ne me vexe pas .... du tout ...
    du tout ...

    lol

    @ plus
    Paloma

  15. #15
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Ton erreur : Pour pouvoir redimensionner ton tableau, et à moins que tu l'aies déjà déclaré plus haut, tu ne dois pas le dimensionner au départ. Laisse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
         Dim DataString(11) As String
        Dim InString()
    Mais le message d'erreur ne correspond pas à ce que j'attendrais si ça venait de là.
    Corrige déjà ça et dis-nous

  16. #16
    Membre régulier Avatar de Paloma
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 228
    Points : 79
    Points
    79
    Par défaut
    Ok pour ça ouskel'n'or, j'ai testé aussi et ça ne fonctionne pas, toujours le même message d'erreur

    Voici le code complet dans mon form (frmGenerator):
    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
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    Option Explicit
    Public strPathJob As String
    Dim strValue As String
     
    Private Sub ButAdd_Click()
        strValue = InputBox("Please enter a value to consider to translate the package", "Add filter")
        If strValue = "NULL" Or strValue = "" Then
        MsgBox "You must enter a not empty value!", vbCritical, "!STOP!"
        Else
        ListBoxFilters.AddItem UCase(strValue)
        ButGenerate.Visible = True
        End If
        'Programs Descriptions ---------------------------------------------
     
    Dim DataString(11) As String
        Dim InString()
        Dim i As Integer
     
    'Remplissage du tableau qui va être testé
        DataString(0) = "R" ' AC_WBY_A300
        DataString(1) = "L" ' AC_SA_A318
        DataString(2) = "L" ' AC_SA_A319
        DataString(3) = "L" ' AC_SA_A319CJ
        DataString(4) = "L" ' AC_SA_A320
        DataString(5) = "L" 'AC_SA_A321
        DataString(6) = "N" ' AC_LR_A330
        DataString(7) = "N" ' AC_LR_A340
        DataString(8) = "F" ' AC_LR_A380
        DataString(9) = "N" ' AC_XWB_A350
        DataString(10) = "M" ' AC_Military_A400M
        DataString(11) = ";"
     
        '"DataString" est le tableau dans lequel doit être effectué la recherche.
        '"str" est la chaîne à rechercher.
        'La fonction Filter renvoie le tableau "InString" contenant les éléments
        'qui répondent aux critères de la recherche.
        i = i + 1
        ReDim Preserve InString(i)
        InString(i) = Filter(DataString, strValue, True, vbTextCompare)
     
        'Boucle sur le tableau afin de visualiser les éléments
        'qui répondent aux critères de recherche.
        For i = 0 To UBound(InString)
            Debug.Print InString(i)
        Next i
    End Sub
     
     
    Private Sub ButGenerate_Click()
     
    'Return information success -----------------------------------------------------------------------------
                MsgBox "All files has been processed.", vbExclamation, "Congratulation!"
    End Sub
     
    Private Sub ButBrowse_Click()
    'Récupération du chemin de travail
        strPathJob = SelectFolder("Sélectionnez un répertoire :", 0)
     
        If strPathJob <> "" Then
                    ' Permet de modifier la valeur Text du champ de texte.
                TxtJobDirectory.Text = strPathJob 'indique le chemin complet
                TxtJobDirectory.BackColor = &H80000005  'change la couleur du label
     
                ButBrowse.Visible = True
                ListFilesInFolder strPathJob, True
     
            Else
            MsgBox "Please select a job directory only which contain all CATIA files!", vbCritical, "!STOP!"
        End If
     
        Exit Sub
     
    End Sub
     
    Private Sub ButExit_Click()
        Unload Me
        End
    End Sub
     
     
     
    ' Lister les fichiers dans un tableau ----------------------------------------------------------------------------------
    Sub ListFilesInFolder(strFolderName As String, bIncludeSubfolders As Boolean)
      ' adapté de Ole P Erlandsen
      ' necessite d'activer la reference Microsoft Scripting RunTime
      Dim FSO As FileSystemObject
      Dim oSourceFolder As Scripting.Folder
      Dim oSubFolder As Scripting.Folder
      Dim oFile As Scripting.File
      Dim wksDest As Worksheet
      Dim iRow As Long
     
      Set wksDest = Worksheets(2)
     
      Set FSO = CreateObject("Scripting.FileSystemObject")
      Set oSourceFolder = FSO.GetFolder(strFolderName)
      wksDest.Cells(1, 1) = "Parent folder"
      wksDest.Cells(1, 2) = "Full path"
      wksDest.Cells(1, 3) = "File name"
      wksDest.Cells(1, 4) = "Size"
      wksDest.Cells(1, 5) = "Type"
      wksDest.Cells(1, 6) = "Date created"
      wksDest.Cells(1, 7) = "Date last modified"
      wksDest.Cells(1, 8) = "Date last accessed"
      wksDest.Cells(1, 9) = "Attributes"
      wksDest.Cells(1, 10) = "Short path"
      wksDest.Cells(1, 11) = "Short name"
     
      iRow = 2
     
      For Each oFile In oSourceFolder.Files
        wksDest.Cells(iRow, 1) = oFile.ParentFolder.Path
        wksDest.Cells(iRow, 2) = oFile.Path
        wksDest.Cells(iRow, 3) = oFile.Name
        wksDest.Cells(iRow, 4) = oFile.Size
        wksDest.Cells(iRow, 5) = oFile.Type
        wksDest.Cells(iRow, 6) = oFile.DateCreated
        wksDest.Cells(iRow, 7) = oFile.DateLastModified
        wksDest.Cells(iRow, 8) = oFile.DateLastAccessed
        wksDest.Cells(iRow, 9) = oFile.Attributes
        wksDest.Cells(iRow, 10) = oFile.ShortPath
        wksDest.Cells(iRow, 11) = oFile.ShortName
     
        iRow = iRow + 1
      Next oFile
     
      For Each oSubFolder In oSourceFolder.SubFolders
        ' On peut mettre ici un traitement spécifique pour les dossiers
      Next oSubFolder
     
      If bIncludeSubfolders Then
        For Each oSubFolder In oSourceFolder.SubFolders
          ListFilesInFolder oSubFolder.Path, True
        Next oSubFolder
      End If
     
    End Sub
     
     
    Private Sub ButFilesDir_Click()
     
        If TxtJobDirectory.Text = "C:\createxdubernet\" Or TxtJobDirectory.Text = "" Then
     
            MsgBox "Please select a job directory before!", vbCritical, "!STOP!"
                Else
                Sheets("Work files").Select
            End If
     
        Application.Wait Now + TimeValue("00:00:03")
                Sheets("Reference File GENERATOR").Select
     
    End Sub
     
    Private Sub ButRemoved_Click()
        If ListBoxFilters.ListCount = 0 Then
                MsgBox "Please your filterlist is empty, add an item before use removed button", vbInformation, "Manager List"
            Else
            If ListBoxFilters.Object = "NULL" Or ListBoxFilters.Object = "" Or ListBoxFilters.ListIndex = -1 Then
                MsgBox "Please select an item to delete", vbInformation, "Manager List"
                Else
                ListBoxFilters.RemoveItem (ListBoxFilters.ListIndex)
            End If
            If ListBoxFilters.ListCount = 0 Then
                    ButGenerate.Visible = False
                    Else
            End If
        End If
     
    End Sub
     
    Private Sub ButClearList_Click()
        ListBoxFilters.Clear
    End Sub
    bon, je continu à chercher ....

    @ plus
    Bien à vous,
    Paloma

  17. #17
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Citation Envoyé par Tu
    Filter(DataString, strValue, True, vbTextCompare)
    Dans cette ligne, tu utilises Datastring qui est un tableau.
    Dans certains cas, on peut écrire ça mais ici, je n'en sais rien.
    Essaie, rien que pour voir, de mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Filter(DataString(1), strValue, True, vbTextCompare)
    Juste pour tester, et tu nous dis si "ça passe"
    Désolé mais je n'ai pas l'info.
    Faudrait que SilkyRoad passe par là

  18. #18
    Membre régulier Avatar de Paloma
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 228
    Points : 79
    Points
    79
    Par défaut Marche po |-{
    Ok j'ai testé ça aussi et il s'arrête toujours au même endroit, même message ....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    i = i + 1
        ReDim Preserve InString(i)
        InString(i) = Filter(DataString(1), strValue, True, vbTextCompare)
     
        'Boucle sur
    je cherche encore ...

    Merci pour votre aide les amis
    @ plus

  19. #19
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Oui, il semblerait qu'il te manque un objet à filtrer
    Tu dois déclarer ta base de données, avec Set, puis utiliser l'objet LaBase
    Set LaBase = La base de donnée
    puis
    LaBase.Filter ....

    La syntaxe que tu utilises "fait croire à VBA que tu appelles une fonction avec paramètres... que tu aurais créée... Or, ce n'est pas ça...
    Mais je vais laisser la place à quelqu'un qui a déjà fait ça

  20. #20
    Membre régulier Avatar de Paloma
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 228
    Points : 79
    Points
    79
    Par défaut Je suis un bougre d'idiot !!!!!!!
    N'importe quoi, j'avais oublié que je trainer depuis ma dernière version la 0.000 un module que j'ai comme un idiot nommé Filter !!!!!!

    Je suis stupide !!!!
    AAAAAAAAAAHHHHHHHHHH !!!!

    Vraiement, toutes mes excuse à vous tous.
    Et merci pour l'aide.

    Par contre j'ai une erreure execution '13' incompatibilité de type

    que je mette :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    InString(i) = Filter(DataString(1), strValue, True, vbTextCompare)
    ou ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    InString(i) = Filter(DataString(i), strValue, True, vbTextCompare)
    Et ce qui m'étonne c'est que DataString(i) prend dans les deux cas la valeur L et ne passe pas le R, est-ce normal ?

    Merci
    @ +++

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

Discussions similaires

  1. [Excel] Intégrer au fichier Excel des données saisies par formulaire
    Par drogba72 dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 21/05/2008, 11h13
  2. [EXCEL] Formatage des données
    Par Cupidon dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 02/11/2005, 21h32
  3. [Excel] Récupérer des données d'une base Access
    Par FoxDeltaSierra dans le forum Excel
    Réponses: 8
    Dernier message: 03/09/2005, 10h22
  4. Réponses: 3
    Dernier message: 25/07/2005, 09h40
  5. dbgrid AND validation des données
    Par samlerouge dans le forum Bases de données
    Réponses: 10
    Dernier message: 11/06/2004, 23h08

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