Compiler des adresses mail

Anonyme
2021-12-12T19:16:07+00:00

Bonjour à tous,

En A3:A42, j'ai une liste d'adresse mails.

Exemple :

En A1, on a ___@___.___

En A2; on a ___@___.___

Etc…

En H5, la taille de la cellule a une largeur de 112.00 (789pixels)

et une hauteur de 144.00 (192 pixels)

De manière à créer un mailing, je voudrais en H5, ajouter l'une à la suite des autres,

Le contenu des cellules A1 à A40.

Chaque adresse doit se terminer par un point virgule.

On aura donc plusieurs lignes d'adresses dans cette même cellule H5

Chaque adresse devra figurer complète et ne devra pas être coupée sur 2 lignes.

La largeur de H5 devra être fixe, le nombre de caractères maxi pour une police Arial de taille 10 est de 117 caractères environ.

je voudrais remplir la cellule H5 par VBA

Je joints un classeur exemple : https://www.cjoint.com/c/KLmtpmRtYlk

Merci par avance

Cordialement

Infogroup

Microsoft 365 et Office | Excel | Pour la maison | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

5 réponses

  1. Anonyme
    2021-12-13T10:53:25+00:00

    Re-bonjour Aliboron,

    j'ai trouvé un petit problème dans la macro,

    dans la cellule H5 où se trouve le résultat, la 1ère adresse de la liste est écrite deux fois.

    Un petit ajustement ?

    Infogroup

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  2. Anonyme
    2021-12-13T09:53:27+00:00

    C'est OK,

    merci mille fois Aliboron pour ta disponibilité.

    Cordialement

    Infogroup

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  3. Anonyme
    2021-12-13T08:44:36+00:00

    Bon, alors tu peux le faire avec une boucle comme celle-ci :

    Sub Concatener()

    Dim MaChaine As String, NouvAdresse As String

    Dim MaLigne As Integer, MonCompte As Integer

    MaChaine = Range("A3").Value

    MonCompte = 1

    For i = 4 To 42 ' evt Range("A1048576").End(xlUp).Row

    NouvAdresse = Range("A" & i).Value

    MaLigne = 117 * MonCompte

    If Len(MaChaine & ";" & NouvAdresse) > MaLigne Then

    MaChaine = MaChaine & vbLf

    MonCompte = MonCompte + 1

    MaChaine = MaChaine & NouvAdresse

    Else

    MaChaine = MaChaine & ";" & NouvAdresse

    End If

    Next i

    Range("H5").Value = MaChaine

    End Sub

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  4. Anonyme
    2021-12-13T07:59:39+00:00

    Bonjour Aliboron,

    en fait ta solution est un peu fastidieuse, de plus que effectivement,

    je devrai effectuer ces opérations plusieurs fois.

    Comme je l'ai précisé, je voudrais effectuer cette opération par VBA

    En H5, dès que la ligne a un nombre de caractères > 117,on doit aller à la ligne,

    équivalent de Alt + Entrée au clavier.

    Merci tout de même pour ta contribution.

    Cordialement

    Infogroup

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  5. Anonyme
    2021-12-12T22:51:58+00:00

    Si c'est une opération à faire une fois, tu peux faire une concaténation dans la colonne suivante et te mettre une alerte lorsque le nombre de caractères dépasse 117 :

    • En B3, tu saisis la formule =SI(NBCAR(C3)>117;"trop grand !";NBCAR(C3))
    • En C3, tu saisis la formule =A3
    • En C4, tu saisis la formule =C3 & ";" & A4

    Il te reste à recopier vers le bas la cellule C4 puis le cellule B3 et tu devrais t'en sortir...

    Image

    Une fois la ligne sélectionnée, il te restera à la copier puis faire un collage spécial "Valeurs" (si c'est dans Excel).

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire