Concaténer sur 3 conditions
touroul
Messages postés
509
Date d'inscription
Statut
Membre
Dernière intervention
-
touroul Messages postés 509 Date d'inscription Statut Membre Dernière intervention -
touroul Messages postés 509 Date d'inscription Statut Membre Dernière intervention -
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.
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:
- Concaténer sur 3 conditions
- Ai suite 3 - Télécharger - Optimisation
- Concatener deux cellules excel - Guide
- Picasa 3 - Télécharger - Albums photo
- Photorecit 3 - Télécharger - Visionnage & Diaporama
- Inverse de concatener excel ✓ - Forum Excel
7 réponses
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:
Moi, je ne me lance pas, mais ces renseignements pourraient je pense, servir à ceux qui pourront vous aider
Bonne chance
crdlmnt
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
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 ...
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 ...
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
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
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
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
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
https://www.cjoint.com/c/GAEvfXfZcMl
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
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 :) :) :)
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 :) :) :)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
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
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
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
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.
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.
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.
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.
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...
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...