Regular Expression Condition IF VBA

Bonjour à tous,

"Résolu, voir Edit en fin de page"

Petit message, parce que je tourne en rond, je tente des trucs mais ça ne veut jamais aller comme je souhaite.

La solution est surement très simple, mais j'avoue qu'étant débutant, j'ai encore du mal avec certaines facettes de VBA.

Mon problème est très simple :

1) Je souhaite trouver dans la feuille Macro BallyRagget et la colonne B, toutes les cases où il y'a une nombre à 6 chiffres.

2) Je dois parcourir la colonne et si il trouve un nombre correspondant, il me le recopie dans la feuille Data. J'ai spécifié un endroit au hasard.

==> le problème vient surtout du regular expression. J'ai déjà du en faire avec python, mais y'a longtemps et mes souvenirs sont maigres. De plus, j'ai l'impression de voir des choses différentes à chaque fois que j'essaye de trouver des exemples ^^

Après, y'a encore énormément de boulot pour ce à quoi je veux arriver, mais je ne vous solliciterai que si je bloque.

ps: 2ième question juste plus pour info. Quelle technique utiliser pour le débug? ici, j'ai juste utiliser la formule MsgBox, pour voir la valeur à chaque boucle et voir si je suis dans le bon. Mais dois surement avoir des outils plus pratique. Ici c'est juste pour me permettre d'avancer seul et résoudre mes problèmes seul ^^

Je joins le fichier.

Merci pour vos conseils et aide

EDIT: Je suis prêt à accepter les coups de fouets.... Ca fonctionnait en fait..... mais je renouvellais toujours mon code sans effacer ce qui avait été fait avant. et donc j'avais l'impression qu'il écrivait toujours tout sans faire de distinction entre texte et nombre mais ça fonctionne.....

Autant pour moi!!!

18exceltestre.xlsm (38.61 Ko)

Bonjour,

Une solution :

Public Sub recherchelot()
    Dim J As Integer
    Dim VRech As Variant
    Dim WS As Worksheet
    Dim regex As Object
    Set regex = CreateObject("VBScript.RegExp")
    Set WS = Sheets("Macro BallyRagget")
    J = 1
    regex.Pattern = "\d{6}" ' "[0-9]+"
    For J = 1 To 30 '!!!!30 cycle est suffisant mais trouver une solution meilleur!!!!!
    Stop                ' instruction de débogage ensuite F8, F8, F8 ou F5, F5, F5...
        'Sheets("Macro BallyRagget").Activate 'Pour boucler sur la bonne feuille
        VRech = WS.Cells(J, 2) 'A integrer dans regex.test si possible
        Debug.Print VRech ' instruction de débogage
        If regex.Test(VRech) Then
            Sheets("Data").Cells(20 + J, 2) = VRech
        End If
    Next
End Sub

A+

Merci pour la réponse, je testerai.

Donc ce code, là c'est dans l'optique d'un débugage, pour repérer où se situe l'erreur et pouvoir la corriger.

Merci!

Rechercher des sujets similaires à "regular expression condition vba"