"Dé-concaténer" deux textes séparés par un +

hbb

XLDnaute Occasionnel
Bonsoir tout le monde,

Je suis à la recherche d'une fonction ou code vba excel qui me permettrait d'identifier la ou les villes séparées par le signe "+" dans une cellule du tableau1.

Ensuite les placer une par une dans une colonne du tableau 2.
Les cellules contenant qu'une seule ville du tableau1 seraient également placées dans tab2 mais sans "dé-concaténer".

La dernière opération à effectuer dans tab2 est de placer les coûts correspondants mais en leur appliquant un pourcentage (précisé dans le tableau3).

J'espère avoir été clair...
Merci d'avance à celui ou celle qui pourra m'aider.

Les tableaux en pièce jointe pour simplifier.

A bientôt
Hbb
 

Pièces jointes

  • Dé-concaténer.xls
    16 KB · Affichages: 72
  • Dé-concaténer.xls
    16 KB · Affichages: 79
  • Dé-concaténer.xls
    16 KB · Affichages: 77

skoobi

XLDnaute Barbatruc
Re : "Dé-concaténer" deux textes séparés par un +

Bonsoir le fil,

Voici une proposition en VBA:

Code:
Sub test()
For i = 3 To [A65536].End(xlUp).Row
  tableau = Split(Range("B" & i).Value, "+")
  For j = 0 To UBound(tableau)
    Range("E" & [E65536].End(xlUp).Row + 1).Value = Trim(tableau(j))
    If UBound(tableau) = 0 Then
      Range("F" & [F65536].End(xlUp).Row + 1).Value = Range("C" & i).Value
    Else
      Set ville = Columns("J:L").Find(Trim(tableau(j)), LookIn:=xlValues, lookat:=xlWhole)
      Range("F" & [F65536].End(xlUp).Row + 1).Value = ville.Offset(, UBound(tableau) + 1).Value * Range("C" & i).Value
    End If
  Next
Next
End Sub
 

hbb

XLDnaute Occasionnel
Re : "Dé-concaténer" deux textes séparés par un +

Bonsoir,

J'ai quand même constaté un problème dans ce code.

Quand les villes du tableau 3 sont toutes différentes, le pourcentage s'applique correctement.

Par contre, quand nous avons par exemple en Tableau3 :
Ligne 1 : PARIS - NANTES
Ligne 2 : VANNES - QUIMPER
Ligne 3 : PARIS - NANTES - CAEN (là ça pose Pb...)

Merci d'avance pour votre aide et bonne soirée.
Hbb
 

Pièces jointes

  • Dé-concaténer.xls
    24 KB · Affichages: 65
  • Dé-concaténer.xls
    24 KB · Affichages: 58
  • Dé-concaténer.xls
    24 KB · Affichages: 59

skoobi

XLDnaute Barbatruc
Re : "Dé-concaténer" deux textes séparés par un +

Re bonjour,

En effet, voici la correction:

Code:
Sub test()
ligne = 1
For i = 3 To [A65536].End(xlUp).Row
  tableau = Split(Range("B" & i).Value, "+")
  If UBound(tableau) > 0 Then ligne = ligne + 1
  For j = 0 To UBound(tableau)
    Range("E" & [E65536].End(xlUp).Row + 1).Value = Trim(tableau(j))
    If UBound(tableau) = 0 Then
      Range("F" & [F65536].End(xlUp).Row + 1).Value = Range("C" & i).Value
    Else
      Set ville = Columns("J:L").Find(Trim(tableau(j)), LookIn:=xlValues, lookat:=xlWhole)
      Range("F" & [F65536].End(xlUp).Row + 1).Value = Cells(ligne, j + UBound(tableau) - 1 + 12).Value * Range("C" & i).Value
    End If
  Next
Next
End Sub
 

hbb

XLDnaute Occasionnel
Re : "Dé-concaténer" deux textes séparés par un +

Bonsoir à tous,

A nouveau un p'tit pb.

Ce code ne fonctionne plus quand j'inverse les lignes 5 et 6 du tableau 1 par exemple.
En effet, l'ordre des sites livrés en tablo 1 n'est pas le même que celui des villes dans le tablo 3.
Est-ce toujours rélisable ?

Merci d'avance,
Hbb
 

Pièces jointes

  • Dé-concaténer.xls
    25 KB · Affichages: 57
  • Dé-concaténer.xls
    25 KB · Affichages: 58
  • Dé-concaténer.xls
    25 KB · Affichages: 55

skoobi

XLDnaute Barbatruc
Re : "Dé-concaténer" deux textes séparés par un +

Bonjour,

Si un circuit (PARIS + NANTES + CAEN par exemple) est écrit plusieurs fois dans le tableau 1 est-ce que les pourcentages d'attributions du tableau 3 changent ou ils restent les mêmes?
 

hbb

XLDnaute Occasionnel
Re : "Dé-concaténer" deux textes séparés par un +

bonjour,

Effectivement, chaque circuit peut se reproduire plusieurs fois.
Et les pourcentages d'attribution restent les mêmes dans ces cas là.

Merci,
hbb
 

hbb

XLDnaute Occasionnel
Re : "Dé-concaténer" deux textes séparés par un +

Merci infiniment Skoobi pour toutes tes réponses.
En espérant ne plus avoir à user de ton temps....(je pense que c'est bon cette fois-ci)

Bonne journée
A+
hbb
 

hbb

XLDnaute Occasionnel
Re : "Dé-concaténer" deux textes séparés par un +

Bonjour à tous,

J'ai d'abord rencontré un problème avec le code qui m'avait été généreusement créé par Skoobi en faisant le test au taf.
On travaille sur office 2000 de mémoire et la fonction SPLIT ne passait pas !!!

Un collègue m'a donc modifié légèrement ce code en ajoutant une fonction pour déconcaténer. Maintenant c'est bon.

Et là, j'ai de nouveau constaté un p'tit problème.
Je l'ai décrit dans le fichier joint pour que ce soit plus clair avec les tableaux sous les yeux.

Merci d'avance à celui ou celle qui pourra me sortir de cette galère...
A bientôt j'espère.
Hbb
 

Pièces jointes

  • Dé-concaténer.xls
    30.5 KB · Affichages: 57
  • Dé-concaténer.xls
    30.5 KB · Affichages: 59
  • Dé-concaténer.xls
    30.5 KB · Affichages: 59

Discussions similaires

Statistiques des forums

Discussions
312 502
Messages
2 089 033
Membres
104 010
dernier inscrit
Freba