XL 2016 Concatenation en vba

JJCODO

XLDnaute Nouveau
Bonjour à tous

Sous Excel 2016, je voudrais en VBA, concaténer les valeurs d'un nombre aléatoire de cellules de la colonne A et trouver le résultat dans une cellule B10.

Dans la réalité les prénoms sont des adresses mail

Exemple:

A B

10 PAUL PAUL, JOHN, RENE

11 JOHN

12 RENE

Merci d'avance de votre aide

"Un très mauvais en VBA"
 

Jacky67

XLDnaute Barbatruc
Bonjour à tous

Sous Excel 2016, je voudrais en VBA, concaténer les valeurs d'un nombre aléatoire de cellules de la colonne A et trouver le résultat dans une cellule B10.

Dans la réalité les prénoms sont des adresses mail

Exemple:

A B

10 PAUL PAUL, JOHN, RENE

11 JOHN

12 RENE

Merci d'avance de votre aide

"Un très mauvais en VBA"
Bonjour,
Cela pourrait ressembler à ceci
L'exemple commence à la cellule A2
VB:
Sub Conca()
    Dim C$, Tablo, i&
    With Feuil1
        Tablo = .Range("a2:a" & .Cells(.Rows.Count, "A").End(xlUp).Row)
        For i = 1 To UBound(Tablo)
            C = C & Tablo(i, 1) & ", "
        Next
        .[b10] = Left(C, Len(C) - 2)
    End With
End Sub

Sinon, un classeur exemple........
 
Dernière édition:

JJCODO

XLDnaute Nouveau
Bonjour

J'ai encore une question :

Si le nombre de cellule non vide en colonne A est aléatoire et supérieur à 1, la macro s'exécute sans pb

S'il n'y a qu'une cellule non vide, la macro renvoie une erreur de compilation

Comment faire pour avoir malgré tout un résultat en colonne C, s'il y a une seule cellule non vide en Colonne A.

Autrement dit ,je voudrai que la macro fonctionne dans tout les cas.

Je vous joins le fichier d'exemples

Merci d'avance de votre aide
 

Pièces jointes

  • Concatenation .xlsm
    13.8 KB · Affichages: 13

Jacky67

XLDnaute Barbatruc
Bonjour

J'ai encore une question :

Si le nombre de cellule non vide en colonne A est aléatoire et supérieur à 1, la macro s'exécute sans pb

S'il n'y a qu'une cellule non vide, la macro renvoie une erreur de compilation

Comment faire pour avoir malgré tout un résultat en colonne C, s'il y a une seule cellule non vide en Colonne A.

Autrement dit ,je voudrai que la macro fonctionne dans tout les cas.

Je vous joins le fichier d'exemples

Merci d'avance de votre aide
Re,
Il faudra donner un peu plus d'information sur l'organisation réelle de la feuille avec plus de donnée.
Les écarts entre le mot "données" sont les mêmes ?
Que doit exactement figurée dans la concaténation ?
Le virgules doivent figurer ?
Joindre un classeur exemple et une feuille avec inscrit en dur le résultat souhaité.
 
Dernière édition:

JJCODO

XLDnaute Nouveau
Bonjour Jacky
Voici qqs explications supplémentaires et je joins un fichier d'exemple
Merci d'avance:
En colonne A il peut y avoir de 1 à X cellules contenant des prénoms
En colonne C après l'exécution de la macro la concaténation est correcte avec le séparateur ", "
Toutefois si en colonne A, il n'y a qu'une seule cellule non-vide soit par exemple Paul en A4, La macro génére une erreur pour cette ligne "For i = 1 To UBound(Tablo)"
Je voudrais éviter ce problème
 

Pièces jointes

  • Concatenation2 .xlsm
    18.4 KB · Affichages: 8

Jacky67

XLDnaute Barbatruc
Bonjour Jacky
Voici qqs explications supplémentaires et je joins un fichier d'exemple
Merci d'avance:
En colonne A il peut y avoir de 1 à X cellules contenant des prénoms
En colonne C après l'exécution de la macro la concaténation est correcte avec le séparateur ", "
Toutefois si en colonne A, il n'y a qu'une seule cellule non-vide soit par exemple Paul en A4, La macro génére une erreur pour cette ligne "For i = 1 To UBound(Tablo)"
Je voudrais éviter ce problème
RE..
Hello pierrejean
Heu..!
Perso, je n'ai aucune erreur avec le classeur mis en ligne
 

soan

XLDnaute Barbatruc
Inactif
Bonjour Jacky,

c'est pas grave : le problème mentionné dans le post #6 a été résolu par le nouveau fichier de pierrejean du post #7 ; et le post #8 de JJCODO confirme que ça fonctionne très bien. 😊 (grâce à pierrejean ; moi j'y suis pour rien : j'ai seulement lu la conversation)

soan
 

Jacky67

XLDnaute Barbatruc
Bonjour Jacky,

c'est pas grave : le problème mentionné dans le post #6 a été résolu par le nouveau fichier de pierrejean du post #7 ; et le post #8 de JJCODO confirme que ça fonctionne très bien. 😊 (grâce à pierrejean ; moi j'y suis pour rien : j'ai seulement lu la conversation)

soan
Hello soan
OUI résolu
Mais puisque tu suis le post, peux-tu me dire si tu as une erreur sur le classeur du poste #6
 

soan

XLDnaute Barbatruc
Inactif
@Jacky67

j'ai suivi la procédure indiquée par JJCODO dans son post #6 : j'ai effacé A5:A7 ➯ il reste un seul prénom : c'est "Paul" en A4 ; puis j'ai cliqué sur le bouton "Concaténation" ➯ cette erreur d'exécution :​

Image.jpg


dans le code VBA, la ligne en jaune est celle-ci :

For i = 1 To UBound(Tablo)

soan
 

Jacky67

XLDnaute Barbatruc
@Jacky67

j'ai suivi la procédure indiquée par JJCODO dans son post #6 : j'ai effacé A5:A7 ➯ il reste un seul prénom : c'est "Paul" en A4 ; puis j'ai cliqué sur le bouton "Concaténation" ➯ cette erreur d'exécution :​

Regarde la pièce jointe 1104996

dans le code VBA, la ligne en jaune est celle-ci :

For i = 1 To UBound(Tablo)

soan
Ok merci
J'ai été dur à la comprenette ce coup ci o_O:eek:;);)
Merci à pierrejean d'avoir rectifié
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 920
Membres
101 840
dernier inscrit
SamynoT