Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

demande d'aide sur un concaterner avec condition

10 réponses
Avatar
sleg
Bonjour,

avant d'exposer mon probleme je vous donne un rapide descriptif de ma
feuille.

Dans une feuille data j'ai en :
- colonne A un n=B0
- colonne B du texte
- colonne c du texte
- colonne D un texte type XXX / YYY / ZZZ etc

et j'aimerais dans une autre feuille nomm=E9e "Ticket metier" avoir une
formule qui me donnerais par exemple une concatenation de A + B pour
tous les XXX en b1 idem pour YYY en B2 etc... avec un saut de ligne
entre chaque A+B.

sais pas si je suis tres clair la et si c'est possible ?



merci d'avance de vos reponses.

10 réponses

Avatar
JB
Bonjour,


Sub Essai()
Set mondico = CreateObject("Scripting.Dictionary")
For Each c In Range("d1", [d65000].End(xlUp))
If Not mondico.Exists(c.Value) Then
mondico.Add c.Value, c.Offset(0, -3) & ":" & c.Offset(0, -2)
Else
temp = mondico.Item(c.Value)
mondico.Remove (c.Value)
mondico.Add c.Value, temp & Chr(10) & c.Offset(0, -3) & ":" &
c.Offset(0, -2)
End If
Next c
[h2].Resize(mondico.Count, 1) = Application.Transpose(mondico.keys)
[i2].Resize(mondico.Count, 1) = Application.Transpose(mondico.items)
End Sub

http://cjoint.com/?dlm5WD2QCS

JB
http://boisgontierjacques.free.fr/


On 11 mar, 10:46, sleg wrote:
Bonjour,

avant d'exposer mon probleme je vous donne un rapide descriptif de ma
feuille.

Dans une feuille data j'ai en :
- colonne A un n°
- colonne B du texte
- colonne c du texte
- colonne D un texte type XXX / YYY / ZZZ etc

et j'aimerais dans une autre feuille nommée "Ticket metier" avoir une
formule qui me donnerais par exemple une concatenation de A + B pour
tous les XXX en b1 idem pour YYY en B2 etc... avec un saut de ligne
entre chaque A+B.

sais pas si je suis tres clair la et si c'est possible ?

merci d'avance de vos reponses.


Avatar
sleg
Merci,

mais j'ai un erreur d'execution 13 sur la ligne
"[i2].Resize(mondico.Count, 1) =
Application.Transpose(mondico.items)" ?

une idée ?


On 11 mar, 12:57, JB wrote:
Bonjour,

Sub Essai()
  Set mondico = CreateObject("Scripting.Dictionary")
  For Each c In Range("d1", [d65000].End(xlUp))
    If Not mondico.Exists(c.Value) Then
       mondico.Add c.Value, c.Offset(0, -3) & ":" & c.Offset(0, -2 )
    Else
      temp = mondico.Item(c.Value)
      mondico.Remove (c.Value)
      mondico.Add c.Value, temp & Chr(10) & c.Offset(0, -3) & ":" &
c.Offset(0, -2)
    End If
  Next c
  [h2].Resize(mondico.Count, 1) = Application.Transpose(mondico.keys)
  [i2].Resize(mondico.Count, 1) = Application.Transpose(mondico.items)
End Sub

http://cjoint.com/?dlm5WD2QCS

JBhttp://boisgontierjacques.free.fr/

On 11 mar, 10:46, sleg wrote:



Bonjour,

avant d'exposer mon probleme je vous donne un rapide descriptif de ma
feuille.

Dans une feuille data j'ai en :
- colonne A un n°
- colonne B du texte
- colonne c du texte
- colonne D un texte type XXX / YYY / ZZZ etc

et j'aimerais dans une autre feuille nommée "Ticket metier" avoir une
formule qui me donnerais par exemple une concatenation de A + B pour
tous les XXX en b1 idem pour YYY en B2 etc... avec un saut de ligne
entre chaque A+B.

sais pas si je suis tres clair la et si c'est possible ?

merci d'avance de vos reponses.- Masquer le texte des messages précé dents -


- Afficher le texte des messages précédents -



Avatar
sleg
pou info dans la colonne B j'ai des : / : @ des caracteres comme ça
je crois que ces caracteres provoque cette erreuer une idée pour
contourner le probleme ?


