Excel programmation

Résolu/Fermé
caba_44 Messages postés 99 Date d'inscription lundi 14 décembre 2009 Statut Membre Dernière intervention 24 novembre 2022 - 14 déc. 2009 à 12:12
caba_44 Messages postés 99 Date d'inscription lundi 14 décembre 2009 Statut Membre Dernière intervention 24 novembre 2022 - 4 janv. 2010 à 16:05
Bonjour,

Je suis nouveau sur ce site. Je suis aussi débutant pour excel. Cependant, j'ai une problématique complexe.
Je dois qualifier un fichier excel (30000 lignes de contact sur la feuille 1 sans les adresse emails, et 2500 lignes de contacts dans la feuille 2 avec les adresse emails) Ces 2500 lignes de contacts sont aussi présents dans la feuille 1 au 30000 lignes de contact.

L'objectif est de faire en sorte de mettre les adresses emails de la feuille 2 sur la bonne ligne de contact de la feuille 1 sachant que les adresses emails sont à inscrire au niveau de la colonne W. Et tout ça automatiquement.

Ceci impose de repérer les lignes identiques dans chaque feuille en fonction du numéro de téléphone ou adresse ou autres (à préciser) et que si c'est = alors la cellule de la ligne de la feuille 2 ira se coller à la cellule identique de la ligne identique de la feuille 1.

Voilà en espérant avoir été clair.

Je précise que dans la feuille 1 il y a d'autres informations qu'il n'y a pas dans la feuille 2 d'où l'obligation de coller de feuille 2 vers feuille 1 automatiquement.

Merci de votre aide, en espérant que ce n'est que formalité tout simple que de résoudre ce problème pour vous

A bientôt Mathieu
A voir également:

24 réponses

bonjour
la valeur que tu desires en colonne W tu peux la trouver en utilisant la fonction RECHERCHEV .
lavaleur cherchée (enfeuil 1) sera les n° de tel ; la matrice (en feil 2 ) sra le tableau ; len° de colonne sera le nb de colonne pour arriver jusqu'a la colonne des e-mails(incluse) ; mets un; 0 si c'est du vrac
tu rentres ça en colonne W à la 1ere ligne a renseigner puis tu tires vers le bas
a+
0
caba_44 Messages postés 99 Date d'inscription lundi 14 décembre 2009 Statut Membre Dernière intervention 24 novembre 2022 5
14 déc. 2009 à 14:26
Merci pour vos réponses.
Cependant, je n'ai pas tout saisi car l'objectif est qu'après avoir reconnu les lignes équivalentes entre la feuille 1 et la feuille 2, il faut coller la cellule W de la feuille 2 vers le cellule W de la feuille 1.

Comment faire svp ?

Merci d'avance

Mathieu
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
14 déc. 2009 à 14:39
Bonjour
vous ne donnez pas assez d'info sur votre fichier pour pouvoir être complet dans nos indications,toutefois,pour préciser ce que veux dire Gilou, un exemple à adapter:
sur votre feuille 2 , supposons que votre champ d'information commence en A avec le nom , en B avec le N° de téléphone, en C avec une info quelconque et en D avec l'adresse Mail.
dans votre feuille 1 on suppsoe que le N° de téléphone est dans la colonne F, à partir de F2
placez en W2:
=SI(ESTERREUR(RECHERCHEV(F2;feuil2!$B$2:$D$30000;3;0);"";RECHERCHEV(F2;feuil2!$B$2:$D$30000;3;0))
cette formule va recherche en colonne B de feuil2 la valeur de F2 de la feuille 1 et ressortir en W2 la valeur trouvée dans la 3° colonne du champ indiqué, soit ici colonne D)
le premier item de la formule sert à éviter l'affichage parasite #/NA si la valeur de F2 n'est pas trouvée .

A adapter à vos champ et vos noms de feuilles:
feuil2 donne le nom de la feuille où se situe le champ de recherche et doit être suivi du point d'exclamation dans la formule avant d'inscrire les limites de champ.Les limites sont assorties ces signes $( par exemple $B$2:$D$300) pour bloquer les champs et permettre de "tirer "la formule sur toute la hauteur de la colonne W
Si vous n'arrivez pas avec cela, il faudra en dire plus sur l'organisation de vos données.
Bonne chance
crdlmnt
0
caba_44 Messages postés 99 Date d'inscription lundi 14 décembre 2009 Statut Membre Dernière intervention 24 novembre 2022 5
14 déc. 2009 à 15:36
Navré, ça ne fonctionne pas.

Explication concrète

Feuille 1 intitulée BASE
Feuille 2 intitulée VONEO

Feuille1
A1 = CODE PROSPECT
B1 = RAISON SOCIALE
C1 = ADRESSE
ENTRE D1 ET N1 = info quelconque
O1 = TEL
ENTRE P1 ET V1 = info quelconque
W1 = MAIL VIDE

