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

XL 2010 Extraire un type de donnée par cellule

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

saggigo

XLDnaute Occasionnel
Bonjour à tous,
J'espère que vous allez bien.
voilà, j'ai un tableau de deux colonnes(A,B), et dans la deuxième (B) colonne j'ai plusieurs doublons au format texte, j'aimerais extraire dans une cellule vide tous les noms qui sont dans la B, séparés par un ";"

Je vous remercie pour votre aide. faite moi signe si vous avez besoin de plus d'infos
 
Bonjour Victor,
Je n'ai pas trouvé comment faire, j'ai suivi les étapes mais il ne s'est rien passé. aussi j'ai trouvé cette macro, mais elle ne me dit pas comment faire pour séparer les données par des ";"


Public Function concaSD(cellules As Range) As String
Dim c As Range
Dim data As New Collection
Dim el
Dim t As String

On Error Resume Next
For Each c In cellules
data.Add c, CStr(c)
Next c
On Error GoTo 0

For Each el In data
t = t & el
Next el

concaSD = t

End Function

Peux-tu m'aider s'il te plait?
 
Re,

Reprenons par le début, car je ne suis pas sûr d'avoir compris votre problème :
Joignez un court fichier Excel représentatif, sans données confidentielles, avec un exemple : données de base, résultat attendu et les explications nécessaires.
 
Bonjour,
Essaye comme ceci:
VB:
Function Extrait(Plage As Range)
Dim c As Range, x As String
For Each c In Plage
  On Error Resume Next
    If Not x Like "*" & c & "*" Then
      x = x & c.Value & ";"
    End If
Next
x = Left(x, Len(x) - 1)
Extrait = x
End Function
**Modidifié
 

Pièces jointes

Dernière édition:
Bonjour le fil, le forum

Sur la base du fichier exemple, une autre méthode
VB:
Sub a()
Dim CONCAT, p As Range
Application.ScreenUpdating = False
Columns(1).SpecialCells(xlCellTypeConstants, 2).Copy Range("B2")
Columns(2).RemoveDuplicates Columns:=1, Header:=xlNo
Set p = Columns(2).SpecialCells(xlCellTypeConstants, 2)
p.Sort [B2], Order1:=xlAscending, Header:=xlNo
CONCAT = Join(Application.Transpose(p.Value), ";")
p.ClearContents
MsgBox CONCAT
End Sub
 
@Jacky67 😉,

Attention à l'utilisation du LIKE ! (ça m'est déjà arrivé 😱)

Si on a les données ci-dessous en A2:A6, ta macro ne ressort que deux termes car avec le "LIKE", le terme test est inclus dans tester, tout comme les deux termes bonne et nuit sont chacun inclus dans bonne nuit.
Code:
tester
test
bonne nuit
bonne
nuit
 
Hello mapomme
Oui, tu as tout à fait raison , je n'ai pas fait assez attention. 😡
Saggigo a trouver son bonheur à travers Staple 1600 et ... attribué à Vitor21 😱
 
Ahhhh je m'excuse Jacky67, c'est la tienne bien sur que j'ai essayé. merciiiii beaucoup Jacky.

Staple1600, je n'ai pas essayé ta macro car j'aurais préférer avoir une fonction. pourrais-tu s'il te plait en faire une fonction?

Et je suis sincèrement désolé pour l'erreur d'attribution des fleurs 🙂,
 
Re à tous,

et à @Victor21 😉 dont le code aura été d'une concision extrême ! 😀

@Jacky67 et @saggigo :

J'ai modifié à minima le code de la fonction de jacky67 pour tenir compte de ma précédente remarque :
VB:
Option Explicit
Option Compare Text

Function Extrait(Plage As Range) As String
Dim c As Range, x As String
   x = ";"
   For Each c In Plage
      If Len(c) > 0 Then If InStr(x, ";" & c & ";") = 0 Then x = x & c.Value & ";"
   Next
   If Right(x, 1) = ";" Then x = Left(x, Len(x) - 1)
   If Left(x, 1) = ";" Then x = Mid(x, 2)
   Extrait = x
End Function

La fonction ne prend en compte ni les cellules vides ni la casse (via l'option au niveau module "Option Compare Text")
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

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