On 11 mar, 12:57, JB wrote:
Bonjour,

Sub Essai()
  Set mondico = CreateObject("Scripting.Dictionary")
  For Each c In Range("d1", [d65000].End(xlUp))
    If Not mondico.Exists(c.Value) Then
       mondico.Add c.Value, c.Offset(0, -3) & ":" & c.Offset(0, -2 )
    Else
      temp = mondico.Item(c.Value)
      mondico.Remove (c.Value)
      mondico.Add c.Value, temp & Chr(10) & c.Offset(0, -3) & ":" &
c.Offset(0, -2)
    End If
  Next c
  [h2].Resize(mondico.Count, 1) = Application.Transpose(mondico.keys)
  [i2].Resize(mondico.Count, 1) = Application.Transpose(mondico.items)
End Sub

http://cjoint.com/?dlm5WD2QCS

JBhttp://boisgontierjacques.free.fr/

On 11 mar, 10:46, sleg wrote:



Bonjour,

avant d'exposer mon probleme je vous donne un rapide descriptif de ma
feuille.

Dans une feuille data j'ai en :
- colonne A un n°
- colonne B du texte
- colonne c du texte
- colonne D un texte type XXX / YYY / ZZZ etc

et j'aimerais dans une autre feuille nommée "Ticket metier" avoir une
formule qui me donnerais par exemple une concatenation de A + B pour
tous les XXX en b1 idem pour YYY en B2 etc... avec un saut de ligne
entre chaque A+B.

sais pas si je suis tres clair la et si c'est possible ?

merci d'avance de vos reponses.- Masquer le texte des messages précé dents -


- Afficher le texte des messages précédents -



Avatar
sleg
Re moi le probleme vient que j'ai dans certaine colonnes plus de 255
caracteres. et la ça marche plus une solution ?




On 11 mar, 12:57, JB wrote:
Bonjour,

Sub Essai()
  Set mondico = CreateObject("Scripting.Dictionary")
  For Each c In Range("d1", [d65000].End(xlUp))
    If Not mondico.Exists(c.Value) Then
       mondico.Add c.Value, c.Offset(0, -3) & ":" & c.Offset(0, -2 )
    Else
      temp = mondico.Item(c.Value)
      mondico.Remove (c.Value)
      mondico.Add c.Value, temp & Chr(10) & c.Offset(0, -3) & ":" &
c.Offset(0, -2)
    End If
  Next c
  [h2].Resize(mondico.Count, 1) = Application.Transpose(mondico.keys)
  [i2].Resize(mondico.Count, 1) = Application.Transpose(mondico.items)
End Sub

http://cjoint.com/?dlm5WD2QCS

JBhttp://boisgontierjacques.free.fr/

On 11 mar, 10:46, sleg wrote:



Bonjour,

avant d'exposer mon probleme je vous donne un rapide descriptif de ma
feuille.

Dans une feuille data j'ai en :
- colonne A un n°
- colonne B du texte
- colonne c du texte
- colonne D un texte type XXX / YYY / ZZZ etc

et j'aimerais dans une autre feuille nommée "Ticket metier" avoir une
formule qui me donnerais par exemple une concatenation de A + B pour
tous les XXX en b1 idem pour YYY en B2 etc... avec un saut de ligne
entre chaque A+B.

sais pas si je suis tres clair la et si c'est possible ?

merci d'avance de vos reponses.- Masquer le texte des messages précé dents -


- Afficher le texte des messages précédents -



Avatar
JB
Sub Essai()
Set mondico = CreateObject("Scripting.Dictionary")
For Each c In Range("d1", [d65000].End(xlUp))
If Not mondico.Exists(c.Value) Then
mondico.Add c.Value, c.Offset(0, -3) & ":" & c.Offset(0, -2)
Else
temp = mondico.Item(c.Value)
mondico.Remove (c.Value)
mondico.Add c.Value, temp & Chr(10) & c.Offset(0, -3) & ":" &
c.Offset(0, -2)
End If
Next c
a = mondico.keys
b = mondico.items
For i = LBound(b) To UBound(b)
Sheets(2).Cells(i + 1, 1) = a(i)
Sheets(2).Cells(i + 1, 2) = b(i)
Next i
End Sub

http://cjoint.com/?dloyZKlYiW

JB


On 11 mar, 14:00, sleg wrote:
pou info dans la colonne B j'ai des : / : @ des caracteres comme ça
je crois que ces caracteres provoque cette erreuer une idée pour
contourner le probleme ?

On 11 mar, 12:57, JB wrote:



Bonjour,

Sub Essai()
  Set mondico = CreateObject("Scripting.Dictionary")
  For Each c In Range("d1", [d65000].End(xlUp))
    If Not mondico.Exists(c.Value) Then
       mondico.Add c.Value, c.Offset(0, -3) & ":" & c.Offset(0, -2)
    Else
      temp = mondico.Item(c.Value)
      mondico.Remove (c.Value)
      mondico.Add c.Value, temp & Chr(10) & c.Offset(0, -3) & ":" &
c.Offset(0, -2)
    End If
  Next c
  [h2].Resize(mondico.Count, 1) = Application.Transpose(mondico.keys )
  [i2].Resize(mondico.Count, 1) = Application.Transpose(mondico.item s)
End Sub

http://cjoint.com/?dlm5WD2QCS

JBhttp://boisgontierjacques.free.fr/

On 11 mar, 10:46, sleg wrote:

Bonjour,

avant d'exposer mon probleme je vous donne un rapide descriptif de ma
feuille.

Dans une feuille data j'ai en :
- colonne A un n°
- colonne B du texte
- colonne c du texte
- colonne D un texte type XXX / YYY / ZZZ etc

et j'aimerais dans une autre feuille nommée "Ticket metier" avoir un e
formule qui me donnerais par exemple une concatenation de A + B pour
tous les XXX en b1 idem pour YYY en B2 etc... avec un saut de ligne
entre chaque A+B.

sais pas si je suis tres clair la et si c'est possible ?

merci d'avance de vos reponses.- Masquer le texte des messages préc édents -


- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -




Avatar
JB
http://cjoint.com/?dloyZKlYiW

JB

On 11 mar, 14:22, sleg wrote:
Re moi le probleme vient que j'ai dans certaine colonnes plus de 255
caracteres. et la ça marche plus une solution ?

On 11 mar, 12:57, JB wrote:



Bonjour,

Sub Essai()
  Set mondico = CreateObject("Scripting.Dictionary")
  For Each c In Range("d1", [d65000].End(xlUp))
    If Not mondico.Exists(c.Value) Then
       mondico.Add c.Value, c.Offset(0, -3) & ":" & c.Offset(0, -2)
    Else
      temp = mondico.Item(c.Value)
      mondico.Remove (c.Value)
      mondico.Add c.Value, temp & Chr(10) & c.Offset(0, -3) & ":" &
c.Offset(0, -2)
    End If
  Next c
  [h2].Resize(mondico.Count, 1) = Application.Transpose(mondico.keys )
  [i2].Resize(mondico.Count, 1) = Application.Transpose(mondico.item s)
End Sub

http://cjoint.com/?dlm5WD2QCS

JBhttp://boisgontierjacques.free.fr/

On 11 mar, 10:46, sleg wrote:

Bonjour,

avant d'exposer mon probleme je vous donne un rapide descriptif de ma
feuille.

Dans une feuille data j'ai en :
- colonne A un n°
- colonne B du texte
- colonne c du texte
- colonne D un texte type XXX / YYY / ZZZ etc

et j'aimerais dans une autre feuille nommée "Ticket metier" avoir un e
formule qui me donnerais par exemple une concatenation de A + B pour
tous les XXX en b1 idem pour YYY en B2 etc... avec un saut de ligne
entre chaque A+B.

sais pas si je suis tres clair la et si c'est possible ?

merci d'avance de vos reponses.- Masquer le texte des messages préc édents -


- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -




Avatar
sleg
Merci je teste et te fais un retour.



On 11 mar, 14:53, JB wrote:
http://cjoint.com/?dloyZKlYiW

JB

On 11 mar, 14:22, sleg wrote:



Re moi le probleme vient que j'ai dans certaine colonnes plus de 255
caracteres. et la ça marche plus une solution ?

On 11 mar, 12:57, JB wrote:

Bonjour,

