Fonctions

popipopi Messages postés 9 Statut Membre -  
Raymond PENTIER Messages postés 71867 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Alors me voilà confrontée à un autre problème. J'ai deux tables. Dans la première j'ai un peu près le même type de données que dans la seconde c'est-à-dire nom, prénom, adresse, mail, code postal, ville, pays et code quartier.
Dans la seconde table, il me manque juste le code quartier.
Je voudrais pouvoir introduire comme formule :

-Si plage "email" feuille 1 = A1 email de la feuille 2 et si plage code postal feuille 1 = B1 code postal feuille 2

ALORS C1 du code quartier de la feuille 1 est mis automatiquement dans la cellule C1 de la feuille 2.

J'ai tenté avec NB.SI pour les plages mais je suis bloquée maintenant....

Merci d'avance à ceux qui pourront m'éclairer !

4 réponses

Morgothal Messages postés 1350 Statut Membre 184
 
Bonjour,
J'ai écrit une petite macro dans ce classeur exemple.

Peut-être pourras tu t'en inspirer pour ton cas !

Je reste dispo pour toute question !

A+

-------------------
Cordialement,
Clément
0
Morgothal Messages postés 1350 Statut Membre 184
 
Par contre je suis parti du fait qu'il n'y a pas de doublons dans la seconde feuille. La macro ci-avant n'inscrira pas 2 fois le même code.
Par contre, la macro dans ce classeur peut inscrire plusieurs fois le même code ;-)
0
popipopi Messages postés 9 Statut Membre
 
Merci beaucoup ! Pour pouvoir prendre ta macro, j'ai juste à recopier le code ? Et si je dois modifier le numéro des champs et des enregistrements ?
(Je suis vraiment nulle pour les macros ...)
0
Morgothal Messages postés 1350 Statut Membre 184
 
Juste pour t'expliquer la macro alors :)

Sub copie()

Dim email As String
Dim code As String
Dim acopier As String
Dim ligne, ligne2 As Integer

For ligne = 1 To Range("A65536").End(xlUp).Row
With Sheets(1)
'ici ce sont les mails et codes postaux de la premiere feuille, si les colonnes changent, il faut modifier les (ligne, 1) : le 1 signifie colonne A, le 2 colonne B etc
email = .Cells(ligne, 1)
code = .Cells(ligne, 2)
acopier = .Cells(ligne, 3)
End With

For ligne2 = 1 To Sheets(2).Range("A65536").End(xlUp).Row
With Sheets(2)
'même histoire ici, dans la feuille 2, le cells(ligne2,1) = email signifie qu'on cherche l'email dans la colonne 1, donc la colonne A, et le cells(ligne2,2), le code postal dans la colonne 2, donc la B
If .Cells(ligne2, 1) = email And .Cells(ligne2, 2) = code Then
.Cells(ligne2, 3) = acopier
End If
End With
Next
Next

End Sub

0
popipopi Messages postés 9 Statut Membre
 
For ligne = 1 To Range("A65536").End(xlUp).Row
With Sheets(1)

et

For ligne2 = 1 To Sheets(2).Range("A65536").End(xlUp).Row
With Sheets(2)

On n'y touche pas ? c'est à dire pour les chiffres : 1,2,3 ect...
Si mes feuilles ont un nom différent, ça joue pas sur la macro ?
0
popipopi Messages postés 9 Statut Membre
 
Je t'avoue que j'ai du mal à transférer ta micro sur mon document excel...
0
Morgothal Messages postés 1350 Statut Membre 184
 
Sheets(1) signifie "premiere feuille du classeur", et Sheets(2) désigne la seconde feuille, donc à toi d'adapter ces chiffres pour ton classeur.
Donc non on ne touche pas à ces lignes :) (à part les numéros de feuilles)
0
Raymond PENTIER Messages postés 71867 Date d'inscription   Statut Contributeur Dernière intervention   17 397
 
Bonjour popipopi.

Moi aussi je suis allergique aux macros ...
Dis-moi : 2 personnes ne pouvant pas avoir la même adresse mail, pourquoi faire un second test sur le code postal ?
Il te suffit de faire la recherche
"Si email feuille 1 = A1 feuille 2, alors code quartier feuille 1 est mis automatiquement dans la cellule C1 de la feuille 2". Non ?
Alors voici un fichier-exemple, avec l'email saisi en Feuil2!B1 et la formule de recherche en Feuil2!D1 : https://www.cjoint.com/c/CGtstC3O3rQ

Cordialement.
0
popipopi Messages postés 9 Statut Membre
 
Je voudrais bien que tu m'expliques comment tu fais avec RECHERCHEV. J'ai vu ton document, mais je sais pas du tout quoi mettre en
Valeur_cherchée
Table_matrice
No_index_co
Valeur_proche

Oui tu as raison, je sais pas pourquoi j'ai rajouté le champ Code postal alors que l'adresse n'est pas forcément la même !
0
Raymond PENTIER Messages postés 71867 Date d'inscription   Statut Contributeur Dernière intervention   17 397
 
Etant donné que, pour chaque nouvelle fonction que tu voudras utiliser, la même question "comment ça marche, quoi mettre ?" se posera, il me semble plus utile de t'expliquer où trouver les réponses :
Dans l'Aide d'Excel, chaque fonction fait l'objet d'une fiche explicative, avec la description de la syntaxe, le rôle des arguments, les valeurs par défaut et les valeurs limites, les messages d'erreur, des exemples de formule avec les résultats, et même la liste des fonctions de la même famille !

Dans une cellule tu tapes =RECHERCHEV(
Une bulle s'affiche et te donne la syntaxe à respecter pour l'écriture de la fonction.
Tu viens sur RECHERCHEV dans cette bulle ; la fonction devient bleue et soulignée.
Tu cliques dessus, et Excel va chercher l'Aide et la fiche concernée.

Cependant, si tu les explications fournies ne te conviennent pas, il y a aussi des fiches techniques dans les Astuces de CCM : https://www.commentcamarche.net/faq/24720-fonction-recherchev-sur-excel

Cordialement.
0