Mise en relation de deux feuille avec un champs commun Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
a
alexj78
Jeune membre
Jeune membre
Messages : 10
Inscrit le : 3 avril 2014
Version d'Excel : 2007,2013

Message par alexj78 » 3 avril 2014, 10:53

Bonjour,

J'aimerais savoir si il était possible de mettre en relation deux feuilles d'un classeur. Je m'explique :
- Feuille 1 : comprend un champs numero , un champs date et un champs nom
- Feuille 2 : comprend un champs numero ( commun à l'autre feuille ) et un champs date

J'aimerais que lorsque dans la feuille 1 on rempli la date, cela rempli automatique la feuille 2 dans le champs date.

J'espère que je me suis bien fait comprendre ^^

Merci d'avance pour votre précieuse aide :)
h
h2so4
Passionné d'Excel
Passionné d'Excel
Messages : 9'171
Appréciations reçues : 377
Inscrit le : 16 juin 2013
Version d'Excel : 365 UK Windows 10

Message par h2so4 » 3 avril 2014, 11:15

Bonjour,

une formule rechercheV devrait être la solution.

en feuille 2 mettre dans la colonne qui doit recevoir la date venant de feuille 1

pour un numéro se trouvant en A1 en feuille 2 et numero se trouvant en colonne A ,date en colonne B, et nom en colonne C
=recherchev(A1,feuille1!$A$1:$B$1000,2,0)
a
alexj78
Jeune membre
Jeune membre
Messages : 10
Inscrit le : 3 avril 2014
Version d'Excel : 2007,2013

Message par alexj78 » 3 avril 2014, 11:53

J'ai essayer votre technique mais je n'es pas réussi, je vous joins mon fichier type

Merci d'avance :)
Test.xlsx
Mon fichier test
(17.57 Kio) Téléchargé 18 fois
h
h2so4
Passionné d'Excel
Passionné d'Excel
Messages : 9'171
Appréciations reçues : 377
Inscrit le : 16 juin 2013
Version d'Excel : 365 UK Windows 10

Message par h2so4 » 3 avril 2014, 12:08

Bonjour,

comme la colonne date se trrouve avant la colonne id dans feuille1, l'instruction rechercheV ne fonctionnera pas.

une solution avec une combinaison de 2 formules
=INDEX(Feuille1!A2:A14;EQUIV(Feuille2!B2;Feuille1!C2:C14;0))
index permet de sélectionner une cellule dans un ensemble de cellule (dans cette syntaxe en donnant un numéro de ligne)

index(feuille1!A2:A14, numéro de ligne), retourne la date que l'on trouve en ligne "numéro de ligne" dans la plage feuille1!A2:A14

numéro de ligne est le résultat de la formule

EQUIV(Feuill2!B2,Feuille1!C2:C14;0), retourne le "numero de la cellule" de feuille1:C2:C14 dans laquelle on retrouve la première occurrence de feuille1!C2

voir dans fichier joint.
Test (7).xlsx
(17.97 Kio) Téléchargé 16 fois
a
alexj78
Jeune membre
Jeune membre
Messages : 10
Inscrit le : 3 avril 2014
Version d'Excel : 2007,2013

Message par alexj78 » 3 avril 2014, 15:25

Merci beaucoup pour votre aide mais je rencontre un nouveau problème : les doublons

Si le nom HAUSER est à la fois le 1 janvier 2015 et le 12 février et le 23 mars ect...

Idéalement faudrait dans la feuille 2 ajouter une colonne date en plus si doublons il y a !

Merci encore on y est presque :)
h
h2so4
Passionné d'Excel
Passionné d'Excel
Messages : 9'171
Appréciations reçues : 377
Inscrit le : 16 juin 2013
Version d'Excel : 365 UK Windows 10

Message par h2so4 » 3 avril 2014, 16:23

Bonjour,

un problème pour un spécialiste de formules matricielles ... il doit y avoir moyen de faire cela avec des fonctions standard.

voici une solution via une fonction matricielle personnalisée
Function rvm(a As String, b As Range, c As Long) As Variant
' rvm recherchev sur doublons
' a valeur recherchée
' B plage où chercher la valeur
' c décalage de la colonne contenant la valeur à retourner (- pour les colonnes qui précèdent, + pour les colonnes qui suivent
' function matricielle, sélectionner les cellules qui doivent recevoir les réponses et valider par CTRL-maj-entrée

' exemple d'appel
' sélectionner D1:D4 puis
' introduire en D1  =rvm(B1,feuil1!C1:C20,-2) et valider avec CTRL-Maj-Entrée
' recherchera le contenu de B1 dans C1:C20 sur feuil1
' et mettra en D1:D4 les valeurs trouvées en colonne A (décalage -2 par rapport à C) là où B1 aura été trouvé.

Dim nc As Variant

nc = Application.Caller.Count
ReDim arr(nc - 1)
i = -1
For Each cel In b
If cel = a Then i = i + 1: arr(i) = cel.Offset(0, c)
Next
rvm = arr
End Function
Test rvm.xlsm
(22.79 Kio) Téléchargé 15 fois
Modifié en dernier par h2so4 le 4 avril 2014, 00:36, modifié 1 fois.
h
h2so4
Passionné d'Excel
Passionné d'Excel
Messages : 9'171
Appréciations reçues : 377
Inscrit le : 16 juin 2013
Version d'Excel : 365 UK Windows 10

Message par h2so4 » 3 avril 2014, 16:51

re bonjour,

le fichier joint précédemment n'est pas correct

le fichier contient déjà le code de la fonction personnalisée.
Test rvm.xlsm
(25.45 Kio) Téléchargé 13 fois
a
alexj78
Jeune membre
Jeune membre
Messages : 10
Inscrit le : 3 avril 2014
Version d'Excel : 2007,2013

Message par alexj78 » 3 avril 2014, 16:57

Merci pour votre correction !

J'ai ajouter plusieurs fois la ligne HAUSER et le fichier ne se met pas a jour dynamiquement?

Désolé je suis novice en Excel
h
h2so4
Passionné d'Excel
Passionné d'Excel
Messages : 9'171
Appréciations reçues : 377
Inscrit le : 16 juin 2013
Version d'Excel : 365 UK Windows 10

Message par h2so4 » 3 avril 2014, 17:07

Bonjour,

effectivement dans la formule que j'avais mise j'ai limité la recherche à la plage C2:C5, si tu ajoutes des lignes après la ligne 5, ces ajouts n'étaient pas pris en compte. j'ai remplacé la plage C2:C5 par C2:C500.

j'ai modifier les formules dans le classeur joint.
Test rvm.xlsm
(24.81 Kio) Téléchargé 13 fois
a
alexj78
Jeune membre
Jeune membre
Messages : 10
Inscrit le : 3 avril 2014
Version d'Excel : 2007,2013

Message par alexj78 » 3 avril 2014, 17:23

Merci beaucoup, maintenant j'ai ce message d'erreur dans la formule :
='C:\Users\****\AppData\Roaming\Microsoft\AddIns\myfunction.xlam'!rvm(B2;Feuille1!C$2:C$5;-2)

Cela fait référence à votre dossier AddIns et le mien est vide.

Merci d'avance

Lorsque je souhaite modifier la formule il me marque #NOM? dans la cellule et j'ai un popup qui s'ouvre disant : Impossible de modifier une partie de matrice
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message