Feuille2 est configuré de la même manière sauf que:
A1 = COLONNE VIDE
W1 = MAIL REMPLI

OBJECTIF: Copier la cellule W1 de la feuille 2 vers la cellule W1 de la feuille 1 tout en faisant en sorte que les numéros de téléphones soient les mêmes pour ne pas se tromper de ligne.

Pour info, je crois que votre formule ne fonctionnait pas, peut-être manquait-il une valeur, une paranthèse.

Merci pour votre implication
0

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

Posez votre question
caba_44 Messages postés 99 Date d'inscription lundi 14 décembre 2009 Statut Membre Dernière intervention 24 novembre 2022 5
14 déc. 2009 à 16:14
Pour info aussi, ca ne prend pas les chiffres comme les numéros de tel mais uniquement les lettres j'ai l'impression, non ?
0
re
je t'envoie un exemple succint de l'utilisation de RECHERCHEV
http://www.cijoint.fr/cjlink.php?file=cj200912/cijUTiJumM.xls
SI tu n'as toujours pas compris je (nous) t'envoierons un topo plus detaillé
0
caba_44 Messages postés 99 Date d'inscription lundi 14 décembre 2009 Statut Membre Dernière intervention 24 novembre 2022 5
14 déc. 2009 à 16:33
Ok merci j'ai compris, j'ai réussi à le faire avec une autre variable que le numéro de téléphone. Mais c'est pourtant bien avec le numéro de téléphone que je dois rechercher.Cependant, les nombres uniquement quelque soit le format de cellule(click gauche/propriété/format de cellule), ç a ne fonctionne pas. Il m'indique #REF!.

Mis à part ça tout fonctionne.

Savez-vous pourquoi les chiffres et uniquement les chiffres ne peuvent être pris en compte ?

Merci
0
caba_44 Messages postés 99 Date d'inscription lundi 14 décembre 2009 Statut Membre Dernière intervention 24 novembre 2022 5
14 déc. 2009 à 17:09
Pour exemple, www.francejoint.fr/test/test.xls

Vous verrez les deux feuilles.

Objectif remplacer les emails vides et sinon laissr telquel en feuille1
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
14 déc. 2009 à 17:12
Re

ça ne fonctionne pas probablement car vos N° de téléphone ne sont pas rentrès sous le même format, car en principe cela fonctionne bien aussi avec des chiffres!

Ainsi un N° de téléphone rentré en groupe de 2 avec des blancs est un texte et n'est pas identique pour excel, à un N° rentré sans blanc et formaté 'téléphone",dont l'affichage est le même, mais qui reste un nombre sans espace malgrè la présentation.
C'est sans doute de cette différence que vient le problème
Vous pouvez constater si cela est bien la cause et régler le problème comme suit:
sur vos données de référence , sélectionnez la colonne des N° de téléphone:
Barre d'outil /. Edition / Remplacer
fenêtre du haut entrez un blanc
fenêtre du bas ne mettez rien et cliquez sur remplacer tout.
Vous verrez tout de suite si les affichages se modifient ou non.
Faites la même chose dans votre seconde feuille et après cela, vous pouvez formater vos colonnes en format tel, tout devrait marcher.
Pour mémoire, un N° de télphone formaté tél s'affiche comme un nombre classique dans la barre de formule.
Crdlmnt

Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
0
caba_44 Messages postés 99 Date d'inscription lundi 14 décembre 2009 Statut Membre Dernière intervention 24 novembre 2022 5
15 déc. 2009 à 08:48
Pour exemple, www.francejoint.fr/test/test.xls

Vous verrez les deux feuilles.

Objectif remplacer les emails vides et sinon laisesr tel quel en feuille1

Non j'ai pourtant vérifier les numéros de téléphone. Ca ne fonctionne qu'à partir de la colonne B
Bizarre
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
15 déc. 2009 à 10:06
Bonjour
selon votre modéle, j'ai testé la formule en colonne X essayez):

=RECHERCHEV(U2;Base1!$O$2:$W$1000;9;0)

Elle renvoie bien les adresse mail .... qui y sont déja, mais pas les autres, pour la bonne raison que:
soit les n° de téléphone en U dans la feuille base 1 , tel OK mais pas de Mail?)
Pour mémoire:
le code cherché n'est pas présent: la fonction renvoi #/NA
le code est présent sans adresse mail: la fonction renvoie 0

vérifier!
Crdslmnt
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
15 déc. 2009 à 10:32
Bonjour,

comme il s'agit d'indiquer les mails absents sans toucher les autres déjà inscrits en feuille "base", il faudrait parcourir les 30000 lignes et coller la fonction RECHERCHEV au fur et à mesure...

