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 de RegExp


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur JAVA & PHP
    Inscrit en
    Mai 2013
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur JAVA & PHP
    Secteur : Distribution

    Informations forums :
    Inscription : Mai 2013
    Messages : 86
    Points : 71
    Points
    71
    Par défaut Problème de RegExp
    Bonjour,

    J'essai de mettre en place une RegExp qui malgré les nombreux tutos que j'ai pu suivre ne fonctionne toujours pas ai-je raté quelque chose?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Function mot_de_passe_valide(expression As String) As Boolean
        Dim regex As New RegExp
        Dim result As Boolean
        regex.IgnoreCase = False
        regex.Global = False
        'doit contenir au moins huit caractères, au moins un chiffre et des lettres majuscules et minuscules et des caractères spéciaux
        regex.Pattern = "^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-""""]).{8,}$"
         MsgBox "je suis dans la entré fonction"
         result = regex.Test(expression)
        mot_de_passe_valide = result
     
    End Function

  2. #2
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour
    et des caractères spéciaux
    1) combien au minimum (puisque pluriel) ?
    2) quels sont ces caractères spéciaux acceptables ?

    Il est vraisemblable que cette vérification peut se faire très rapidement sans le poids (important) de REGEX !
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur JAVA & PHP
    Inscrit en
    Mai 2013
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur JAVA & PHP
    Secteur : Distribution

    Informations forums :
    Inscription : Mai 2013
    Messages : 86
    Points : 71
    Points
    71
    Par défaut
    Citation Envoyé par unparia Voir le message
    Bonjour

    1) combien au minimum (puisque pluriel) ?
    2) quels sont ces caractères spéciaux acceptables ?

    Il est vraisemblable que cette vérification peut se faire très rapidement sans le poids (important) de REGEX !
    Bonjour,
    On accepte tout les caractères spéciaux.
    Au minimum 1 Maj, 1 min, 1 chiffre, 1 caractère spécial pour un mot de passe de 8 caractère minimum.

    Je reste ouvert a d'autre proposition que REgex car c'est un code que je reprend et que je dois corriger.

  4. #4
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    1) Regex (en outre lourdaud) ne serait même pas utilisable sur ma machine, où tout VBS est délibérément inhibé (c'est le cas d'autres machines, pour des raisons de sécurité).
    2) regarde ce que fait par exemple cette fonction (très légère, elle)

    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
    Private Function mot_valable(ch As String) As Boolean
      Dim t, lm As Integer, k As Integer, nb
      If Len(ch) < lmin Then Exit Function
      lm = 8:   nb = Array(0, 0, 0, 0)
      t = Split(StrConv(ch, vbUnicode), Chr(0))
      For i = 0 To UBound(t) - 1
         Select Case t(i)
           Case "A" To "Z": nb(0) = 1
           Case "a" To "z": nb(1) = 1
           Case 0 To 9: nb(2) = 1
           Case Else: nb(3) = 1
         End Select
      Next
      If WorksheetFunction.Sum(nb) = 4 Then mot_valable = True
    End Function
    Que tu utilises ainsi (exemple) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim mot As String
    mot = "a8aa4a/AAAZVV"
    MsgBox mot_valable(mot)
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur JAVA & PHP
    Inscrit en
    Mai 2013
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur JAVA & PHP
    Secteur : Distribution

    Informations forums :
    Inscription : Mai 2013
    Messages : 86
    Points : 71
    Points
    71
    Par défaut
    Merci pour ton retour et effectivement faire mon propre algo m'aurait certainement pris moins de temps.
    Je ne souhaitais pas réinventer la roue comme s'évertuent à faire entrer dans nos têtes les enseignants.
    En regardant ta fonction je me dit évidemment...
    Mais c'est toujours plus facile à dire une fois qu'on a la solution.

  6. #6
    Expert éminent
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Points : 7 149
    Points
    7 149
    Billets dans le blog
    7
    Par défaut
    Bonjour à vous,

    Unparia,

    Juste pour mon information.

    J'ai bien constaté que ce code...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub charac()
    Dim machaine As String, montableau As Variant
    Dim i As Byte
    machaine = "mercatog"
    montableau = Split(StrConv(machaine, vbUnicode), Chr(0))
    For i = 0 To UBound(montableau) - 1
        Debug.Print montableau(i)
    Next
    End Sub
    ...avait pour tâche la décomposition d'une chaîne de caractères en un tableau de ces caractères.
    Pourtant, je n'arrive à m'expliquer ce que produit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    montableau = Split(StrConv(machaine, vbUnicode), Chr(0))
    L'aide Microsoft sur VBUnicode n'est certes pas très explicite, du moins à mon niveau.
    Et pourquoi Chr(0)?

    Au passage, sur le tutoriel de Silkyroad sur les chaînes de caractères, j'ai remarqué l'argument vbFromUnicode qui permet d'associer des nombres (ANSI) à des lettres.
    Cet argument peut être utile.

    Bien Cordialement.

    Marcel

    Dernier billet:
    Suppression des doublons d'un tableau structuré, gestion d'un array

    Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.


  7. #7
    Membre régulier
    Homme Profil pro
    Développeur JAVA & PHP
    Inscrit en
    Mai 2013
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur JAVA & PHP
    Secteur : Distribution

    Informations forums :
    Inscription : Mai 2013
    Messages : 86
    Points : 71
    Points
    71
    Par défaut
    Je ne suis pas expert mais de ce que j'ai compris vbUnicode permet de convertir ton caractère afin de pouvoir le traiter.
    La fonction split() permet de convertir une chaîne de caractère en [].
    Le 2ème éléments est un délimiteur voir ce cours (https://silkyroad.developpez.com/VBA...nesCaracteres/)

    je ne suis pas le seul a souffrir avec VBA

  8. #8
    Expert éminent
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Points : 7 149
    Points
    7 149
    Billets dans le blog
    7
    Par défaut
    je ne suis pas le seul a souffrir avec VBA
    Alors là, Joss...
    Je tiens à m'excuser du faible niveau de ma technicité, bien inférieure à la tienne.

    Je ne connais pas l'auteur de la phrase "Le rire est le propre de l'homme".
    Au demeurant, j'en constate le réalisme.

    vbUnicode permet de convertir ton caractère afin de pouvoir le traiter
    Au risque de t'étonner, j'avais compris.
    Quant à la fonction Split, je l'utilise depus quelques temps déjà.

    Ce que le monsieur voulait dire.
    Les arguments ici employés
    vbUnicode
    et
    Chr(0)
    m'interpellent.
    Je ne comprends pas ce qu'effectue Excel pour générer ce retour en un Array.
    Ce sont les 2 seuls points que je voulais soulever.

    Merci pour ton aimable remarque et .... à bientôt.

    Bien Cordialement.

    Marcel

    Dernier billet:
    Suppression des doublons d'un tableau structuré, gestion d'un array

    Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.


  9. #9
    Membre régulier
    Homme Profil pro
    Développeur JAVA & PHP
    Inscrit en
    Mai 2013
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur JAVA & PHP
    Secteur : Distribution

    Informations forums :
    Inscription : Mai 2013
    Messages : 86
    Points : 71
    Points
    71
    Par défaut
    Je doute que tu puisses être moins technique que moi vu comment je suis léger.
    Je souffre à un point que tu ne peux imaginer

  10. #10
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour MarcelG
    la conversion en vbunicode produit une chaîne de caractères séparés par le caractère NULL de terminaison.
    Ceci va te permettre de mieux l'appréhender :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ch0 = "tu vas comprendre"
    ch1 = Replace(StrConv(ch0, vbUnicode), Chr(0), vbCrLf)
    MsgBox ch1
    J'avais également pensé à utiliser vbFromUnicode, qui permet, elle, l'obtention d'un tableau d'octets.
    Je ne l'ai pas utilisée ici pour deux raisons :
    1) les select case nécessitaient alors d'aller à la pêche de chaque code ascii (et cela demandait du temps de recherche)
    sauf à utiliser chr(tabl(k)) en boucle for k de l'array tabl (si ainsi nommé), ce qui aurait ajouté une lenteur
    2) le demandeur y aurait "vu" moins clairement et aurait eu des difficultés en cas d'adaptation nécessaire.
    S'il voulait par exemple ajouter la condition d'au moins 1 lettre française accentuée, il lui serait plus facile d'écrire un
    Case "à","â","é","è","ù", "î","ï","ô"
    Et je lui ouvrais par ailleurs ainsi la porte ouverte à d'autres obligations éventuelles exprimables par utilisation de l'opérateur Like
    Tu sais maintenant tout.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  11. #11
    Expert éminent
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Points : 7 149
    Points
    7 149
    Billets dans le blog
    7
    Par défaut
    Très bien.
    Merci, Unparia.

    Voilà un exposé clair et d'une technicité, là je suis sérieux, bien supérieure à la-mienne.

    A bientôt.

    Bien Cordialement.

    Marcel

    Dernier billet:
    Suppression des doublons d'un tableau structuré, gestion d'un array

    Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.


  12. #12
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 524
    Points
    14 524
    Par défaut
    Citation Envoyé par unparia Voir le message
    la conversion en vbunicode produit une chaîne de caractères séparés par le caractère NULL de terminaison.
    Bonjour,

    Unicode est un encodage sur 2 bytes.
    Il n'est pas dit que chr(0) soit un séparateur, c'est juste qu'il y a un 0 s'il n'y a besoin que d'un byte pour représenter le caractère.
    J'ai quand même un doute.

  13. #13
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour Arkham
    Le caractère NULL de terminaison est le caractère ASCII de code 0 (il s'agit du 1er caractère de code ASCII et s'exprime en C par '\0')
    On éclate par exemple par split aussi bien sur la base de chr(0) que l'on éclaterait sur la base de chr(65) pour éclater sur la base de A.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  14. #14
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 524
    Points
    14 524
    Par défaut
    Bonjour,

    StrConv("€",vbUnicode) donne : 172/0/32/0
    Après split on obtient un élément : ¬
    StrConv("€M",vbUnicode) donne : 172/0/32/0/77/0/0/0
    Après split on obtient deux éléments : ¬ M et un deuxième élément vide



    C'est plein de conversion implicite, autant faire un traitement de chaîne classique et maîtrisé :
    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
    Private Function motValable(pText As String) As Boolean
    Const cMin = 8
    Dim hasMaj As Boolean
    Dim hasMin As Boolean
    Dim hasNumber As Boolean
    Dim hasSpecial As Boolean
    Dim i As Long
    Dim ch As String
    If Len(pText) >= cMin Then
        For i = 1 To Len(pText)
            ch = Mid(pText, i, 1)
            If ch >= "A" And ch <= "Z" Then
                hasMaj = True
            ElseIf ch >= "a" And ch <= "z" Then
                hasMin = True
            ElseIf ch >= "0" And ch <= "9" Then
                hasNumber = True
            Else
                hasSpecial = True
            End If
            If hasMaj And hasMin And hasNumber And hasSpecial Then
                motValable = True
                Exit For
            End If
        Next
    End If
    End Function

  15. #15
    Expert éminent
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Points : 7 149
    Points
    7 149
    Billets dans le blog
    7
    Par défaut
    Bonjour Arkham,

    Ces considérations techniques me dépassent quelque peu.

    Au demeurant, pourquoi
    ?

    Bien Cordialement.

    Marcel

    Dernier billet:
    Suppression des doublons d'un tableau structuré, gestion d'un array

    Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.


  16. #16
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 524
    Points
    14 524
    Par défaut
    Citation Envoyé par MarcelG Voir le message
    Au demeurant, pourquoi
    ?
    Parce que "au moins huit caractères".

  17. #17
    Expert éminent
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Points : 7 149
    Points
    7 149
    Billets dans le blog
    7
    Par défaut
    Merci. Au temps pour moi.

    Pas réveillé, Marcel.
    Une tournée de Valpolicella, ou de Soave (c'est comme on veut!), mais pas de bière (je laisse cela aux nordistes belges qui mangent des frites et pas de pâtes )

    Bien Cordialement.

    Marcel

    Dernier billet:
    Suppression des doublons d'un tableau structuré, gestion d'un array

    Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.


  18. #18
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour Arkham
    On peut bien évidemment passer par l'utilisation de la fonction Mid (qui utilise elle-même, d'ailleurs, la conversion en unicode). Ce sera juste un peu plus lent, du fait du tremplin.
    Quant à la question que tu te posais au départ à propos du séparateur utilisable dans la chaîne convertie, voici un test assez parlant qui apportera la réponse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ch = "abcd"
    ch1 = StrConv(ch, vbUnicode)
    MsgBox ch1
    Mid(ch1, 2, 1) = Chr(1)
    MsgBox ch1
    Mid(ch1, 2, 1) = Chr(0)
    MsgBox ch1
    ch1 = StrConv(ch1, vbUnicode)
    MsgBox ch1
    MsgBox Replace(ch1, Chr(0), "")
    On pourrait d'ailleurs aussi bien le vérifier ainsi, sans laisser le moindre doute à ce sujet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    MsgBox "ici"
    ch = "abcd"
    ch1 = StrConv(ch, vbUnicode)
    msgbox ch1 ' --->> n'affichera qu'un seul caractère ("a"), l'affichage s'arrêtant au premier caractère NULL de terminaison
    MsgBox Asc(Mid(ch1, 2, 1)) ' ---> la suite n'en est pas pour autant absente. Et voici la valeur (0) ascii du second caractère, qui n'est ni "", ni "b", mais bel et bien le caractère NULL de terminaison chr(0)
    Maintenant : la fonction StrConv est une fonction native de VBA, tout autant que l'est la fonction Mid. Elle n'est pas là juste pour faire "beau".

    Que tu me dises maintenant que la plupart des développeurs VBA préfèrent ce qu'il connaissent mieux (Mid), je veux bien. Ce sera simplement (comme pour tout "confort", plus lent).
    Amitiés
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  19. #19
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 524
    Points
    14 524
    Par défaut
    unparia, je ne suis pas d'accord et j'ai l'impression de parler dans le vide.
    Prendre "abcd" comme test n'est pas pertinent.
    Le msgBox s'arrête à 1 caractère : soit mais c'est habituel pour une msgBox de tronquer le texte au premier chr(0).
    Mid n'est pas plus lent que ton code avec de multiples conversions implicites, et qui ne fonctionne pas vu les observations que j'ai relevée.
    Je ne cherche pas un code plus confort mais un code qui fonctionne et qui n'induit pas les lecteurs en erreur.

  20. #20
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bon
    Je n'ai pas du tout envie d'entrer dans une polémique
    En ce qui concerne la vitesse, il suffit de tester/chronométrer (sur une boucle de 100 000, par exemple)
    Je continuerai personnellement à proposer la méthode d'utilisation de la conversion en chaîne unicode.
    Et "on" choisira.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

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

Discussions similaires

  1. URL Rewriting problème de regexp ?
    Par pierrickg dans le forum Apache
    Réponses: 2
    Dernier message: 10/07/2007, 13h35
  2. Un petit problème de regExp
    Par guidav dans le forum VBA Access
    Réponses: 4
    Dernier message: 31/05/2007, 17h36
  3. Probléme de regexp
    Par moook dans le forum Langage
    Réponses: 4
    Dernier message: 17/04/2007, 11h17
  4. Problème de regexp
    Par vodevil dans le forum Langage
    Réponses: 1
    Dernier message: 08/12/2006, 21h28
  5. Gros problème avec regexp
    Par dmbsys dans le forum ASP
    Réponses: 6
    Dernier message: 29/04/2006, 16h23

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