Sub Essai()
  Set mondico = CreateObject("Scripting.Dictionary")
  For Each c In Range("d1", [d65000].End(xlUp))
    If Not mondico.Exists(c.Value) Then
       mondico.Add c.Value, c.Offset(0, -3) & ":" & c.Offset(0 , -2)
    Else
      temp = mondico.Item(c.Value)
      mondico.Remove (c.Value)
      mondico.Add c.Value, temp & Chr(10) & c.Offset(0, -3) & ": " &
c.Offset(0, -2)
    End If
  Next c
  [h2].Resize(mondico.Count, 1) = Application.Transpose(mondico.ke ys)
  [i2].Resize(mondico.Count, 1) = Application.Transpose(mondico.it ems)
End Sub

http://cjoint.com/?dlm5WD2QCS

JBhttp://boisgontierjacques.free.fr/

On 11 mar, 10:46, sleg wrote:

Bonjour,

avant d'exposer mon probleme je vous donne un rapide descriptif de m a
feuille.

Dans une feuille data j'ai en :
- colonne A un n°
- colonne B du texte
- colonne c du texte
- colonne D un texte type XXX / YYY / ZZZ etc

et j'aimerais dans une autre feuille nommée "Ticket metier" avoir une
formule qui me donnerais par exemple une concatenation de A + B pour
tous les XXX en b1 idem pour YYY en B2 etc... avec un saut de ligne
entre chaque A+B.

sais pas si je suis tres clair la et si c'est possible ?

merci d'avance de vos reponses.- Masquer le texte des messages pré cédents -


- Afficher le texte des messages précédents -- Masquer le texte de s messages précédents -


- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -





Avatar
sleg
Bonjour,

Grand merci ça marche nickel mais j'aimerais savoir s'il est possible
d'ajouter un saut de ligne entre chaque a+b ?


On 11 mar, 14:53, JB wrote:
http://cjoint.com/?dloyZKlYiW

JB

On 11 mar, 14:22, sleg wrote:



Re moi le probleme vient que j'ai dans certaine colonnes plus de 255
caracteres. et la ça marche plus une solution ?

On 11 mar, 12:57, JB wrote:

Bonjour,

Sub Essai()
  Set mondico = CreateObject("Scripting.Dictionary")
  For Each c In Range("d1", [d65000].End(xlUp))
    If Not mondico.Exists(c.Value) Then
       mondico.Add c.Value, c.Offset(0, -3) & ":" & c.Offset(0 , -2)
    Else
      temp = mondico.Item(c.Value)
      mondico.Remove (c.Value)
      mondico.Add c.Value, temp & Chr(10) & c.Offset(0, -3) & ": " &
c.Offset(0, -2)
    End If
  Next c
  [h2].Resize(mondico.Count, 1) = Application.Transpose(mondico.ke ys)
  [i2].Resize(mondico.Count, 1) = Application.Transpose(mondico.it ems)
End Sub

http://cjoint.com/?dlm5WD2QCS

JBhttp://boisgontierjacques.free.fr/

On 11 mar, 10:46, sleg wrote:

Bonjour,

avant d'exposer mon probleme je vous donne un rapide descriptif de m a
feuille.

Dans une feuille data j'ai en :
- colonne A un n°
- colonne B du texte
- colonne c du texte
- colonne D un texte type XXX / YYY / ZZZ etc

et j'aimerais dans une autre feuille nommée "Ticket metier" avoir une
formule qui me donnerais par exemple une concatenation de A + B pour
tous les XXX en b1 idem pour YYY en B2 etc... avec un saut de ligne
entre chaque A+B.

sais pas si je suis tres clair la et si c'est possible ?

merci d'avance de vos reponses.- Masquer le texte des messages pré cédents -


- Afficher le texte des messages précédents -- Masquer le texte de s messages précédents -


- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -





Avatar
JB
Bonjour,

http://cjoint.com/?dmitT6nnJR

JB

On 12 mar, 07:45, sleg wrote:
Bonjour,

Grand merci ça marche nickel mais j'aimerais savoir s'il est possible
d'ajouter un saut de ligne entre chaque a+b ?

On 11 mar, 14:53, JB wrote:



http://cjoint.com/?dloyZKlYiW

JB

On 11 mar, 14:22, sleg wrote:

