Fonctions

popipopi Messages postés 9 Statut Membre -  
Raymond PENTIER Messages postés 58213 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

  1. 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
    1. 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
    2. 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
  2. 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
  3. 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
    1. popipopi Messages postés 9 Statut Membre
       
      Je t'avoue que j'ai du mal à transférer ta micro sur mon document excel...
      0
    2. 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
  4. Raymond PENTIER Messages postés 58213 Date d'inscription   Statut Contributeur Dernière intervention   17 482
     
    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
    1. 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
    2. Raymond PENTIER Messages postés 58213 Date d'inscription   Statut Contributeur Dernière intervention   17 482
       
      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