Suppression caractères non numériques

riomilou

XLDnaute Nouveau
Bonsoir tout le monde,
Si vous pouvez m'aider à modifier cette ligne de code, je vous serai reconnaissant.
Ds mon code, j'ai cette ligne qui va me copier ds une cellule Excel les 8 chiffres et les coller ds une autre application ds une case précise à 8 chiffres:

Dis = Right(ActiveCell.Value, 8)
Sess0.SCREEN.SendKeys (Dis & "<Enter>"): Sess0.SCREEN.WaitHostQuiet (g_HostSettleTime)

Je voudrais modifier ce code pour la copie ds une cellule, par exemple:
abc 12345 puis coller
seulement les chiffres, mais avec le chiffre 100 devant: 10012345
(peut etre une demande d'addition de 10000000 en plus ???)
Je suis perdu car je ne sais même pas déchiffrer le code cité plus haut. Si quelqu'un peut m'expliquer...et me modifier ce code d'origine. Merci.:)
Cdlt
 
Dernière édition:

Arpette

XLDnaute Impliqué
Re : Suppression caractères non numériques

Bonsoir tout le monde,
Si vous pouvez m'aider à modifier cette ligne de code, je vous serai reconnaissant.
Ds mon code, j'ai cette ligne qui va me copier ds une cellule Excel les 8 chiffres et les coller ds une autre application ds une case précise à 8 chiffres:

Dis = Right(ActiveCell.Value, 8)
Sess0.SCREEN.SendKeys (Dis & "<Enter>"): Sess0.SCREEN.WaitHostQuiet (g_HostSettleTime)

Je voudrais modifier ce code pour la copie ds une cellule, par exemple:
abc 12345 puis coller
seulement les chiffres, mais avec le chiffre 100 devant: 10012345
(peut etre une demande d'addition de 10000000 en plus ???)
Je suis perdu car je ne sais même pas déchiffrer le code cité plus haut. Si quelqu'un peut m'expliquer...et me modifier ce code d'origine. Merci.:)
Cdlt
Salut Riomilou, peut-être comme çà
@+

Code:
Dans le cas présent, les valeurs 10xxxxxx sont en A1, tu appliques la foncton en B2ou ailleur et tu auras que les valeurs qui commencent par 100.
=SI(GAUCHE(A1;3)="100";A1;"")
 

riomilou

XLDnaute Nouveau
Re : Suppression caractères non numériques

Bonsoir Arpette et Staple,
Exemple:
Ds la cellule A1 j'ai "abc 12345"
Je lance le code cité plus haut, et je veux qu'il copie la cellule A1 et coller ds une autre cellule "10012345"
Merci pour vos réponses rapides. ça me fait plaisir.
Cdlt
 

Staple1600

XLDnaute Barbatruc
Re : Suppression caractères non numériques

Bonjour

riomilou
Pour te montrer un aperçu de ce qu'est RegExp, copies/colles le code VBA ci-dessous dans un classeur vierge et lance la macro aa
(Outils/Macros/aa -> Exécuter )
N'hésites pas à me poser des questions sur ce code (si il t'intéresse)
VB:
Sub aa()
Dim Plg As Range, c As Range, rep&, str$
Set Plg = ActiveSheet.Range("A1:A13")
    
        With Plg
            .Formula = "=ROW()*10^3&""ABC"""
            .Value = .Value
        End With
        rep = _
            MsgBox("Séparer chiffres et lettres , maintenant ?", _
            vbYesNo + vbQuestion, _
            "Extration")
    Application.ScreenUpdating = False
    If rep = 6 Then
        For Each c In Plg
        c.Offset(, 1) = AlphaNum(c.Text, True)
        c.Offset(, 2) = AlphaNum(c.Text, False)
    Next c
    Else
    Plg.Clear: End
    End If
    Set Plg = Nothing
    Application.ScreenUpdating = True
End Sub
VB:
Function AlphaNum(txt As String, Optional numOnly As Boolean = True)
'auteur: jindon
With CreateObject("VBScript.RegExp")
.Pattern = IIf(numOnly = True, "\d+", "\D+"): AlphaNum = .Execute(txt)(0)
End With
End Function
 
Dernière édition:

riomilou

XLDnaute Nouveau
Re : Suppression caractères non numériques

Bonjour Staple,
Merci pour ta réponse. J'ai essayé ton code avec l'utilisation de RegExp. Il est très intéresant. Une question:
Peux tu m'expliquer cette ligne ds ta fonction?

.Pattern = IIf(numOnly = True, "\d+", "\D+"): AlphaNum = .Execute(txt)(0)

et ces lignes ds ton Sub:

.Formula = "=ROW()*10^3&""ABC"""


If rep = 6 Then
For Each c In Plg
c.Offset(, 1) = AlphaNum(c.Text, True)
c.Offset(, 2) = AlphaNum(c.Text, False)

Merci beaucoup.
Cdlt
 

Discussions similaires

Statistiques des forums

Discussions
314 450
Messages
2 109 724
Membres
110 552
dernier inscrit
jasson