XL 2013 Extraire un terme d'une cellule

Mathieu_dup

XLDnaute Nouveau
Bonjour à tous,

Je voudrais extraire un terme d'une cellule mais je n'ai pas forcément d'idée de formule à utiliser pour y arriver.

En fait, c'est une extraction d'une base de données et dans la colonne "Commentaire" j'aimerais extraire les 6 chiffres qui se trouve juste après les termes IP.

Exemple :
A B (extraction)
1- Suite à commande, nous sortons un IP 123456 123456
2- Article IP 345678 plus en stock 345678

Je sais pas si c'est assez clair.

Merci pour votre aide

Mathieu
 

Modeste geedee

XLDnaute Barbatruc
Bonsour®
Bonjour Mathieu

Un essai avec fonction personnalisée
:p Histoire de pinailler …:rolleyes:
s'il n'y a pas 6 chiffres contigus ???

VB:
Function IP_6num(cellule)
Dim x
x = InStr(cellule, "IP")
If x Then
For i = x To Len(cellule)
IP = Mid(cellule, i, 6)
If IP Like "######" Then IP_6num = CLng(IP): Exit Function
Next
End If
IP_6num = "? IP"
End Function
upload_2018-7-13_11-23-58.png
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, le forum


Pour les gens qui aiment regarder leurs doigts en action
(Si les données en colonne A)
F5
A:A
ENTER
CTRL+H
ALT+C
IP ESPACE
TAB
$
ALT+A
ESC
Données/Convertir
ALT+D
ALT+S
ALT+R
$
ALT+S
ALT+C
ALT+E
B1
ALT+T
F5
B:B

Finalement,mes doigts devenant gourds, je me suis résolu à macroter ;)
VB:
Sub Macro1()
Dim ension
Dim inutif
ension = Array(Array(1, 9), Array(2, 1))
inutif = Array(Array(1, 1), Array(2, 9), Array(3, 9), Array(4, 9))
Application.Goto Reference:="C1"
Selection.Replace What:="IP ", Replacement:="$", LookAt:=xlPart, SearchOrder:=xlByRows
Selection.TextToColumns Destination:=Range("B1"), DataType:=xlDelimited, Space:=False, Other:=True, OtherChar:="$", FieldInfo:=ension
Application.Goto Reference:="C2"
Selection.TextToColumns Destination:=Range("B1"), DataType:=xlDelimited, Space:=True, FieldInfo:=inutif
End Sub

EDITION: La même macro mais sans Selection
VB:
Sub Macro1B()
Dim ension: ension = Array(Array(1, 9), Array(2, 1))
Columns(1).Replace What:="IP ", Replacement:="$", LookAt:=2, SearchOrder:=1
Columns(1).TextToColumns Destination:=Range("B1"), DataType:=1, Space:=0, Other:=-1, OtherChar:="$", FieldInfo:=ension
Columns(2).TextToColumns Destination:=Range("B1"), DataType:=1, Space:=-1, FieldInfo:=Array(1, 1)
Columns(3).Resize(, Columns.Count - 2).ClearContents
End Sub
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re

@job75
Re,
Les solutions simples sont souvent les meilleures
A+

Effectivement, dans ce cas alors, pas besoin de VBA
Mettre la formule:=SIERREUR(--STXT(A2;TROUVE("IP";A2&"IP")+3;6);"") en B2 puis double-clic coin droit bas de B2 ;)

Et comme cela on rejoint la demande du premier message ;)
Bonjour à tous,
Je voudrais extraire un terme d'une cellule mais je n'ai pas forcément d'idée de formule à utiliser pour y arriver.
 

Discussions similaires

Statistiques des forums

Discussions
312 145
Messages
2 085 762
Membres
102 966
dernier inscrit
InitialPP