Concaténer sur 3 conditions

Fermé
touroul Messages postés 465 Date d'inscription mardi 5 octobre 2010 Statut Membre Dernière intervention 29 janvier 2024 - 30 janv. 2017 à 17:35
touroul Messages postés 465 Date d'inscription mardi 5 octobre 2010 Statut Membre Dernière intervention 29 janvier 2024 - 25 févr. 2017 à 09:07
Bonjour le forum

J'aurais bien besoin d'un peu d'aide si possible.

J'essaie d'extraire des adresses mails situées dans des cellules différentes, en la concaténant par des points virgules. Jusque là, c'est connu.
Mais il y a des conditions : la prise en compte du mail dépend de 2 conditions, et l'extraction doit se réaliser dans une autre feuille sans doublons, rien que ça :)

J'ai mis les explications dans le fichier : https://www.cjoint.com/c/GAEqIRLqhuZ

Par avance merci, c'est très important et facilitera la vie de beaucoup de gens.

A voir également:

7 réponses

Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
30 janv. 2017 à 17:47
Bonjour

on pourrait "ventuellemnt chercher par formule, mais avec une base de données de 450000 adresses, c'est du temps de perdu...
surtout que vous ne dites pas:
  • combien de 1 il y aurait éventuellement à prendre en compte.
  • comment vont être placés ces 1 dans une telle base

Moi, je ne me lance pas, mais ces renseignements pourraient je pense, servir à ceux qui pourront vous aider

Bonne chance
crdlmnt
0
touroul Messages postés 465 Date d'inscription mardi 5 octobre 2010 Statut Membre Dernière intervention 29 janvier 2024 15
30 janv. 2017 à 18:17
Bonjour Vaucluse

En fait il n'y a pas 450000 adresses, mais 450000 lignes pouvant en contenir.

Je viens de faire les comptes avec des formules :
Il y a environ 108000 adresses mail dans ces lignes, dont 13000 comprennent un "1".
Ces 1 sont placés exactement comme dans le fichier exemple, en DONNEES!Qx

Je sais que ça représente beaucoup de données, d'où l'intérêt de cette fonction.
Je pédale avec ça depuis vendredi, j'ai essayé des tas de macros dans tous les sens, sans résultat probant : des fonctions personnalisées, des CONCATENER, des essais d'extractions, des RECHERCHEV, j'avoue que je me décourage, c'est la raison pour laquelle je reviens vers CCM.

Je sais que vous avez le niveau, mais je vous comprends, vous m'avez souvent aidé.
Je relance donc le sujet, merci d'avance ...
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
Modifié par Vaucluse le 30/01/2017 à 18:51
Alors voila ce que je peux vous proposer. mais je ne garantis rien par rapport à vos données
https://www.cjoint.com/c/GAErVi3oroN
Le système utilise la colonne S de la base de données, colonne qui peut être masquée ou sur une autre feuille
la formule donne la possibilité de cumuler 4 adresses, vous pouvez rajouter des items si ça ne suffit pas
item: &SIERREUR(&(INDEX..........;"")
mais j'ai quand même un gros doute quant au fonctionnement dans votre périmètre
crdlmnt
0
touroul Messages postés 465 Date d'inscription mardi 5 octobre 2010 Statut Membre Dernière intervention 29 janvier 2024 15
23 févr. 2017 à 07:09
Bonjour Vaucluse
J'ai pu adapter votre méthode à mon fichier.
J'ai mis du temps à comprendre comment vous l'aviez construit.
Malheureusement même si elle est correcte (elle donne bien les bons résultats), lorsque je l'applique aux 500000 lignes du tableau, j'obtiens un message d'erreur relatif à la quantité de mémoire dès que j'étends la formule en colonne S.
J'y arrive quand-même en recopiant les formules par morceaux avec des macros.
Ensuite, curieusement l'indexation est moins gourmande même si la formule est plus complexe. Visiblement, c'est la comparaison des lignes qui demande beaucoup de puissance.
Je comprends pourquoi vous aviez des doutes.
Cependant, votre approche est intéressante et vous m'avez fait progresser, je vous en remercie beaucoup, c'est très important pour moi.

Encore merci pour le temps passé.

Cordialement
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
30 janv. 2017 à 22:19
Bonsoir à tous,

Pour créer une fonction standard qui regroupe de façon particulière les adresses, ce n'est pas très simple me semble-t-il, sinon tu l'aurais trouvé rapidement.

Je te propose donc une fonction personnalisée à copier dans un module standard qui devrait te regrouper tes adresses sans double. J'ai même donné la possibilité de sélectionner une autre valeur que 1 (on ne sait jamais) : il suffit de la rajouter en fin de formule et tu peux alors sélectionner ton "chien@orange.fr" avec 0 avec
=conc(B6;DONNEES!A:A;DONNEES!Q:Q;DONNEES!M:M;0)


https://www.cjoint.com/c/GAEvfXfZcMl
0
touroul Messages postés 465 Date d'inscription mardi 5 octobre 2010 Statut Membre Dernière intervention 29 janvier 2024 15
31 janv. 2017 à 18:32
Vous êtes géniaux tous les deux !
Je viens de voir les messages en rentrant du boulot, je teste et reteste ce soir et demain soir, et je vous dis.

Vous n'avez pas la même approche tous les deux, c'est intéressant.
Le moindre essai prend plusieurs minutes.

Mille mercis, à plus :) :) :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
23 févr. 2017 à 08:33
Bonjour tout le monde,

