Aide pour la fonction "&"

Albel

XLDnaute Nouveau
Bonjour,

Sans avoir trouvé sur un autre sujet (ou peut être que je n'ai pas su où chercher) je vous demande un peu d'aide pour l'utilisation de la fonction & en vous présentant un exemple.

Dans une colonne A, il y a des cellules vides et des non vides.
J'aimerais qu'une cellule renvoie toutes les cellules non vides (et uniquement) de la colonne A séparé par une virgule ou quelque chose de similaire.

Je suis débutant, mais je ne pense pas avoir besoin de VBA pour ceci. Aussi simple que cela puisse paraître, je voulais faire ça avec la fonction &, mais dans un premier temps, je ne sais pas du tout appliquer cette fonction sur une plage (obligé de taper =A1&A2&A3&A4....). De plus, mettre une condition sur ceci, je ne m'en sors plus du tout...
Si quelqu'un pouvait m'apporter son aide pour ce problème, ou bien me proposer une autre solution (en effet, je n'ai peut être pas remarqué une solution plus simple).

Merci par avance,

Albel
 

Pièces jointes

  • test.xlsx
    31.5 KB · Affichages: 167
  • test.xlsx
    31.5 KB · Affichages: 200
  • test.xlsx
    31.5 KB · Affichages: 220

hoerwind

XLDnaute Barbatruc
Re : Aide pour la fonction "&"

Bonjour, salut les autres,

Sélectionner A1:A14
Touche clavier F5, bouton "Cellules", cocher "Cellules vides", puis OK
Saisir un espace et valider par Ctrl+Entrée
La formule en B2 (ou autre part) : =MCONCAT(A1:A14;", ")

MCONCAT est une fonction complémentaire de Morenfunc (à télécharger gratuitement sur le Net)
 

Albel

XLDnaute Nouveau
Re : Aide pour la fonction "&"

Merci beaucoup pour vos réponses!

Celle de phlaurent55 correspond tout à fait à ce que je recherche. Or, je n'avais jamais touché au code VBA, donc j'ai essayé de comprendre depuis un petit moment mais je n'ai pas réussi à le transposer à mon cas...
1 -
Le premier problème (je ne pensais pas que cela pouvait être un problème) est que je ne travaille pas sur la même colonne. Du coup, la ligne pour ôter la virgule ne fonctionne pas et je ne comprends pas pourquoi (je n'ai pas compris l'utilité du -1)
2 -
Ensuite pour le second problème, je n'ai pas essayé car bloqué au premier problème. Celui ci consiste à renvoyer les valeurs de 3 colonnes différentes se trouvant dans 3 feuilles différentes (Déjà qu'avec la colonne j'ai du mal)

Je suis désolé d'être si peu doué. Je comprends si l'on ne m'envoie pas de solution mais si quelqu'un peu me donner un petit coup de pouce ou bien une petite explication sur les lignes de code, ça serait vraiment sympa

Merci encore une nouvelle fois,

Sub ZonedeList1()
derligne = Range("L10:L6535").End(xlUp).Row
[C7] = ""
For i = 1 To derligne
If Cells(i, 1).Value <> "" Then
[C7] = [C7] & Cells(i, 1).Value & ","
End If
Next i
' ci-dessous pour ôter la dernière virgule
[C7] = Left([C7], Len([C7]) - 1)
End Sub
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Aide pour la fonction "&"

Re,
Je suis désolé d'être si peu doué. Je comprends si l'on ne m'envoie pas de solution mais si quelqu'un peu me donner un petit coup de pouce ou bien une petite explication sur les lignes de code, ça serait vraiment sympa
tu finiras par l'avoir la solution mais il ne faut pas perdre de vue que les réponses qu'on peut t'apporter dépendent étroitement de la précision de la question posée.

Donc pour les 3 colonnes différentes des 3 feuilles différentes, tant que tu n'envoies pas de fichier, on va avoir du mal à les deviner

Concernant le -1 il sert à calculer le nombre de caractères de la réponse dans le but de supprimer la dernière virgule

à+
Philippe
 

Albel

XLDnaute Nouveau
Re : Aide pour la fonction "&"

Merci beaucoup, je viens de voir que le VBA est vraiment très précis (d'où son efficacité certainement). Du coup, je comprends donc très bien que ce que j'ai demandé ne peut pas être résolu sans apporter plus de précisions...

J'ai mis un fichier en pièce jointe qui correspond exactement à mon besoin (en très simplifié bien sûr)

Je vais regarder plus en détail ce langage en espérant très vite m'améliorer.
Merci internet ;)

Et merci phlaurent55,
 

Pièces jointes

  • Test2.xls
    34.5 KB · Affichages: 92
  • Test2.xls
    34.5 KB · Affichages: 103
  • Test2.xls
    34.5 KB · Affichages: 108

ROGER2327

XLDnaute Barbatruc
Re : Aide pour la fonction "&"

Bonsoir à tous
un essai de fonction personnalisée :
VB:
Function z$()
  z = toto(Array(Array("Feuil1", "B", 1), Array("Feuil2", "E", -3), Array("Feuil3", "C", -1)))
  'paramètres à adapter en fonction des plages à traiter.
  'Array("Nom_d'onglet", "Colonne_des_oui/non", décalage_de_la_colonne_des_données_relativement_à_la_colonne_des_oui/non)
End Function

Private Function toto$(z)
Dim i&, tmp$, oCell As Range, oPlg As Range
  For i = 0 To UBound(z)
    With Sheets(z(i)(0))
      Set oPlg = .Range(.Range(z(i)(1) & "1"), .Range(z(i)(1) & CStr(.Rows.Count)).End(xlUp))
      For Each oCell In oPlg.Cells
        If UCase(oCell.Value) = "OUI" Then tmp = tmp & oCell.Offset(0, z(i)(2)) & ", "
      Next
    End With
  Next
  If tmp <> "" Then toto = Left$(tmp, Len(tmp) - 2)
End Function
Code:
=z()
devrait donner le résultat escompté.​
ROGER2327
#5002


Samedi 7 Pédale 138 (Saint Gavroche, forain, SQ)
11 Ventôse An CCXIX
2011-W09-2T19:17:49Z
 

Albel

XLDnaute Nouveau
Re : Aide pour la fonction "&"

Merci beaucoup!

C'est un peu plus compliqué que le reste mais cela marche très bien aussi. Je vais tacher de comprendre ces lignes. Merci de m'avoir proposé ces deux solutions différentes.
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 910
Membres
101 837
dernier inscrit
Ugo