je propose donc une solution VBA qui remplit les e-mails manquants et présents dans la liste base1 et signale une éventuelle erreur de N) téléphone
option base 1
Sub copier_mel()
Dim nbre As Long, cptr As Long
Dim tablo1
Dim lig As Long, texto As String
With Sheets("base1")
    nbre = .Range("O65536").End(xlUp).Row - 1
    ReDim tablo(nbre, 2)
    For cptr = 1 To nbre
        tablo(cptr, 1) = .Cells(cptr + 1, 15)
        tablo(cptr, 2) = .Cells(cptr + 1, 23)
    Next
End With

With Sheets("base")
Application.ScreenUpdating = False
    For cptr = 1 To nbre
            On Error Resume Next
             lig = .Columns(15).Find(tablo(cptr, 1), .Cells(1, 15), xlValues).Row
             If Err.Number = 0 Then
                .Cells(lig, 23) = tablo(cptr, 2)
            Else
                flag = True
                texto = texto & tablo(cptr, 1) & "; "
                Exit For
            End If
    Next
End With
If flag Then MsgBox "numéros inconnus: " & vbLf & texto & "; "
End Sub


Edit à 11h 30 ajouter option base 1 en t^te de macro
0
caba_44 Messages postés 99 Date d'inscription lundi 14 décembre 2009 Statut Membre Dernière intervention 24 novembre 2022 5
15 déc. 2009 à 10:41
Merci pour les infos,

J'ai besoin d'un peu de temps pour digérer les infos.
Je vais essayer de comprendre tout ça.

Merci beacoup, je reviens vers vous fin de journée

Bye
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
15 déc. 2009 à 11:28
re,

Il faut ajouter
Option base 1 au dessus de la macro !!!
avec mes excuses...
0
caba_44 Messages postés 99 Date d'inscription lundi 14 décembre 2009 Statut Membre Dernière intervention 24 novembre 2022 5
15 déc. 2009 à 11:56
Bonjour,

Bon j'ai mis du temps étant novice, mais je vois comment faire fonctionner une macro, etc...

J'ai essayé tout à l'aire de fonctionner.
Option base 1 au dessus de la macro ? que voulez-vous dire ?

J'imagine que je peux combiner plusieurs macros sur le même document si je souhaite entrer 2 autres données à savoir contact et nom du poste.

En tout cas, vous avez été d'une grande aide.
Et, je suis très étonné des capacités d'excel,

Un grand merci

Mathieu
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
15 déc. 2009 à 12:24
Re,

"Option base 1" car:

les variables-tableaux ( ma variable tablo) commence à 0 et non à 1

par exemple; tabloX(0) donne la 1° valeur dans tabloX
base 1 m'évite d'avoir à jongler avec les compteurs et les cellules...

la méthode "variables-tableaux" permet de gagner du temps ( rapport environ 600 à 1000) dans l'exécution par rapport à des instructions du type "select-sélection" et "copy-paste"
Dans les grands tableaux (2500 et 30000), cette méthode est à privilégiée
:-x
0
caba_44 Messages postés 99 Date d'inscription lundi 14 décembre 2009 Statut Membre Dernière intervention 24 novembre 2022 5
15 déc. 2009 à 13:54
Merci beaucoup pour votre implication, vous m'enlever une épine du pied

A la prochaine

Mahieu
0
caba_44 Messages postés 99 Date d'inscription lundi 14 décembre 2009 Statut Membre Dernière intervention 24 novembre 2022 5
30 déc. 2009 à 10:49
Bonjour,

Au sujet de la macro que vous avez réalisé. Si je comprends bien, elle fonctionne si dans "Base1" on retrouve tous les numéros de tel (colonne 15) aussi dans la feuille "Base".
Mais si dans "Base1", j'ai des numéros qui n'existent pas dans "Base", alors est-ce la même maxro ?

Car quand je l'active, j'ai une erreur m'indiquant "numéros inconnus (numéro de téléphone); ;"
En fait, je souhaiterais savoir comment je pourrais remedier à ce problème.

Quand le numéros n'existent pas dans l'autre feuille, alors on passe à la suite.

Est-ce possible ?

Merci d'avance

Mathieu
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
30 déc. 2009 à 11:07
Bonjour,

Excuses moi, mais je n'ai plus du tout le pb en tête!!!

j'essaierai de m'y replonger dans la journée....
0
caba_44 Messages postés 99 Date d'inscription lundi 14 décembre 2009 Statut Membre Dernière intervention 24 novembre 2022 5
30 déc. 2009 à 11:13
OK merci.

Le propos était d'insérer automatiquement les emails d'une base à l'autre en tenant compte du fait que les numéros devaient être identique entre les 2 base (phase reconnaissante avec de copier coller)

Merci en tout cas

Mathieu
0
caba_44 Messages postés 99 Date d'inscription lundi 14 décembre 2009 Statut Membre Dernière intervention 24 novembre 2022 5
4 janv. 2010 à 11:59
Bonjour,

Je me permets de vous relancer afin de savoir si vous savez ce qui ne fonctionne pas dans la formule.

En attendant de vous lire,*

Mathieu
0