Re moi le probleme vient que j'ai dans certaine colonnes plus de 255
caracteres. et la ça marche plus une solution ?

On 11 mar, 12:57, JB wrote:

Bonjour,

Sub Essai()
  Set mondico = CreateObject("Scripting.Dictionary")
  For Each c In Range("d1", [d65000].End(xlUp))
    If Not mondico.Exists(c.Value) Then
       mondico.Add c.Value, c.Offset(0, -3) & ":" & c.Offset (0, -2)
    Else
      temp = mondico.Item(c.Value)
      mondico.Remove (c.Value)
      mondico.Add c.Value, temp & Chr(10) & c.Offset(0, -3) & ":" &
c.Offset(0, -2)
    End If
  Next c
  [h2].Resize(mondico.Count, 1) = Application.Transpose(mondico. keys)
  [i2].Resize(mondico.Count, 1) = Application.Transpose(mondico. items)
End Sub

http://cjoint.com/?dlm5WD2QCS

JBhttp://boisgontierjacques.free.fr/

On 11 mar, 10:46, sleg wrote:

Bonjour,

avant d'exposer mon probleme je vous donne un rapide descriptif de ma
feuille.

Dans une feuille data j'ai en :
- colonne A un n°
- colonne B du texte
- colonne c du texte
- colonne D un texte type XXX / YYY / ZZZ etc

et j'aimerais dans une autre feuille nommée "Ticket metier" avoi r une
formule qui me donnerais par exemple une concatenation de A + B po ur
tous les XXX en b1 idem pour YYY en B2 etc... avec un saut de lign e
entre chaque A+B.

sais pas si je suis tres clair la et si c'est possible ?

merci d'avance de vos reponses.- Masquer le texte des messages pr écédents -


- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -- Masquer le texte de s messages précédents -


- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -






Avatar
sleg
Grand merci ça marche vraiment bien.

passe une bonne journée.


On 12 mar, 08:19, JB wrote:
Bonjour,

http://cjoint.com/?dmitT6nnJR

JB

On 12 mar, 07:45, sleg wrote:



Bonjour,

Grand merci ça marche nickel mais j'aimerais savoir s'il est possible
d'ajouter un saut de ligne entre chaque a+b ?

On 11 mar, 14:53, JB wrote:

http://cjoint.com/?dloyZKlYiW

JB

On 11 mar, 14:22, sleg wrote:

Re moi le probleme vient que j'ai dans certaine colonnes plus de 255
caracteres. et la ça marche plus une solution ?

On 11 mar, 12:57, JB wrote:

Bonjour,

Sub Essai()
  Set mondico = CreateObject("Scripting.Dictionary")
  For Each c In Range("d1", [d65000].End(xlUp))
    If Not mondico.Exists(c.Value) Then
       mondico.Add c.Value, c.Offset(0, -3) & ":" & c.Offs et(0, -2)
    Else
      temp = mondico.Item(c.Value)
      mondico.Remove (c.Value)
      mondico.Add c.Value, temp & Chr(10) & c.Offset(0, -3) & ":" &
c.Offset(0, -2)
    End If
  Next c
  [h2].Resize(mondico.Count, 1) = Application.Transpose(mondic o.keys)
  [i2].Resize(mondico.Count, 1) = Application.Transpose(mondic o.items)
End Sub

http://cjoint.com/?dlm5WD2QCS

JBhttp://boisgontierjacques.free.fr/

On 11 mar, 10:46, sleg wrote:

Bonjour,

avant d'exposer mon probleme je vous donne un rapide descriptif de ma
feuille.

Dans une feuille data j'ai en :
- colonne A un n°
- colonne B du texte
- colonne c du texte
- colonne D un texte type XXX / YYY / ZZZ etc

et j'aimerais dans une autre feuille nommée "Ticket metier" av oir une
formule qui me donnerais par exemple une concatenation de A + B pour
tous les XXX en b1 idem pour YYY en B2 etc... avec un saut de li gne
entre chaque A+B.

sais pas si je suis tres clair la et si c'est possible ?

merci d'avance de vos reponses.- Masquer le texte des messages p récédents -


- Afficher le texte des messages précédents -- Masquer le text e des messages précédents -


- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -- Masquer le texte de s messages précédents -


- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -