XL 2016 Extraire deux lignes d'une même cellule

Starnour

XLDnaute Nouveau
Salut;
Si vous me permettiez voila mon problème.
Je voudrais que la cellule B3 me donne que ces 2 lignes qui se trouvent dans la cellule A3.
Ces 2 lignes commencent par TrunkPort Num et TrunkRes Num. D'une autre façon je voudrais comme ce résultat figurant dans la colonne B et ainsi de suite.
La cellule comme B6 dans mon exemple s'est vide puisqu'il n'y a pas "TrunkPort Num" et "TrunkRes Num" dans la cellule A6.
Comment je dois écrire la formule qui me donne le résultat figurant dans la colonne B d'une façon automatique et surtout s'il y ' aura un changement dans la colonne A?.

Cordialement...
 

Pièces jointes

  • p1.xls
    30.5 KB · Affichages: 20
Solution
Re...
Il faudra copier le code dans un module standard de l'autre classeur
On peut alors éventuellememnt copier ce bouton dans l'autre classeur ou en créer un nouveau par:
Menu développeur ==> insérer==>

ps:*Il est possible que le menu développeur ne soit pas activé
Pour ce faire
Option Excel==>section standard==> Afficher l'onglet Développeur dans le ruban
1588459593418.png

Une fois le bouton copier ou créer, il faut lui attribuer le code
Pour cela
Clique droit sur le bouton==>Affecter une macro
et choisir dans la liste la macro précédemment coller qui a comme nom(dans cet exemple)==>testJJ

1588460486928.png

Jacky67

XLDnaute Barbatruc
Salut;
Si vous me permettiez voila mon problème.
Je voudrais que la cellule B3 me donne que ces 2 lignes qui se trouvent dans la cellule A3.
Ces 2 lignes commencent par TrunkPort Num et TrunkRes Num. D'une autre façon je voudrais comme ce résultat figurant dans la colonne B et ainsi de suite.
La cellule comme B6 dans mon exemple s'est vide puisqu'il n'y a pas "TrunkPort Num" et "TrunkRes Num" dans la cellule A6.
Comment je dois écrire la formule qui me donne le résultat figurant dans la colonne B d'une façon automatique et surtout s'il y ' aura un changement dans la colonne A?.

Cordialement...
Bonjour,
Une proposition par vba en pj
VB:
Sub testJJ()
    Dim C, i&
    Columns(2).ClearContents
    For i = 3 To Cells(Rows.Count, "A").End(xlUp).Row
        'Recherche "TrunkPort Num" et "TrunkRes Num"
        For Each C In Split(Cells(i, 1), ";")
            If InStr(C, "TrunkPort Num") Then Cells(i, 2) = C
            If InStr(C, "TrunkRes Num") Then Cells(i, 2) = Cells(i, 2) & C
        Next
    Next
End Sub
 

Pièces jointes

  • p1.xlsm
    17.1 KB · Affichages: 6
Dernière édition:

Starnour

XLDnaute Nouveau
Bonjour,
Une proposition par vba en pj
VB:
Sub testJJ()
    Dim C, i&
    Columns(2).ClearContents
    For i = 3 To Cells(Rows.Count, "A").End(xlUp).Row
        'Recherche "TrunkPort Num" et "TrunkRes Num"
        For Each C In Split(Cells(i, 1), ";")
            If InStr(C, "TrunkPort Num") Then Cells(i, 2) = C
            If InStr(C, "TrunkRes Num") Then Cells(i, 2) = Cells(i, 2) & C
        Next
    Next
End Sub
Re;
Je vous remercie infiniment.
Comment je peux ajouter cette formule à un autre classeur?
Cordialement...
 

Jacky67

XLDnaute Barbatruc
Re;
Je vous remercie infiniment.
Comment je peux ajouter cette formule à un autre classeur?
Cordialement...
Re...
Ce n'est pas une formule proprement dite, mais une procédure vba
Ce code peut-être utilisé dans tous les classeurs, il suffit de le copier/coller.
Si comme précisé, le point-virgule peut-être absent, alors utiliser ce code.
VB:
Sub testJJ()
    Dim C, i&
    Columns(2).ClearContents
    For i = 3 To Cells(Rows.Count, "A").End(xlUp).Row
        'Recherche "TrunkPort Num" et "TrunkRes Num"
        For Each C In Split(Cells(i, 1), Chr(10)) ' modifier
            If InStr(C, "TrunkPort Num") Then Cells(i, 2) = C
            If InStr(C, "TrunkRes Num") Then Cells(i, 2) = Cells(i, 2) & vbLf & C ' modifier
        Next
    Next
End Sub
 

Jacky67

XLDnaute Barbatruc
Re..
Une proposition sous forme de fonction personnalisée
Dans un module standard, ceci
VB:
Function Decortique(Cel, Mot1, Mot2)
    Dim C, tmp As String
    For Each C In Split(Cel, Chr(10))
        If InStr(C, Mot1) Then tmp = C
        If InStr(C, Mot2) Then tmp = tmp & vbLf & C
    Next
    If tmp <> "" Then Decortique = tmp Else Decortique = ""
End Function
Dans une cellule
=decortique(A3;"TrunkPort Num";"TrunkRes Num")
 

Pièces jointes

  • p1 Par Fonction.xlsm
    16.5 KB · Affichages: 9

Discussions similaires

Statistiques des forums

Discussions
312 184
Messages
2 086 007
Membres
103 088
dernier inscrit
Psodam