Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Extraction Chaine de caractères vba

fileofish

XLDnaute Occasionnel
Bonsoir tout le monde,

J'ai besoin d'aide pour résoudre ce problème car je suis bloqué

J'ai dans une colonne n une chaine de caractère comprenant des lettres et des chiffres.
Je cherche à avoir en VBA pour toutes les lignes non vides de cette colonne:
* Dans la Colonne n+1 ce qui est à gauche du 1er chiffre
* Dans la Colonne n+2 ce qui est à droite du 1er chiffre (compris)

ex : en colonne n : Excel Download157Forums
Colonne n+1 : Excel Download
Colonne n+2 : 157 Forum

Merci d'avance
Philippe
 

fileofish

XLDnaute Occasionnel
Par contre petit problème quand je souhaite adapter la formule de Staple en VBA

Sub Extraire3()
Dim c As Range
Workbooks("BC 2018.xlsm").Activate

For Each c In Range("G2:G" & Range("E" & Rows.Count).End(xlUp).Row)

Activecell.Value = MID(ActiveCell.offset(0,-1),1,MIN(SEARCH({0;1;2;3;4;5;6;7;8;9},ActiveCell.offset(0,-1)&""0123456789""))-1)


Next c
End Sub

Vous savez d'ou cela provient ?

Philippe
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil, le forum

@fileofish
Je te le laisse adaper cette macro (qui fonctionne chez moi, les données étant en colonne A pour le test)
VB:
Sub Macro1()
Dim DerL&
DerL = Cells(Rows.Count, 1).End(xlUp).Row
Range("B1:B" & DerL).FormulaR1C1 = _
        "=MID(RC[-1],1,MIN(SEARCH({0;1;2;3;4;5;6;7;8;9},RC[-1]&""0123456789""))-1)"
Range("C1:C" & DerL).FormulaR1C1 = _
        "=MID(RC[-2],MIN(SEARCH({0;1;2;3;4;5;6;7;8;9},RC[-2]&""0123456789"")),999)"
End Sub
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil, le forum

Une version tout en VBA (sans passer par des formules)
VB:
Sub Extraire_4()
Dim plg As Range, c As Range
Set plg = Range("A1", Range("A1").End(-4121))
    For Each c In plg
        c.Offset(, 1) = Left(c, PNu(c.Text) - 1)
        c.Offset(, 2) = Mid(c, PNu(c.Text), 9 ^ 9)
    Next
End Sub
Private Function PNu(sTr$) As Integer
For PNu = 1 To Len(sTr)
If Mid(sTr, PNu, 1) Like "#" Then Exit Function
Next
PNu = 0
End Function
 

Discussions similaires

Réponses
3
Affichages
301
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…