macro recopie contenu lignes dans une cellule (bis) : marche pas ...
4 réponses
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.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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" <jipe.h@laposte.net> a écrit dans le message de news:
dcdacd4d.0405092355.61137cfd@posting.google.com...
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.
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
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
Ces trois lignes doivent être sur une seule ligne
"jipaih" <jipe.h@laposte.net> a écrit dans le message de
news:dcdacd4d.0405092355.61137cfd@posting.google.com...
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.
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
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
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" <jipe.h@laposte.net> a écrit dans le message de
news:dcdacd4d.0405092355.61137cfd@posting.google.com...
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.
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
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
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" <cocosteph@free.fr> a écrit dans le message de
news:409fb8c9$0$27676$636a15ce@news.free.fr...
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" <jipe.h@laposte.net> a écrit dans le message de
news:dcdacd4d.0405092355.61137cfd@posting.google.com...
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.
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.