Si Touroul est d'accord, j'essaie une solution VBA

dans l'attente
0
touroul Messages postés 465 Date d'inscription mardi 5 octobre 2010 Statut Membre Dernière intervention 29 janvier 2024 15
23 févr. 2017 à 08:54
Bonjour Michel

La solution de GBinforme fonctionne, je suis en train de terminer les tests avant de faire un reply.
Cependant, l'utilisation processeurs est maximale, donc c'est comme vous le sentez ...
Le sujet est difficile.
A plus
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 23/02/2017 à 09:45
OUI ou NON ?

Vu la réponse "je ne me mouille pas ",c'est donc NON

Dommage, c'était presque fini (essai globaux à faire)

bonne continuation
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
23 févr. 2017 à 12:02
Bonjour Michel,

Tu n'as pas choisis la bonne réponse ;-)
Je suis très intéressé par ta solution qui a de bonnes raisons d'être pertinente alors je pense que tu peux la donner et touroul pourras la tester sur son gros classeur.

Bonne journée à toi.
0
touroul Messages postés 465 Date d'inscription mardi 5 octobre 2010 Statut Membre Dernière intervention 29 janvier 2024 15
23 févr. 2017 à 13:46
Bonjour Michel

+1 avec GB, il est intéressant de connaître ton point de vue et ta façon d'aborder ce problème.
Alors c'est OUI 3 fois, merci.
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 24/02/2017 à 11:26
bonjour,
Avant de présenter une réponse VBA, compte tenu du nombre d'adresses, cela ressemble fort à des envois massifs de publicité ou pire (...) qui nous polluent nos boites mails (j'ai déjà été piraté avec demande d'argent en "dépannage" de la part d'une "amie" présente dans le répertoire de ma boite mail)

Avant d'envoyer le code, j'aimerais avoir par message privé la réponse de la CNIL pour le but de cet envoi groupé ; Une vérification sera effectuée auprès de la CNIL.

 Michel
-2
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
24 févr. 2017 à 11:26
Salut Michel,

Tu as raison d'avoir des doutes, mais je ne pense pas qu'ils soient fondés car c'est une utilisation faite avec des adresses concernées par l'activité et si j'ai bien compris, le but est de pouvoir grouper le mail adressé pour les membres autorisés (code 1) d'une entité.
à partir du moment où tu fait partie d'un groupe (comme CCM par exemple) je ne suis pas sûr que CCM ait besoin d'un agrément pour envoyer des courriels à ses membres.

Bonne journée à toi.
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303 > gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020
24 févr. 2017 à 11:42
bonjour Gb,

je ne suis pas sûr que CCM ait besoin d'un agrément pour envoyer des courriels à ses membres.

d'accord,nous sommes inscrits à CCM donc, CCM peut nous envoyer de mails

maintenant, dans le cas de Touroul,, on se sait pas.

Si tu veux voir le code , je te l'enverrais par MP ...
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
24 févr. 2017 à 11:57
Bonjour Michel,

on se sait pas
c'est vrai que tu peux avoir un doute mais mon exemple me parait juste.
je te l'enverrais par MP ...
Si tu veux car je suppose que tu as trouvé un bon codage et c'est toujours bien d'apprendre de bonnes pratiques.

Bonne journée à toi.
0
touroul Messages postés 465 Date d'inscription mardi 5 octobre 2010 Statut Membre Dernière intervention 29 janvier 2024 15
24 févr. 2017 à 21:57
Bonsoir tous les 2.

Michel je ne suis pas un spammeur, je suis technicien.
Le fichier sert à envoyer des alertes de réacto-vigilance à des clients dont la base de données est constituée par les clients eux-mêmes.

J'ai du mal à comprendre votre réaction.
J'ai 30 années d'informatique derrière moi, croyez bien que j'utiliserai d'autres applis underground si je voulais faire du mailbombing, capables d'envoyer des trains de 500 000 mails en 15 minutes, mais croyez-moi si vous voulez ce n'est pas mon genre.
GB et moi attendons votre code.

Bonne soirée.
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303 > touroul Messages postés 465 Date d'inscription mardi 5 octobre 2010 Statut Membre Dernière intervention 29 janvier 2024
Modifié par michel_m le 25/02/2017 à 09:06
Bonjour,

J'ai 30 années d'informatique derrière moi, croyez ....

Et après 30 ans d'informatique, tu es incapable d'utiliser Excel et d'écrire en Basic VBA, langage de Débutant ?

l'exemple indiqué est faux (client 99) ou si ça l'est il y une ambiguïté dans ta demande ;
la prise en compte du mail dépend de 2 conditions les quelles ? à moins d'avoir mal lu je n'ai noté que la condition du 1 colonne Q et donc 99 devrait apparaitre.

tu indiques 450 000 Lignes , d'accord, mais pas le nombre maxi de clients( limite de prog à 65536 pour la fonction transpose)

Tu envies que quelques lignes vite fait, mal fait, ce qui rend l'évaluation de durée impossible et empêche le choix dans les algos (il y a 2 possibilités)...

Comme en plus d'avoir choper un -1 et que la solution de Gbinforme fonctionne...
0