Excel : déconcatener et ordonner
Résolu/Fermé
A voir également:
- Excel : déconcatener et ordonner
- Liste déroulante excel - Guide
- Si et excel - Guide
- Word et excel gratuit - Guide
- Aller à la ligne excel - Guide
- Déplacer une colonne excel - Guide
5 réponses
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 248
20 déc. 2011 à 12:58
20 déc. 2011 à 12:58
Re,
J'avais mal placé la correction.
Ca devrait aller mieux avec ça :
eric
J'avais mal placé la correction.
Ca devrait aller mieux avec ça :
Function extraitAtt(cellule As Range, attribut As String) Dim p As Long p = InStr(UCase(cellule.Value), UCase(attribut) & ":") If p > 0 Then extraitAtt = Split(Mid(cellule, p + Len(attribut) + 1), "$")(0) Else extraitAtt = "" End If End Function
eric
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 248
Modifié par eriiic le 19/12/2011 à 18:57
Modifié par eriiic le 19/12/2011 à 18:57
Bonjour,
Une proposition avec une fonction personnalisée en vba :
Ex syntaxe :
=extraitAtt($A2;"Taille")
ou
=extraitAtt($A2;B$1)
à recopier vers la droite et vers le bas
https://www.cjoint.com/?ALts4hZVGmZ
eric
Une proposition avec une fonction personnalisée en vba :
Function extraitAtt(cellule As Range, attribut As String) Dim p As Long p = InStr(UCase(cellule.Value), UCase(attribut)) If p > 0 Then extraitAtt = Split(Mid(cellule, p + Len(attribut) + 1), "$")(0) Else extraitAtt = "" End If End Function
Ex syntaxe :
=extraitAtt($A2;"Taille")
ou
=extraitAtt($A2;B$1)
à recopier vers la droite et vers le bas
https://www.cjoint.com/?ALts4hZVGmZ
eric
Bonjour Eric,
Merci beaucoup pour cette réponse, beaucoup plus rapide et surtout beaucoup plus optimale que celle que j'espérais.
1 remarque cependant (ça ne serait pas drôle sinon) que je n'avais pas spécifiée au départ.
Dans mes attributs comme "Tailles" par exemple, il m'arrive d'avoir "Type" et "Type de sport" par exemple.
Avec ton programme, dans la colonne Type j'obtiens "de sport : Basket" et dans la colonne "Type de sport" j'obtiens "Basket". Je ne devrais obtenir que la deuxième partie.
Aurais-tu une solution pour cette spécificité ?
Je ne sais absolument pas si c'est complexe ou non dans le codage.
Si jamais c'était complexe à faire, tant pis, je te remercie déjà beaucoup pour ton aide, tu as réussi à débloquer un sujet plus que complexe pour moi.
Merci encore,
Merci beaucoup pour cette réponse, beaucoup plus rapide et surtout beaucoup plus optimale que celle que j'espérais.
1 remarque cependant (ça ne serait pas drôle sinon) que je n'avais pas spécifiée au départ.
Dans mes attributs comme "Tailles" par exemple, il m'arrive d'avoir "Type" et "Type de sport" par exemple.
Avec ton programme, dans la colonne Type j'obtiens "de sport : Basket" et dans la colonne "Type de sport" j'obtiens "Basket". Je ne devrais obtenir que la deuxième partie.
Aurais-tu une solution pour cette spécificité ?
Je ne sais absolument pas si c'est complexe ou non dans le codage.
Si jamais c'était complexe à faire, tant pis, je te remercie déjà beaucoup pour ton aide, tu as réussi à débloquer un sujet plus que complexe pour moi.
Merci encore,
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 248
Modifié par eriiic le 20/12/2011 à 11:45
Modifié par eriiic le 20/12/2011 à 11:45
Bonjour,
Tu peux déposer un fichier exemple ou une ligne de donnée avec ce pb, je n'arrive pas à reproduire...
Ou bien essaie avec :
eric
Tu peux déposer un fichier exemple ou une ligne de donnée avec ce pb, je n'arrive pas à reproduire...
Ou bien essaie avec :
Function extraitAtt(cellule As Range, attribut As String) Dim p As Long p = InStr(UCase(cellule.Value & ":"), UCase(attribut)) If p > 0 Then extraitAtt = Split(Mid(cellule, p + Len(attribut) + 1), "$")(0) Else extraitAtt = "" End If End Function
eric
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
20 déc. 2011 à 13:33
Merci encore beaucoup, ton aide a été plus que précieuse.