Recherche formule pour séparer donnée hors gauche ou droite

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Avatar du membre
Pipin54000
Membre habitué
Membre habitué
Messages : 136
Appréciation reçue : 1
Inscrit le : 21 juillet 2018
Version d'Excel : 2016 FR

Message par Pipin54000 » 12 juillet 2019, 11:37

Bonjour à tous,

j'ai une question, je fais mes recherches en parallèle biensûr, mais l'avis des connaisseurs d'excel est important sur ce sujet.
ma question : connaissez vous une fonction excel permettant de sépar des données dans une cellule excel ? je m'explique, je travail dans le transport overseas, nous expedions des containers à l'international. j'extrais des données de mon ERP concernant les commandes de chaaque client mais dans une commande client il peut très bien y avoir 1 seul container (là c'est simple à résoudre) mais parfois c'est davantages (1.2.3.4.... containers pour 1 commande). donc dans mon extraction je me retrouvve avec 1 cellule comme : CAIU4318516 (40GP), FCIU7363137 (40GP), MEDU7874973 (40GP), MSCU9097752 (40GP), MSCU9378472 (40GP), TGHU8642494 (40GP)

ce que je cherche c'est que excel me fasse une cellule par ligne et par container. j'ai pensais à droite ou gauche mais suivant la compagnie le nombre de caractère varie. je pense plus qu'il faudrait une formule qui sépare les donnée jusqu'à ce quelle trouve une virgule.

Pour cause de confidentialité, je vous ai fais un exemple ci dessous

Qu'en pensez vous ?

Pipin54000
PIPIN.xlsx
(11.88 Kio) Téléchargé 7 fois
Je comprends vite mais il faut m'expliquer longtemps, parfois ça vaut le coup :oops:
Qui sait, un jour le padawone deviendra maître et peut être que je vous apprendrai quelque chose 8-)
Avatar du membre
Ausecour
Passionné d'Excel
Passionné d'Excel
Messages : 3'118
Appréciations reçues : 346
Inscrit le : 31 mai 2018
Version d'Excel : 2010 FR, 2013 FR

Message par Ausecour » 12 juillet 2019, 11:48

Bonjour,

on se croise souvent en ce moment :P
en formule je ne vois pas bien, je sais qu'on peut utiliser "convertir" dans l'onglet "Données", mais ici ça ne résoudra pas ton problème, en revanche, en VBA c'est totalement faisable avec la fonction Split() qui permet de séparer des données qui se retrouvent dans un tableau.

Il faut ensuite faire le code pour répéter les lignes de données, mais c'est clairement faisable, le plus difficile je dirais, c'est d'optimiser le code :wink:

Une solution par VBA te ferait-t-elle peur? Je sais que certains membres ne veulent pas en entendre parler... Parce que par formule, je ne vois pas comment tu pourrais faire...
Plus un sujet a un titre précis, des explications claires, et un fichier Excel bien préparé, plus il a de chances d'avoir une réponse qui répond au besoin, mettez toutes les chances de votre côté :bien:
"100% des gagnants auront tenté leur chance" :trfl:
t
tulipe_4
Passionné d'Excel
Passionné d'Excel
Messages : 8'789
Appréciations reçues : 262
Inscrit le : 1 janvier 2011
Version d'Excel : 2000 2007

Message par tulipe_4 » 12 juillet 2019, 11:52

bonjour
un essai
dans les cel vertes
PIPIN.xlsx
(12.41 Kio) Téléchargé 2 fois
cordialement
c'est en cherchant qu'on trouve
Avatar du membre
Pipin54000
Membre habitué
Membre habitué
Messages : 136
Appréciation reçue : 1
Inscrit le : 21 juillet 2018
Version d'Excel : 2016 FR

Message par Pipin54000 » 12 juillet 2019, 11:57

Ausecour,

Effectivement en ce moment j'ai beaucoup de question ! :p

je ne suis pas contre du vba, par contre je ne pense pas pouvoir réaliser ce code tout seul, je vais me renseigner sur cette fonction Split() avant de tenter le diable ! :p

Utiliserais tu une formule ou un code VBA afin de recopier les données A2:I2 et K2:V2 sur chaque ligne de container ?

à te lire
Pipin54000
Je comprends vite mais il faut m'expliquer longtemps, parfois ça vaut le coup :oops:
Qui sait, un jour le padawone deviendra maître et peut être que je vous apprendrai quelque chose 8-)
Avatar du membre
Ausecour
Passionné d'Excel
Passionné d'Excel
Messages : 3'118
Appréciations reçues : 346
Inscrit le : 31 mai 2018
Version d'Excel : 2010 FR, 2013 FR

Message par Ausecour » 12 juillet 2019, 12:00

Re,

C'est exactement ça, en clair en mettant les différents conteners dans un tableau, je sortiras les conteners un à un sur des lignes en recopiant les informations fixes :wink:

