concatener 100 textes

mariobross

XLDnaute Occasionnel
bonjour le forum , j'ai une liste de 100 adresses mails ,situé dans les cellules ("a1:a100") , je voudrai envoyer un seul mail à toutes ces adresses , il faut donc les séparer par des virgules , je pense donc à la fonction concatener , mais comment faire avec autant de cellules , (car 100 est un minimun), peut on traiter cela avec un boucle. merci pour vos aides.
 

Staple1600

XLDnaute Barbatruc
Re : concatener 100 textes

Bonsoir


Comment veux-tu faire?

Si tu as 100 cellules à concaténer dans une seule, en séparant les adresses par une virgule, il y aura trop de caractères dans la cellule non?

Ou alors si j'ai bien compris

en A1
toto@toto.fr en B1 =A1&"," puis recopie vers le bas
ensuite tu selectionnes les cellules B1:B100 copier/collage spécial valeur

Puis tu supprimes la colonne A

C'est ce que tu veux faire?
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : concatener 100 textes

Re


Je crois que c'est plutot une formule qui a un nombre de caractères limité

J'ai teste jusqu' a 190000 UN (le chiffre dans une cellule)

sans erreur.

Il faut se tourner vers VBA
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : concatener 100 textes

Re

J'ai trouvé ceci qui pourrait peut-etre te convenir

Code:
Sub JoinCells()
'SOURCE:http://www.ozgrid.com/VBA/VBALoops.htm
Dim rCells As Range
Dim rRange As Range
Dim rStart As Range
Dim strStart As String
Dim iReply As Integer
On Error Resume Next
 
'Allow user to nominate cells to join
'Permet à l'utilisateur d'indiquer la plage de cellules à concatener
Set rCells = Application.InputBox _
  (Prompt:="Selectionnez la plage de cellules à concatener, svp," _
  & "utilisez CTRL pour les celllules non-contigues.", _
  Title:="CONCATENATION DE CELLULES", Type:=8)
  
 If rCells Is Nothing Then 'Cancelled or mistake 'Annulation ou erreur
    iReply = MsgBox("Selection invalide!", _
             vbQuestion + vbRetryCancel)
     If iReply = vbCancel Then
        On Error GoTo 0
        Exit Sub
     Else
        Run "JoinCells" 'Try again ' rééssayer
     End If
  End If
 
 'Set range variable to first cell ' indiquer la première cellule
 Set rStart = rCells(1, 1)
 
 'Loop through cells chosen 'Boucle à travers les cellules choisies
 For Each rRange In rCells
    strStart = rRange 'parse cell content to a String
    rRange.Clear 'Clear contents of cell ' effacement du contenu
    'Replace the original contents of first cell with "", then _
     join the text
     'Remplacement du contenu original par "", puis concaténation du texte
    rStart = Trim(Replace(rStart, rStart, "") & " " _
                  & rStart & "," & strStart)
 Next rRange
  On Error GoTo 0
 
End Sub

Voila j'ai fait une traduction littérale.
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : concatener 100 textes

Re


Au besoin si tu veux je peux traduire le texte en anglais en français.

EDIT: voir message précédent, traduction littérale faite


Par contre je ne sais toujours pas s'il y a une limite de nombres de caractères dans une cellule
ni même dans une formule (je ne m'en souviens plus)

En cherchant j'ai trouvé une fonction personnalisée
sur un site italien
Code:
Function JoinCells(Plage As Range, Optional Sep As String = " ")
Dim S$
For i = 1 To Plage.Cells.Count
If Plage(i).Value <> "" Then
S = S & Plage(i).Value & Sep
End If
Next
JoinCells = Left(S, Len(S) - 1)
End Function 'fs

Je pense que le fs indique que l'auteur de cette fonction est Frédéric Sigonneau
En tout cas cette fonction est très pratique

ex: tes données sont en A1:A100

en B1 tu saisis: =Joincells(A1:A100;",")
et la concaténation se fait instantanément (de plus tu peux choisir le caractère de séparation)
 
Dernière édition:

mariobross

XLDnaute Occasionnel
Re : concatener 100 textes

staple , merci pour tes réponse, la premiere fonctionne bien je n'ai qu'à modifier le code pour ne pas supprimer les valeurs des lignes apres avoir concatener.
pour la 2eme qui fait appel à une fonction , apres avoir mis la formule en b1, j'ai un message #NOM? , je precise que j'ai mis le code dans this workbook , dans la feuille et dans un module ;est ce que tu l'as testé avec succes de ton coté ?
j'aimerai bien la mettre en oeuvre car je n'ai jamais utilisé de fonctions personnalisées.
 

Tibo

XLDnaute Barbatruc
Re : concatener 100 textes

Bonjour à tous,

Les limites d'Excel sont les suivantes :

- longueur maxi d'une formule : 1024 caractères

- contenu maxi d'une cellule : 32 767 caractères (mais seuls les 1024 premiers sont affichés).

Limites valables pour Excel 2000.

Voilou


@+
 

wilfried_42

XLDnaute Barbatruc
Re : concatener 100 textes

bonjour mariobross, Tibo

personnellement, je mets toutes mes fonctions personnalisées dans un module

#NOM? indique qu'il ne connait le nom de la fonction appelée et pour cause, il ne la trouve pas. mets cette fonction dans un module et c'est OK
 

mariobross

XLDnaute Occasionnel
Re : concatener 100 textes

tibo , wilfrid ,staple ,merci pour les infos , donc pas de probleme sur le nb de caractere , pour ce qui est de la fonction j'ai mis le code dans le module , je n'ai plus d'erreur #NOM? , la fonction est bien trouvée ,mais elle me renvoi "0", y aurait il une erreur dans la fonction?
je joins le fichier. merci à tous.
 

Pièces jointes

  • fonc concatener.xls
    26.5 KB · Affichages: 68

Staple1600

XLDnaute Barbatruc
Re : concatener 100 textes

Bonjour à tous


J'ai teste cette fonction pourtant

J'ai saisi AAAAAAA1 en A1 puis recopie jusqu'en A100

ensuite en B1 =Joincells(A1:A100;",")

en B1 j'ai bien le contenu de chaque cellule de la plage A1:A100
séparé par une virgule

Et la fonction est dans un module standard.

Le problème est une faute de frappe (qui vient de moi)
Car quand j'ai teste j'avais deux Joincells dans mon module
Donc j'en avais renommé un JoincellsII
Et il restait un I quand j'ai poste

Mes excuses.
Code:
Function JoinCells(Plage As Range, Optional Sep As String = " ")
Dim S$
For i = 1 To Plage.Cells.Count
If Plage(i).Value <> "" Then
S = S & Plage(i).Value & Sep
End If
Next
JoinCells = Left(S, Len(S) - 1) 'ici tu as JoinCellsI
End Function 'fs
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 582
Messages
2 089 922
Membres
104 307
dernier inscrit
Diet