Extraction de données

Bonjour,

J'ai des données (en PJ) à exploiter et je ne voudrais conserver que les noms qui sont entre les crochets [ ]...

Je galère un peu et je ne vois pas comment faire ça rapidement.

Merci beaucoup

Salut Beberttlse,

un double-clic dans ta feuille déclenche la macro...

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'
Dim tData, tSplit, sData$
'
Cancel = True
tData = UsedRange.Value
'
For x = 1 To UBound(tData, 1)
    For y = 1 To UBound(tData, 2)
        If InStr(tData(x, y), "[") > 0 Then
            sData = ""
            tSplit = Split(tData(x, y), "]")
            For Z = 0 To UBound(tSplit) - 1
                sData = sData & IIf(sData = "", Split(tSplit(Z), "[")(1), ", " & Split(tSplit(Z), "[")(1))
            Next
            tData(x, y) = sData
        End If
    Next
Next
Range("A1").Resize(UBound(tData, 1), UBound(tData, 2)).Value = tData
'
End Sub

A+

8dashboard.xlsm (15.61 Ko)

Merci... mais assez novice comment je peux faire pour intégrer cette macro???

Salut Beberttlse,

la macro se trouve dans le module VBA de la feuille concernée (ALT-F11 puis double-clic sur le nom de la feuille dans l'explorateur de projet pour accéder au code).

Le fichier doit évidemment être enregistré en XLSM.

Si tu as un souci, fais-nous parvenir le VRAI fichier! On t'arrangera ça...

A+

Voilà le vrai fichier mais j'aimerais bien savoir le faire car j'en ai 5 autres comme ça...

Merci beaucoup

5macro-forum.xlsx (12.16 Ko)

Dis-moi, Beberttlse,

reçois-tu ces fichiers en l'état régulièrement ou est-ce un one-shot?

A+

Non non juste pour cette période dans mon nouveau travail... donc peut être que ca va se reproduire...

Salut Beberttlse,

non, non... peut-être..., pas clair tout ça!

Aussi, je te propose un fichier indépendant, reprenant le code que je t'ai fourni, qui "scannerait" les fichiers que tu ouvrirais pour traitement.

Ainsi, plus de manipulations pour autant que les fichiers soient similaires.

J'imagine que les formules trouvées dans ton "vrai" fichier n'étaient que des essais pour obtenir le résultat recherché : à éliminer!

Je t'envoie ça ce soir...

A+

Salut Beberttlse,

ton fichier... juste un bouton rouge à cliquer après avoir ouvert les fichiers à traiter.

Private Sub cmdGO_Click()
'
Dim sWkB1 As Workbook, sWkB2 As Workbook, tData, tSplit, sData$
'
Set sWkB1 = ThisWorkbook
Cancel = True
For Each sWkB2 In Workbooks
    If InStr(sWkB2.Name, "Dashboard") > 0 And (sWkB2.Name <> sWkB1.Name And InStr(sWkB2.Name, "PERSONAL") = 0) Then
        With sWkB2.Sheets(1)
            tData = .UsedRange.Value
            For x = 1 To UBound(tData, 1)
                For y = 1 To UBound(tData, 2)
                    If InStr(tData(x, y), "[") > 0 Then
                        sData = ""
                        tSplit = Split(tData(x, y), "]")
                        For Z = 0 To UBound(tSplit) - 1
                            sData = sData & IIf(sData = "", Split(tSplit(Z), "[")(1), ", " & Split(tSplit(Z), "[")(1))
                        Next
                        tData(x, y) = sData
                    End If
                Next
            Next
            .Range("A1").Resize(UBound(tData, 1), UBound(tData, 2)).Value = tData
        End With
    End If
Next
MsgBox "Opération terminée!", vbInformation + vbOKOnly, "Clean Dashboard"
sWkB1.Close
'
End Sub

A+

Rechercher des sujets similaires à "extraction donnees"