Pour le code on peut te le faire, il faut juste que tu valides qu'une solution par VBA t'irait, car la solution proposée par tulipe est très limitée si tu as besoin de faire ça sur un gros nombre de lignes (de ce que j'en ai vu).
Plus un sujet a un titre précis, des explications claires, et un fichier Excel bien préparé, plus il a de chances d'avoir une réponse qui répond au besoin, mettez toutes les chances de votre côté :bien:
"100% des gagnants auront tenté leur chance" :trfl:
Avatar du membre
Pipin54000
Membre habitué
Membre habitué
Messages : 136
Appréciation reçue : 1
Inscrit le : 21 juillet 2018
Version d'Excel : 2016 FR

Message par Pipin54000 » 12 juillet 2019, 12:25

Tulipe,

Merci pour cette formule ! mais je ne suis pas sûr que au vu du volume de ligne à traiter que cela soit la plus pratique.
Merci d'avoir donnée ton avis sur ce sujet :)

Ausecour,

Je pense effectivement que le VBA est incontournable dans ce cas là. j'ai en gros 200 lignes à traiter chaque mois par client.
Par contre chaque mois dû à l'extraction chaque mois le fichier d'etraction est différent, je pense donc que je vais créer un fichier excel où la macro y sera et j'importerai les donnée depuis l'extraction excel


merci de votre aide à tout les 2 !
à vous lire
Pipin54000
Je comprends vite mais il faut m'expliquer longtemps, parfois ça vaut le coup :oops:
Qui sait, un jour le padawone deviendra maître et peut être que je vous apprendrai quelque chose 8-)
Avatar du membre
Ausecour
Passionné d'Excel
Passionné d'Excel
Messages : 3'118
Appréciations reçues : 346
Inscrit le : 31 mai 2018
Version d'Excel : 2010 FR, 2013 FR

Message par Ausecour » 12 juillet 2019, 14:03

Re,

je te propose cette solution qui fonctionne rapidement pour le coup :lole:
PIPIN.xlsm
(18.09 Kio) Téléchargé 11 fois
Tu me diras ce que tu en pense :wink:
Plus un sujet a un titre précis, des explications claires, et un fichier Excel bien préparé, plus il a de chances d'avoir une réponse qui répond au besoin, mettez toutes les chances de votre côté :bien:
"100% des gagnants auront tenté leur chance" :trfl:
m
m3ellem1
Membre impliqué
Membre impliqué
Messages : 1'896
Appréciations reçues : 167
Inscrit le : 18 décembre 2018
Version d'Excel : 2016

Message par m3ellem1 » 12 juillet 2019, 14:18

Slt tout le monde,

une autre macro à tester
Sub Separer_Donnees()

Dim sht As Worksheet
Dim i As Long, r As Long, rws As Long, LCol As Long
Dim c As Range
Dim vC As Variant

On Error GoTo FallThrough
Application.EnableEvents = False
Application.ScreenUpdating = False

Set sht = ThisWorkbook.Worksheets("Sheet1")

LCol = sht.UsedRange.Columns(sht.UsedRange.Columns.Count).Column

For r = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
    If InStr(1, Cells(r, 10).Value, ",") > 0 Then
        rws = Len(Cells(r, 10).Value) - Len(Replace(Cells(r, 10).Value, ",", vbNullString))
        Cells(r + 1, 10).Resize(rws, 1).EntireRow.Insert
        Cells(r, 1).Resize(rws + 1, LCol).FillDown
        For i = 0 To rws
            For Each c In Cells(r + i, 1).Resize(1, LCol)
                If InStr(1, c.Value, ",") > 0 Then
                    vC = Split(c.Value, ",")
                    c = vC(i)
                End If
                If IsNumeric(c) Then c = c.Value
            Next c
        Next i
    End If
Next r
FallThrough:
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
À partir d'hier, j'ai décidé de ne plus expliquer les solutions proposées et de ne plus répondre aux MP!
Avatar du membre
Pipin54000
Membre habitué
Membre habitué
Messages : 136
Appréciation reçue : 1
Inscrit le : 21 juillet 2018
Version d'Excel : 2016 FR

Message par Pipin54000 » 12 juillet 2019, 15:15

Ausecour,

la macro est super ! et la rapidité .... :)
par contre j'ai pensé à un truc, dis moi ce que tu en penses :

1- feuille 2 : créer une macro afin d'importer les données de mon extraction excel
2- feuille 1 : on split et coupe / colle dans la feuille 1

Qu'en penses tu ?

Pippin54000
PIPIN (1).xlsm
(19.15 Kio) Téléchargé 3 fois
Je comprends vite mais il faut m'expliquer longtemps, parfois ça vaut le coup :oops:
Qui sait, un jour le padawone deviendra maître et peut être que je vous apprendrai quelque chose 8-)
Avatar du membre
Ausecour
Passionné d'Excel
Passionné d'Excel
Messages : 3'118
Appréciations reçues : 346
Inscrit le : 31 mai 2018
Version d'Excel : 2010 FR, 2013 FR

Message par Ausecour » 12 juillet 2019, 15:46

Re,

Je peux modifier la macro pour mettre le résultat sur une nouvelle feuille, mais pour la première demande, il faudra que tu te contentes d'un copier coller :wink:

Voici la macro modifiée avec création d'une nouvelle feuille de résultat :
PIPIN.xlsm
(16.71 Kio) Téléchargé 8 fois
Plus un sujet a un titre précis, des explications claires, et un fichier Excel bien préparé, plus il a de chances d'avoir une réponse qui répond au besoin, mettez toutes les chances de votre côté :bien:
"100% des gagnants auront tenté leur chance" :trfl:
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message