Extraire des données de X colonnes

Bonjour,

Je suis nouveau ici et par avance je vous remercie de votre aide.

Voilà, j'ai un classeur avec deux feuilles contenant des données diverses. Dans chacune de ses feuilles j'ai X colonnes contenant des adresses mail. Ces colonnes de courriel contiennent parfois des cellules vides.

Je souhaiterai extraire de ces colonnes courriels toutes les adresses mail et les réunir par exemple dans une autre feuille dans une seule et même colonne.

Le summum serait en plus de pouvoir détecter les doublons

Si l'un d'entre vous à une piste, je le remercie par avance

Vincent

Bonjour,

Tes adresses mails sont présentes dans plusieurs colonnes ?

et sur plusieurs lignes aussi ?

Sur une ligne, y-a-t-il plusieurs adresses mail ?

Pour nous permettre de te répondre de façon précise, joins nous un exemple de fichier avec des données factives et aussi proche que possible de ton vrai fichier

Quelques lignes devraient suffire. Indique nous le nombre de lignes et colonnes de ton vrai fichier

Bon app

A te (re)lire avec ce fichier

@+

Merci tout d'abord de vous êtes penchés sur la question. Je vous joins donc un fichier test en espérant qu'il pourra vous aider.

L'extraction dans une seule colonne doit se faire sur une autre feuille si possible.

Cordialement, Vincent

https://www.excel-pratique.com/~files/doc2/Extraction_de_donnees.xls

Bonjour,

Regarde ce code :

Sub ma_macro()
Dim adr1
Set adr1 = CreateObject("Scripting.Dictionary")

Sheets("Ville de - 1000").Select
l = 5
For b = 1 To 12
    col = 3 * b
    tmp = Cells(65535, col).Address
    tmp1 = Range(Cells(65535, col).Address).End(xlUp).Row
    For b2 = l To tmp1
        nom = Cells(b2, col)
        If nom <> "" Then adr1(nom) = 1
    Next
Next
Sheets("Ville de + 1000").Select
l = 5
For b = 1 To 12
    col = 3 * b
    tmp = Cells(65535, col).Address
    tmp1 = Range(Cells(65535, col).Address).End(xlUp).Row
    For b2 = l To tmp1
        nom = Cells(b2, col)
        If nom <> "" Then adr1(nom) = 1
    Next
Next

'--------------------------------------------------------------
' ecriture résultat
'--------------------------------------------------------------
Sheets("feuille3").Select
l = 1
For Each adr In adr1
    l = l + 1
    Sheets("feuille3").Cells(l, 1) = adr
Next

End Sub

Merci pour cette macro qui marche super bien avec le fichier de test que je vous ai envoyé. par contre dans le fichier original cela ne renvoie pas les données attendues. C'est de ma faute car mon fichier test n'était pas la copie conforme du fichier original.

j'ai bien modifié les noms des feuilles dans le code que vous m'avez fourni, mais comme le nombre de colonne n'est pas le même cela me renvoie des données qui ne sont pas les adresses mail attendues.

Je vous fais donc parvenir le fichier original où je n'ai laissé que les champs mails remplis par de fausses adresses. Le reste normalement contient des enregistrements.

https://www.excel-pratique.com/~files/doc2/FICHIER_MARKETING.zip

J'ai zippé le fichier car il dépasse des 100 Ko autorisé.

D'avance merci

Vincent

Bonjour,

tu remplaces

for b=1 to 12

par

liste_col = Array(3, 10, 14, 18, 22)
For Each b In liste_col

dans array(...) tu mets le numéro des colonnes que tu veux récupérer les mails

Merci pour tout, j'ai juste du modifier un peu le fichier car la macro n'allait pas chercher les données dans les bonnes colonnes, mais ça fonctionne !!!!

Merci beaucoup

Rechercher des sujets similaires à "extraire donnees colonnes"