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

macro recopie contenu lignes dans une cellule (bis) : marche pas ...

4 réponses
Avatar
jipe.h
bonjour
je vous avais sollicité pour obtenir (sur fichier de plus de 1000
lignes) une astuce permettant de regrouper en une cellule le contenu
de plusieurs lignes.
colonne A = nom de commune (non répété)
colonne B = liste d'entreprises une par une (entre 1 et 15 suivant
communes)
but : colonne A= nom de commune, colonne B=les entreprises de la
commune dans une cellule (avec séparateur), lignes vides effacées.
LeSteph m'avait envoyé une macro jointe :

Sub traitementcellules()
Application.ScreenUpdating = False
For Each r In Range(Cells(1, 2), Cells(3000, 2))
If Cells(r.Row, 1).Value <> "" Then

Cells(r.Row, 2).Select

Else
If r <> "" Then
Selection.Value = Selection.Value & ", " & Cells(r.Row,
2).Value

Else
End If

End If
Next
Selection.CurrentRegion.Select
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending,
Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom,
_
DataOption1:=xlSortNormal
For Each c In Range(Cells(1, 2), Cells(3000, 2))
If Cells(c.Row, 1) = "" Then
Cells(c.Row, 2).Value = ""
Else
End If
Next
Application.ScreenUpdating = True
End Sub

En l'exécutant j'ai une erreur 1004 (définie par l'application ou par
l'objet) ; le débogueur souligne ces 3 lignes :
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending,
Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom,
_
DataOption1:=xlSortNormal

N'ayant, hélas, pas de connaissance dans ce domaine je vous sollicite
à nouveau pour débloquer cette macro qui me rendrait service très
souvent au boulot.
Merci d'avance.

enlever NonNon pour réponse directe éventuelle

4 réponses

Avatar
Pascal Engelmajer
Salut,
j'ai du mal à suivre...
alors une macro
Option Explicit
Sub regroupe()
Dim resultat As String
Dim ptLig As Integer 'pointeur ligne
ptLig = Range("b65535").End(xlUp).Row
'après dernière ligne de la colonne B remplie
Do Until ptLig < 2
resultat = ""
Do Until Rows(ptLig).Cells(1).Text <> ""
resultat = Rows(ptLig).Cells(2).Text & "," & resultat
Rows(ptLig).Delete ' Shift:=xlUp
ptLig = ptLig - 1
Loop
resultat = Rows(ptLig).Cells(2).Text & "," & resultat
Rows(ptLig).Cells(2).Value = Left(resultat, Len(resultat) - 1)
ptLig = ptLig - 1
Loop
End Sub

--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"jipaih" a écrit dans le message de news:

bonjour
je vous avais sollicité pour obtenir (sur fichier de plus de 1000
lignes) une astuce permettant de regrouper en une cellule le contenu
de plusieurs lignes.
colonne A = nom de commune (non répété)
colonne B = liste d'entreprises une par une (entre 1 et 15 suivant
communes)
but : colonne A= nom de commune, colonne B=les entreprises de la
commune dans une cellule (avec séparateur), lignes vides effacées.
LeSteph m'avait envoyé une macro jointe :

Sub traitementcellules()
Application.ScreenUpdating = False
For Each r In Range(Cells(1, 2), Cells(3000, 2))
If Cells(r.Row, 1).Value <> "" Then

Cells(r.Row, 2).Select

Else
If r <> "" Then
Selection.Value = Selection.Value & ", " & Cells(r.Row,
2).Value

Else
End If

End If
Next
Selection.CurrentRegion.Select
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending,
Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom,
_
DataOption1:=xlSortNormal
For Each c In Range(Cells(1, 2), Cells(3000, 2))
If Cells(c.Row, 1) = "" Then
Cells(c.Row, 2).Value = ""
Else
End If
Next
Application.ScreenUpdating = True
End Sub

En l'exécutant j'ai une erreur 1004 (définie par l'application ou par
l'objet) ; le débogueur souligne ces 3 lignes :
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending,
Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom,
_
DataOption1:=xlSortNormal

N'ayant, hélas, pas de connaissance dans ce domaine je vous sollicite
à nouveau pour débloquer cette macro qui me rendrait service très
souvent au boulot.
Merci d'avance.

enlever NonNon pour réponse directe éventuelle


Avatar
Clément Marcotte
Ces trois lignes doivent être sur une seule ligne

"jipaih" a écrit dans le message de
news:
bonjour
je vous avais sollicité pour obtenir (sur fichier de plus de 1000
lignes) une astuce permettant de regrouper en une cellule le contenu
de plusieurs lignes.
colonne A = nom de commune (non répété)
colonne B = liste d'entreprises une par une (entre 1 et 15 suivant
communes)
but : colonne A= nom de commune, colonne B=les entreprises de la
commune dans une cellule (avec séparateur), lignes vides effacées.
LeSteph m'avait envoyé une macro jointe :

Sub traitementcellules()
Application.ScreenUpdating = False
For Each r In Range(Cells(1, 2), Cells(3000, 2))
If Cells(r.Row, 1).Value <> "" Then

Cells(r.Row, 2).Select

Else
If r <> "" Then
Selection.Value = Selection.Value & ", " & Cells(r.Row,
2).Value

Else
End If

End If
Next
Selection.CurrentRegion.Select
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending,
Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom,

_
DataOption1:=xlSortNormal
For Each c In Range(Cells(1, 2), Cells(3000, 2))
If Cells(c.Row, 1) = "" Then
Cells(c.Row, 2).Value = ""
Else
End If
Next
Application.ScreenUpdating = True
End Sub

En l'exécutant j'ai une erreur 1004 (définie par l'application ou
par

l'objet) ; le débogueur souligne ces 3 lignes :
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending,
Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom,

_
DataOption1:=xlSortNormal

N'ayant, hélas, pas de connaissance dans ce domaine je vous
sollicite

à nouveau pour débloquer cette macro qui me rendrait service très
souvent au boulot.
Merci d'avance.

enlever NonNon pour réponse directe éventuelle


Avatar
LeSteph
Bonsoir,

Tu as une ligne renvoyée à la ligne sans
le retour qui a été coupé
comme Clément Marcotte
te l'a indiqué.

Donc je me tiens à ta disposition en direct si PJ souhaitée
car sur le groupe c'est formellement proscrit.

LeSteph




"jipaih" a écrit dans le message de
news:
bonjour
je vous avais sollicité pour obtenir (sur fichier de plus de 1000
lignes) une astuce permettant de regrouper en une cellule le contenu
de plusieurs lignes.
colonne A = nom de commune (non répété)
colonne B = liste d'entreprises une par une (entre 1 et 15 suivant
communes)
but : colonne A= nom de commune, colonne B=les entreprises de la
commune dans une cellule (avec séparateur), lignes vides effacées.
LeSteph m'avait envoyé une macro jointe :

Sub traitementcellules()
Application.ScreenUpdating = False
For Each r In Range(Cells(1, 2), Cells(3000, 2))
If Cells(r.Row, 1).Value <> "" Then

Cells(r.Row, 2).Select

Else
If r <> "" Then
Selection.Value = Selection.Value & ", " & Cells(r.Row,
2).Value

Else
End If

End If
Next
Selection.CurrentRegion.Select
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending,
Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom,
_
DataOption1:=xlSortNormal
For Each c In Range(Cells(1, 2), Cells(3000, 2))
If Cells(c.Row, 1) = "" Then
Cells(c.Row, 2).Value = ""
Else
End If
Next
Application.ScreenUpdating = True
End Sub

En l'exécutant j'ai une erreur 1004 (définie par l'application ou par
l'objet) ; le débogueur souligne ces 3 lignes :
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending,
Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom,
_
DataOption1:=xlSortNormal

N'ayant, hélas, pas de connaissance dans ce domaine je vous sollicite
à nouveau pour débloquer cette macro qui me rendrait service très
souvent au boulot.
Merci d'avance.

enlever NonNon pour réponse directe éventuelle


Avatar
LeSteph
Jipaih devait remettre un message sur ce fil que je ne vois pas mais peut -
être n'-t-il pas pû
où je suis encore trop...
il suffisait d'enlever la dernière instruction du tri qui posait un pb de
version .
En outre il suffisait de tester le code proposé par Pascal qui donne le
même résultat et en beaucoup plus fluide dans l'exécution puisqu'il utilise
l'option explicit et déclare toutes les variables.
Je tiens donc à transmettre au groupe le merci qui m'a été adressé.

LeSteph



"LeSteph" a écrit dans le message de
news:409fb8c9$0$27676$
Bonsoir,

Tu as une ligne renvoyée à la ligne sans
le retour qui a été coupé
comme Clément Marcotte
te l'a indiqué.

Donc je me tiens à ta disposition en direct si PJ souhaitée
car sur le groupe c'est formellement proscrit.

LeSteph




"jipaih" a écrit dans le message de
news:
bonjour
je vous avais sollicité pour obtenir (sur fichier de plus de 1000
lignes) une astuce permettant de regrouper en une cellule le contenu
de plusieurs lignes.
colonne A = nom de commune (non répété)
colonne B = liste d'entreprises une par une (entre 1 et 15 suivant
communes)
but : colonne A= nom de commune, colonne B=les entreprises de la
commune dans une cellule (avec séparateur), lignes vides effacées.
LeSteph m'avait envoyé une macro jointe :

Sub traitementcellules()
Application.ScreenUpdating = False
For Each r In Range(Cells(1, 2), Cells(3000, 2))
If Cells(r.Row, 1).Value <> "" Then

Cells(r.Row, 2).Select

Else
If r <> "" Then
Selection.Value = Selection.Value & ", " & Cells(r.Row,
2).Value

Else
End If

End If
Next
Selection.CurrentRegion.Select
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending,
Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom,
_
DataOption1:=xlSortNormal
For Each c In Range(Cells(1, 2), Cells(3000, 2))
If Cells(c.Row, 1) = "" Then
Cells(c.Row, 2).Value = ""
Else
End If
Next
Application.ScreenUpdating = True
End Sub

En l'exécutant j'ai une erreur 1004 (définie par l'application ou par
l'objet) ; le débogueur souligne ces 3 lignes :
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending,
Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom,
_
DataOption1:=xlSortNormal

N'ayant, hélas, pas de connaissance dans ce domaine je vous sollicite
à nouveau pour débloquer cette macro qui me rendrait service très
souvent au boulot.
Merci d'avance.

enlever NonNon pour réponse directe éventuelle