J'essai de concatener dans un document, les six colonnes=20
et ce pour chaque ligne contenu dans le ducument. La=20
valeur obtenue du concat=E9nage, doit se retrouv=E9 dans la 7e=20
colonnes.
Dans la pr=E9co=E9dure qui suit, =E7a fonctionne, mais elle=20
prend beaucoup de temps a s'ex=E9cuter ! Y aurait-t-il une=20
autre facon de proc=E9der, mais en moins de temps.
merci
=20
sub concatener
Dim ConcatResultat As String
Dim z As Integer
Dim rngA As Range
Set rngA =3D Range(Cells(2, "A"), Cells(Rows.Count, "A").End
(xlUp))
Range("A2").Select
For Each cell In rngA
=20
For z =3D 1 To 6 Step 1 '=20
=20
rngA.Select
Cells(cell.Row, z).Select
ConcatResultat =3D ConcatResultat &=20
ActiveCell.Value
=20
Next
Cells(cell.Row, z).Select
ActiveCell.Value =3D ConcatResultat
=20
ConcatResultat =3D ""
Next
End Sub
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
Christian M
Bonjour, Pourquoi n'utilises tu pas une simple formule d'Excel, ans avoir à recourir au Vba par exemple si les cellules sont en ligne 2, la formuole suivante pouvant être recopier vers le bas sur x cellules ¢&B2&C2&D2&E2&F2
-- Christian M ------------------------------- "Benito" a écrit dans le message de news: 08d201c3a52c$8a6ed810$ J'essai de concatener dans un document, les six colonnes et ce pour chaque ligne contenu dans le ducument. La valeur obtenue du concaténage, doit se retrouvé dans la 7e colonnes.
Dans la précoédure qui suit, ça fonctionne, mais elle prend beaucoup de temps a s'exécuter ! Y aurait-t-il une autre facon de procéder, mais en moins de temps.
merci
sub concatener
Dim ConcatResultat As String Dim z As Integer Dim rngA As Range Set rngA = Range(Cells(2, "A"), Cells(Rows.Count, "A").End (xlUp))
Next Cells(cell.Row, z).Select ActiveCell.Value = ConcatResultat
ConcatResultat = "" Next End Sub
Bonjour,
Pourquoi n'utilises tu pas une simple formule d'Excel, ans avoir à recourir
au Vba
par exemple si les cellules sont en ligne 2, la formuole suivante pouvant
être recopier vers le bas sur x cellules
¢&B2&C2&D2&E2&F2
--
Christian M
-------------------------------
"Benito" <alain.pouliot@arobas.net> a écrit dans le message de news:
08d201c3a52c$8a6ed810$a601280a@phx.gbl...
J'essai de concatener dans un document, les six colonnes
et ce pour chaque ligne contenu dans le ducument. La
valeur obtenue du concaténage, doit se retrouvé dans la 7e
colonnes.
Dans la précoédure qui suit, ça fonctionne, mais elle
prend beaucoup de temps a s'exécuter ! Y aurait-t-il une
autre facon de procéder, mais en moins de temps.
merci
sub concatener
Dim ConcatResultat As String
Dim z As Integer
Dim rngA As Range
Set rngA = Range(Cells(2, "A"), Cells(Rows.Count, "A").End
(xlUp))
Bonjour, Pourquoi n'utilises tu pas une simple formule d'Excel, ans avoir à recourir au Vba par exemple si les cellules sont en ligne 2, la formuole suivante pouvant être recopier vers le bas sur x cellules ¢&B2&C2&D2&E2&F2
-- Christian M ------------------------------- "Benito" a écrit dans le message de news: 08d201c3a52c$8a6ed810$ J'essai de concatener dans un document, les six colonnes et ce pour chaque ligne contenu dans le ducument. La valeur obtenue du concaténage, doit se retrouvé dans la 7e colonnes.
Dans la précoédure qui suit, ça fonctionne, mais elle prend beaucoup de temps a s'exécuter ! Y aurait-t-il une autre facon de procéder, mais en moins de temps.
merci
sub concatener
Dim ConcatResultat As String Dim z As Integer Dim rngA As Range Set rngA = Range(Cells(2, "A"), Cells(Rows.Count, "A").End (xlUp))
Next Cells(cell.Row, z).Select ActiveCell.Value = ConcatResultat
ConcatResultat = "" Next End Sub
Hervé
Salut Bénito, Evite de faire des sélection, car c'est ça qui ralenti fortement ta proc : Sub concatener() Dim Chaine As String Dim rngA As Range Dim Cel As Range Set rngA = Range([A2], [A65536].End(xlUp)) For Each Cel In rngA With Cel Chaine = Chaine _ & .Value _ & .Offset(0, 1).Value _ & .Offset(0, 2).Value _ & .Offset(0, 3).Value _ & .Offset(0, 4).Value _ & .Offset(0, 5).Value .Offset(0, 6).Value = Chaine Chaine = "" End With Next Set Cel = Nothing Set rngA = Nothing End Sub
Hervé.
"Benito" a écrit dans le message news: 08d201c3a52c$8a6ed810$ J'essai de concatener dans un document, les six colonnes et ce pour chaque ligne contenu dans le ducument. La valeur obtenue du concaténage, doit se retrouvé dans la 7e colonnes.
Dans la précoédure qui suit, ça fonctionne, mais elle prend beaucoup de temps a s'exécuter ! Y aurait-t-il une autre facon de procéder, mais en moins de temps.
merci
sub concatener
Dim ConcatResultat As String Dim z As Integer Dim rngA As Range Set rngA = Range(Cells(2, "A"), Cells(Rows.Count, "A").End (xlUp))
Next Cells(cell.Row, z).Select ActiveCell.Value = ConcatResultat
ConcatResultat = "" Next End Sub
Salut Bénito,
Evite de faire des sélection, car c'est ça qui ralenti fortement ta proc :
Sub concatener()
Dim Chaine As String
Dim rngA As Range
Dim Cel As Range
Set rngA = Range([A2], [A65536].End(xlUp))
For Each Cel In rngA
With Cel
Chaine = Chaine _
& .Value _
& .Offset(0, 1).Value _
& .Offset(0, 2).Value _
& .Offset(0, 3).Value _
& .Offset(0, 4).Value _
& .Offset(0, 5).Value
.Offset(0, 6).Value = Chaine
Chaine = ""
End With
Next
Set Cel = Nothing
Set rngA = Nothing
End Sub
Hervé.
"Benito" <alain.pouliot@arobas.net> a écrit dans le message news:
08d201c3a52c$8a6ed810$a601280a@phx.gbl...
J'essai de concatener dans un document, les six colonnes
et ce pour chaque ligne contenu dans le ducument. La
valeur obtenue du concaténage, doit se retrouvé dans la 7e
colonnes.
Dans la précoédure qui suit, ça fonctionne, mais elle
prend beaucoup de temps a s'exécuter ! Y aurait-t-il une
autre facon de procéder, mais en moins de temps.
merci
sub concatener
Dim ConcatResultat As String
Dim z As Integer
Dim rngA As Range
Set rngA = Range(Cells(2, "A"), Cells(Rows.Count, "A").End
(xlUp))
Salut Bénito, Evite de faire des sélection, car c'est ça qui ralenti fortement ta proc : Sub concatener() Dim Chaine As String Dim rngA As Range Dim Cel As Range Set rngA = Range([A2], [A65536].End(xlUp)) For Each Cel In rngA With Cel Chaine = Chaine _ & .Value _ & .Offset(0, 1).Value _ & .Offset(0, 2).Value _ & .Offset(0, 3).Value _ & .Offset(0, 4).Value _ & .Offset(0, 5).Value .Offset(0, 6).Value = Chaine Chaine = "" End With Next Set Cel = Nothing Set rngA = Nothing End Sub
Hervé.
"Benito" a écrit dans le message news: 08d201c3a52c$8a6ed810$ J'essai de concatener dans un document, les six colonnes et ce pour chaque ligne contenu dans le ducument. La valeur obtenue du concaténage, doit se retrouvé dans la 7e colonnes.
Dans la précoédure qui suit, ça fonctionne, mais elle prend beaucoup de temps a s'exécuter ! Y aurait-t-il une autre facon de procéder, mais en moins de temps.
merci
sub concatener
Dim ConcatResultat As String Dim z As Integer Dim rngA As Range Set rngA = Range(Cells(2, "A"), Cells(Rows.Count, "A").End (xlUp))
Ce qui est long dans ton traitement, c'est la boucle, alors que tu peux réaliser la concaténation en une seule fois.
Si tu veux les valeurs plutôt que les formules, tu fais suivre l'instruction ci-dessus par un Copier-Collage spécial Valeurs
J'essai de concatener dans un document, les six colonnes et ce pour chaque ligne contenu dans le ducument. La valeur obtenue du concaténage, doit se retrouvé dans la 7e colonnes.
Dans la précoédure qui suit, ça fonctionne, mais elle prend beaucoup de temps a s'exécuter ! Y aurait-t-il une autre facon de procéder, mais en moins de temps.
merci
sub concatener
Dim ConcatResultat As String Dim z As Integer Dim rngA As Range Set rngA = Range(Cells(2, "A"), Cells(Rows.Count, "A").End (xlUp))
Ce qui est long dans ton traitement, c'est la boucle, alors que
tu peux réaliser la concaténation en une seule fois.
Si tu veux les valeurs plutôt que les formules, tu fais suivre
l'instruction ci-dessus par un Copier-Collage spécial Valeurs
J'essai de concatener dans un document, les six colonnes
et ce pour chaque ligne contenu dans le ducument. La
valeur obtenue du concaténage, doit se retrouvé dans la 7e
colonnes.
Dans la précoédure qui suit, ça fonctionne, mais elle
prend beaucoup de temps a s'exécuter ! Y aurait-t-il une
autre facon de procéder, mais en moins de temps.
merci
sub concatener
Dim ConcatResultat As String
Dim z As Integer
Dim rngA As Range
Set rngA = Range(Cells(2, "A"), Cells(Rows.Count, "A").End
(xlUp))
Ce qui est long dans ton traitement, c'est la boucle, alors que tu peux réaliser la concaténation en une seule fois.
Si tu veux les valeurs plutôt que les formules, tu fais suivre l'instruction ci-dessus par un Copier-Collage spécial Valeurs
J'essai de concatener dans un document, les six colonnes et ce pour chaque ligne contenu dans le ducument. La valeur obtenue du concaténage, doit se retrouvé dans la 7e colonnes.
Dans la précoédure qui suit, ça fonctionne, mais elle prend beaucoup de temps a s'exécuter ! Y aurait-t-il une autre facon de procéder, mais en moins de temps.
merci
sub concatener
Dim ConcatResultat As String Dim z As Integer Dim rngA As Range Set rngA = Range(Cells(2, "A"), Cells(Rows.Count, "A").End (xlUp))
Next Cells(cell.Row, z).Select ActiveCell.Value = ConcatResultat
ConcatResultat = "" Next End Sub
-- Cordialement,
Michel Gaboly http://www.gaboly.com
benito
Merci Hervé ta solution fonctionne a merveille
-----Message d'origine----- Salut Bénito, Evite de faire des sélection, car c'est ça qui ralenti fortement ta proc :
Sub concatener() Dim Chaine As String Dim rngA As Range Dim Cel As Range Set rngA = Range([A2], [A65536].End(xlUp)) For Each Cel In rngA With Cel Chaine = Chaine _ & .Value _ & .Offset(0, 1).Value _ & .Offset(0, 2).Value _ & .Offset(0, 3).Value _ & .Offset(0, 4).Value _ & .Offset(0, 5).Value .Offset(0, 6).Value = Chaine Chaine = "" End With Next Set Cel = Nothing Set rngA = Nothing End Sub
Hervé.
"Benito" a écrit dans le message news:
08d201c3a52c$8a6ed810$ J'essai de concatener dans un document, les six colonnes et ce pour chaque ligne contenu dans le ducument. La valeur obtenue du concaténage, doit se retrouvé dans la 7e colonnes.
Dans la précoédure qui suit, ça fonctionne, mais elle prend beaucoup de temps a s'exécuter ! Y aurait-t-il une autre facon de procéder, mais en moins de temps.
merci
sub concatener
Dim ConcatResultat As String Dim z As Integer Dim rngA As Range Set rngA = Range(Cells(2, "A"), Cells(Rows.Count, "A").End (xlUp))
Next Cells(cell.Row, z).Select ActiveCell.Value = ConcatResultat
ConcatResultat = "" Next End Sub
.
Merci Hervé ta solution fonctionne a merveille
-----Message d'origine-----
Salut Bénito,
Evite de faire des sélection, car c'est ça qui ralenti
fortement ta proc :
Sub concatener()
Dim Chaine As String
Dim rngA As Range
Dim Cel As Range
Set rngA = Range([A2], [A65536].End(xlUp))
For Each Cel In rngA
With Cel
Chaine = Chaine _
& .Value _
& .Offset(0, 1).Value _
& .Offset(0, 2).Value _
& .Offset(0, 3).Value _
& .Offset(0, 4).Value _
& .Offset(0, 5).Value
.Offset(0, 6).Value = Chaine
Chaine = ""
End With
Next
Set Cel = Nothing
Set rngA = Nothing
End Sub
Hervé.
"Benito" <alain.pouliot@arobas.net> a écrit dans le
message news:
08d201c3a52c$8a6ed810$a601280a@phx.gbl...
J'essai de concatener dans un document, les six colonnes
et ce pour chaque ligne contenu dans le ducument. La
valeur obtenue du concaténage, doit se retrouvé dans la 7e
colonnes.
Dans la précoédure qui suit, ça fonctionne, mais elle
prend beaucoup de temps a s'exécuter ! Y aurait-t-il une
autre facon de procéder, mais en moins de temps.
merci
sub concatener
Dim ConcatResultat As String
Dim z As Integer
Dim rngA As Range
Set rngA = Range(Cells(2, "A"), Cells(Rows.Count, "A").End
(xlUp))
-----Message d'origine----- Salut Bénito, Evite de faire des sélection, car c'est ça qui ralenti fortement ta proc :
Sub concatener() Dim Chaine As String Dim rngA As Range Dim Cel As Range Set rngA = Range([A2], [A65536].End(xlUp)) For Each Cel In rngA With Cel Chaine = Chaine _ & .Value _ & .Offset(0, 1).Value _ & .Offset(0, 2).Value _ & .Offset(0, 3).Value _ & .Offset(0, 4).Value _ & .Offset(0, 5).Value .Offset(0, 6).Value = Chaine Chaine = "" End With Next Set Cel = Nothing Set rngA = Nothing End Sub
Hervé.
"Benito" a écrit dans le message news:
08d201c3a52c$8a6ed810$ J'essai de concatener dans un document, les six colonnes et ce pour chaque ligne contenu dans le ducument. La valeur obtenue du concaténage, doit se retrouvé dans la 7e colonnes.
Dans la précoédure qui suit, ça fonctionne, mais elle prend beaucoup de temps a s'exécuter ! Y aurait-t-il une autre facon de procéder, mais en moins de temps.
merci
sub concatener
Dim ConcatResultat As String Dim z As Integer Dim rngA As Range Set rngA = Range(Cells(2, "A"), Cells(Rows.Count, "A").End (xlUp))
Next Cells(cell.Row, z).Select ActiveCell.Value = ConcatResultat
ConcatResultat = "" Next End Sub
.
Michel Gaboly
Bonjour,
Tu as raison pour les sélections. :-)) C'est une cause classique de ralentissement.
En l'occurrence, il y a aussi une autre : il faut éviter les boucles chaque fois que c'est possible.
Salut Bénito, Evite de faire des sélection, car c'est ça qui ralenti fortement ta proc : Sub concatener() Dim Chaine As String Dim rngA As Range Dim Cel As Range Set rngA = Range([A2], [A65536].End(xlUp)) For Each Cel In rngA With Cel Chaine = Chaine _ & .Value _ & .Offset(0, 1).Value _ & .Offset(0, 2).Value _ & .Offset(0, 3).Value _ & .Offset(0, 4).Value _ & .Offset(0, 5).Value .Offset(0, 6).Value = Chaine Chaine = "" End With Next Set Cel = Nothing Set rngA = Nothing End Sub
Hervé.
"Benito" a écrit dans le message news: 08d201c3a52c$8a6ed810$ J'essai de concatener dans un document, les six colonnes et ce pour chaque ligne contenu dans le ducument. La valeur obtenue du concaténage, doit se retrouvé dans la 7e colonnes.
Dans la précoédure qui suit, ça fonctionne, mais elle prend beaucoup de temps a s'exécuter ! Y aurait-t-il une autre facon de procéder, mais en moins de temps.
merci
sub concatener
Dim ConcatResultat As String Dim z As Integer Dim rngA As Range Set rngA = Range(Cells(2, "A"), Cells(Rows.Count, "A").End (xlUp))
Next Cells(cell.Row, z).Select ActiveCell.Value = ConcatResultat
ConcatResultat = "" Next End Sub
-- Cordialement,
Michel Gaboly http://www.gaboly.com
Bonjour,
Tu as raison pour les sélections. :-))
C'est une cause classique de ralentissement.
En l'occurrence, il y a aussi une autre : il faut éviter les boucles
chaque fois que c'est possible.
Salut Bénito,
Evite de faire des sélection, car c'est ça qui ralenti fortement ta proc :
Sub concatener()
Dim Chaine As String
Dim rngA As Range
Dim Cel As Range
Set rngA = Range([A2], [A65536].End(xlUp))
For Each Cel In rngA
With Cel
Chaine = Chaine _
& .Value _
& .Offset(0, 1).Value _
& .Offset(0, 2).Value _
& .Offset(0, 3).Value _
& .Offset(0, 4).Value _
& .Offset(0, 5).Value
.Offset(0, 6).Value = Chaine
Chaine = ""
End With
Next
Set Cel = Nothing
Set rngA = Nothing
End Sub
Hervé.
"Benito" <alain.pouliot@arobas.net> a écrit dans le message news:
08d201c3a52c$8a6ed810$a601280a@phx.gbl...
J'essai de concatener dans un document, les six colonnes
et ce pour chaque ligne contenu dans le ducument. La
valeur obtenue du concaténage, doit se retrouvé dans la 7e
colonnes.
Dans la précoédure qui suit, ça fonctionne, mais elle
prend beaucoup de temps a s'exécuter ! Y aurait-t-il une
autre facon de procéder, mais en moins de temps.
merci
sub concatener
Dim ConcatResultat As String
Dim z As Integer
Dim rngA As Range
Set rngA = Range(Cells(2, "A"), Cells(Rows.Count, "A").End
(xlUp))
Tu as raison pour les sélections. :-)) C'est une cause classique de ralentissement.
En l'occurrence, il y a aussi une autre : il faut éviter les boucles chaque fois que c'est possible.
Salut Bénito, Evite de faire des sélection, car c'est ça qui ralenti fortement ta proc : Sub concatener() Dim Chaine As String Dim rngA As Range Dim Cel As Range Set rngA = Range([A2], [A65536].End(xlUp)) For Each Cel In rngA With Cel Chaine = Chaine _ & .Value _ & .Offset(0, 1).Value _ & .Offset(0, 2).Value _ & .Offset(0, 3).Value _ & .Offset(0, 4).Value _ & .Offset(0, 5).Value .Offset(0, 6).Value = Chaine Chaine = "" End With Next Set Cel = Nothing Set rngA = Nothing End Sub
Hervé.
"Benito" a écrit dans le message news: 08d201c3a52c$8a6ed810$ J'essai de concatener dans un document, les six colonnes et ce pour chaque ligne contenu dans le ducument. La valeur obtenue du concaténage, doit se retrouvé dans la 7e colonnes.
Dans la précoédure qui suit, ça fonctionne, mais elle prend beaucoup de temps a s'exécuter ! Y aurait-t-il une autre facon de procéder, mais en moins de temps.
merci
sub concatener
Dim ConcatResultat As String Dim z As Integer Dim rngA As Range Set rngA = Range(Cells(2, "A"), Cells(Rows.Count, "A").End (xlUp))
Next Cells(cell.Row, z).Select ActiveCell.Value = ConcatResultat
ConcatResultat = "" Next End Sub
-- Cordialement,
Michel Gaboly http://www.gaboly.com
Hervé
Salut Michel, Tu as tout à fait raison, je n'ai en fait pas réfléchi :o(. Bénito peut alors utiliser cette façon qui n'a pas de boucle :
Sub Concatener() Dim plg As Range Set plg = Range("F1:F" & [A65536].End(xlUp).Row) plg.Formula = "¡ & B1 & C1 & D1 & E1" Set plg = Nothing End Sub
Hervé. "Michel Gaboly" a écrit dans le message news:
Bonjour,
Tu as raison pour les sélections. :-)) C'est une cause classique de ralentissement.
En l'occurrence, il y a aussi une autre : il faut éviter les boucles chaque fois que c'est possible.
Salut Bénito, Evite de faire des sélection, car c'est ça qui ralenti fortement ta proc :
Sub concatener() Dim Chaine As String Dim rngA As Range Dim Cel As Range Set rngA = Range([A2], [A65536].End(xlUp)) For Each Cel In rngA With Cel Chaine = Chaine _ & .Value _ & .Offset(0, 1).Value _ & .Offset(0, 2).Value _ & .Offset(0, 3).Value _ & .Offset(0, 4).Value _ & .Offset(0, 5).Value .Offset(0, 6).Value = Chaine Chaine = "" End With Next Set Cel = Nothing Set rngA = Nothing End Sub
Hervé.
"Benito" a écrit dans le message news: 08d201c3a52c$8a6ed810$ J'essai de concatener dans un document, les six colonnes et ce pour chaque ligne contenu dans le ducument. La valeur obtenue du concaténage, doit se retrouvé dans la 7e colonnes.
Dans la précoédure qui suit, ça fonctionne, mais elle prend beaucoup de temps a s'exécuter ! Y aurait-t-il une autre facon de procéder, mais en moins de temps.
merci
sub concatener
Dim ConcatResultat As String Dim z As Integer Dim rngA As Range Set rngA = Range(Cells(2, "A"), Cells(Rows.Count, "A").End (xlUp))
Next Cells(cell.Row, z).Select ActiveCell.Value = ConcatResultat
ConcatResultat = "" Next End Sub
-- Cordialement,
Michel Gaboly http://www.gaboly.com
Salut Michel,
Tu as tout à fait raison, je n'ai en fait pas réfléchi :o(. Bénito peut
alors utiliser cette façon qui n'a pas de boucle :
Sub Concatener()
Dim plg As Range
Set plg = Range("F1:F" & [A65536].End(xlUp).Row)
plg.Formula = "¡ & B1 & C1 & D1 & E1"
Set plg = Nothing
End Sub
Hervé.
"Michel Gaboly" <michel@Suppgaboly.com> a écrit dans le message news:
3FABAD89.E53200F1@Suppgaboly.com...
Bonjour,
Tu as raison pour les sélections. :-))
C'est une cause classique de ralentissement.
En l'occurrence, il y a aussi une autre : il faut éviter les boucles
chaque fois que c'est possible.
Salut Bénito,
Evite de faire des sélection, car c'est ça qui ralenti fortement ta proc
:
Sub concatener()
Dim Chaine As String
Dim rngA As Range
Dim Cel As Range
Set rngA = Range([A2], [A65536].End(xlUp))
For Each Cel In rngA
With Cel
Chaine = Chaine _
& .Value _
& .Offset(0, 1).Value _
& .Offset(0, 2).Value _
& .Offset(0, 3).Value _
& .Offset(0, 4).Value _
& .Offset(0, 5).Value
.Offset(0, 6).Value = Chaine
Chaine = ""
End With
Next
Set Cel = Nothing
Set rngA = Nothing
End Sub
Hervé.
"Benito" <alain.pouliot@arobas.net> a écrit dans le message news:
08d201c3a52c$8a6ed810$a601280a@phx.gbl...
J'essai de concatener dans un document, les six colonnes
et ce pour chaque ligne contenu dans le ducument. La
valeur obtenue du concaténage, doit se retrouvé dans la 7e
colonnes.
Dans la précoédure qui suit, ça fonctionne, mais elle
prend beaucoup de temps a s'exécuter ! Y aurait-t-il une
autre facon de procéder, mais en moins de temps.
merci
sub concatener
Dim ConcatResultat As String
Dim z As Integer
Dim rngA As Range
Set rngA = Range(Cells(2, "A"), Cells(Rows.Count, "A").End
(xlUp))
Salut Michel, Tu as tout à fait raison, je n'ai en fait pas réfléchi :o(. Bénito peut alors utiliser cette façon qui n'a pas de boucle :
Sub Concatener() Dim plg As Range Set plg = Range("F1:F" & [A65536].End(xlUp).Row) plg.Formula = "¡ & B1 & C1 & D1 & E1" Set plg = Nothing End Sub
Hervé. "Michel Gaboly" a écrit dans le message news:
Bonjour,
Tu as raison pour les sélections. :-)) C'est une cause classique de ralentissement.
En l'occurrence, il y a aussi une autre : il faut éviter les boucles chaque fois que c'est possible.
Salut Bénito, Evite de faire des sélection, car c'est ça qui ralenti fortement ta proc :
Sub concatener() Dim Chaine As String Dim rngA As Range Dim Cel As Range Set rngA = Range([A2], [A65536].End(xlUp)) For Each Cel In rngA With Cel Chaine = Chaine _ & .Value _ & .Offset(0, 1).Value _ & .Offset(0, 2).Value _ & .Offset(0, 3).Value _ & .Offset(0, 4).Value _ & .Offset(0, 5).Value .Offset(0, 6).Value = Chaine Chaine = "" End With Next Set Cel = Nothing Set rngA = Nothing End Sub
Hervé.
"Benito" a écrit dans le message news: 08d201c3a52c$8a6ed810$ J'essai de concatener dans un document, les six colonnes et ce pour chaque ligne contenu dans le ducument. La valeur obtenue du concaténage, doit se retrouvé dans la 7e colonnes.
Dans la précoédure qui suit, ça fonctionne, mais elle prend beaucoup de temps a s'exécuter ! Y aurait-t-il une autre facon de procéder, mais en moins de temps.
merci
sub concatener
Dim ConcatResultat As String Dim z As Integer Dim rngA As Range Set rngA = Range(Cells(2, "A"), Cells(Rows.Count, "A").End (xlUp))
Next Cells(cell.Row, z).Select ActiveCell.Value = ConcatResultat
ConcatResultat = "" Next End Sub
-- Cordialement,
Michel Gaboly http://www.gaboly.com
Michel Gaboly
;-)))
Salut Michel, Tu as tout à fait raison, je n'ai en fait pas réfléchi :o(. Bénito peut alors utiliser cette façon qui n'a pas de boucle :
Sub Concatener() Dim plg As Range Set plg = Range("F1:F" & [A65536].End(xlUp).Row) plg.Formula = "¡ & B1 & C1 & D1 & E1" Set plg = Nothing End Sub
Hervé. "Michel Gaboly" a écrit dans le message news:
Bonjour,
Tu as raison pour les sélections. :-)) C'est une cause classique de ralentissement.
En l'occurrence, il y a aussi une autre : il faut éviter les boucles chaque fois que c'est possible.
Salut Bénito, Evite de faire des sélection, car c'est ça qui ralenti fortement ta proc :
Sub concatener() Dim Chaine As String Dim rngA As Range Dim Cel As Range Set rngA = Range([A2], [A65536].End(xlUp)) For Each Cel In rngA With Cel Chaine = Chaine _ & .Value _ & .Offset(0, 1).Value _ & .Offset(0, 2).Value _ & .Offset(0, 3).Value _ & .Offset(0, 4).Value _ & .Offset(0, 5).Value .Offset(0, 6).Value = Chaine Chaine = "" End With Next Set Cel = Nothing Set rngA = Nothing End Sub
Hervé.
"Benito" a écrit dans le message news: 08d201c3a52c$8a6ed810$ J'essai de concatener dans un document, les six colonnes et ce pour chaque ligne contenu dans le ducument. La valeur obtenue du concaténage, doit se retrouvé dans la 7e colonnes.
Dans la précoédure qui suit, ça fonctionne, mais elle prend beaucoup de temps a s'exécuter ! Y aurait-t-il une autre facon de procéder, mais en moins de temps.
merci
sub concatener
Dim ConcatResultat As String Dim z As Integer Dim rngA As Range Set rngA = Range(Cells(2, "A"), Cells(Rows.Count, "A").End (xlUp))
Next Cells(cell.Row, z).Select ActiveCell.Value = ConcatResultat
ConcatResultat = "" Next End Sub
-- Cordialement,
Michel Gaboly http://www.gaboly.com
-- Cordialement,
Michel Gaboly http://www.gaboly.com
;-)))
Salut Michel,
Tu as tout à fait raison, je n'ai en fait pas réfléchi :o(. Bénito peut
alors utiliser cette façon qui n'a pas de boucle :
Sub Concatener()
Dim plg As Range
Set plg = Range("F1:F" & [A65536].End(xlUp).Row)
plg.Formula = "¡ & B1 & C1 & D1 & E1"
Set plg = Nothing
End Sub
Hervé.
"Michel Gaboly" <michel@Suppgaboly.com> a écrit dans le message news:
3FABAD89.E53200F1@Suppgaboly.com...
Bonjour,
Tu as raison pour les sélections. :-))
C'est une cause classique de ralentissement.
En l'occurrence, il y a aussi une autre : il faut éviter les boucles
chaque fois que c'est possible.
Salut Bénito,
Evite de faire des sélection, car c'est ça qui ralenti fortement ta proc
:
Sub concatener()
Dim Chaine As String
Dim rngA As Range
Dim Cel As Range
Set rngA = Range([A2], [A65536].End(xlUp))
For Each Cel In rngA
With Cel
Chaine = Chaine _
& .Value _
& .Offset(0, 1).Value _
& .Offset(0, 2).Value _
& .Offset(0, 3).Value _
& .Offset(0, 4).Value _
& .Offset(0, 5).Value
.Offset(0, 6).Value = Chaine
Chaine = ""
End With
Next
Set Cel = Nothing
Set rngA = Nothing
End Sub
Hervé.
"Benito" <alain.pouliot@arobas.net> a écrit dans le message news:
08d201c3a52c$8a6ed810$a601280a@phx.gbl...
J'essai de concatener dans un document, les six colonnes
et ce pour chaque ligne contenu dans le ducument. La
valeur obtenue du concaténage, doit se retrouvé dans la 7e
colonnes.
Dans la précoédure qui suit, ça fonctionne, mais elle
prend beaucoup de temps a s'exécuter ! Y aurait-t-il une
autre facon de procéder, mais en moins de temps.
merci
sub concatener
Dim ConcatResultat As String
Dim z As Integer
Dim rngA As Range
Set rngA = Range(Cells(2, "A"), Cells(Rows.Count, "A").End
(xlUp))
Salut Michel, Tu as tout à fait raison, je n'ai en fait pas réfléchi :o(. Bénito peut alors utiliser cette façon qui n'a pas de boucle :
Sub Concatener() Dim plg As Range Set plg = Range("F1:F" & [A65536].End(xlUp).Row) plg.Formula = "¡ & B1 & C1 & D1 & E1" Set plg = Nothing End Sub
Hervé. "Michel Gaboly" a écrit dans le message news:
Bonjour,
Tu as raison pour les sélections. :-)) C'est une cause classique de ralentissement.
En l'occurrence, il y a aussi une autre : il faut éviter les boucles chaque fois que c'est possible.
Salut Bénito, Evite de faire des sélection, car c'est ça qui ralenti fortement ta proc :
Sub concatener() Dim Chaine As String Dim rngA As Range Dim Cel As Range Set rngA = Range([A2], [A65536].End(xlUp)) For Each Cel In rngA With Cel Chaine = Chaine _ & .Value _ & .Offset(0, 1).Value _ & .Offset(0, 2).Value _ & .Offset(0, 3).Value _ & .Offset(0, 4).Value _ & .Offset(0, 5).Value .Offset(0, 6).Value = Chaine Chaine = "" End With Next Set Cel = Nothing Set rngA = Nothing End Sub
Hervé.
"Benito" a écrit dans le message news: 08d201c3a52c$8a6ed810$ J'essai de concatener dans un document, les six colonnes et ce pour chaque ligne contenu dans le ducument. La valeur obtenue du concaténage, doit se retrouvé dans la 7e colonnes.
Dans la précoédure qui suit, ça fonctionne, mais elle prend beaucoup de temps a s'exécuter ! Y aurait-t-il une autre facon de procéder, mais en moins de temps.
merci
sub concatener
Dim ConcatResultat As String Dim z As Integer Dim rngA As Range Set rngA = Range(Cells(2, "A"), Cells(Rows.Count, "A").End (xlUp))