IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Rechercher dans un autre fichier et copier cellule référence [XL-2010]


Sujet :

Excel

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2013
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mars 2013
    Messages : 30
    Points : 5
    Points
    5
    Par défaut Rechercher dans un autre fichier et copier cellule référence
    Bonjour à tous,

    J'ai à ma disposition deux fichiers excel différents.
    Dans le premier, j'ai une tableau classique avec une liste de clients + nom, adresse, n° de client (colonne K), ... j'ai également la colonne AI (ventes) mais pas de valeur.
    Dans mon second fichier, j'ai une feuille par client. Dans chaque feuille client, je trouve toujours en A2 le n° de client (correspondant donc à ma colonne K du premier fichier) et en O59 (toujours!) un chiffre de vente que j'aimerais reporter dans mon premier fichier (colonne AI)

    Comment pouvoir faire une recherche parmis les différentes feuilles sur la case A2 et si case A2 correspond à ma valeur en K, de reporter la valeur O59...

    J'espère que c'est compréhensible et dans tous les cas, j'ai mis un exemple simplifié ci-joint. Pour info, je n'ai pas le loisir de modifier la construction de mes deux fichiers car ce sont des rapports qui sortent de programmes différents tel quel.

    Est-il donc possible de créer une formule? ou une macro pour m'aider à faire cela...

    Votre aide est la bienvenue...

    D'avance merci,


    je ne sais pas si ça aide mais j'imagine la formule suivante:

    =IF(l'undesA2dusecondfichier=K2;O59del'ongletouletestlogiqueestvérifié;"")
    Fichiers attachés Fichiers attachés

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 862
    Points : 28 792
    Points
    28 792
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Je pense que la procédure proposée dans cette contribution LookupLabelRange - Ajouter une colonne à une liste de données répondra à tes attentes
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2013
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mars 2013
    Messages : 30
    Points : 5
    Points
    5
    Par défaut
    Merci. j'ai un peu regarder mais je ne vois pas comment je peux
    1) faire la recherche sur différents onglet
    2) copier la valeur d'une cellule qui n'est pas sur la même ligne que la valeur que l'on compare

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 862
    Points : 28 792
    Points
    28 792
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Merci. j'ai un peu regarder mais je ne vois pas comment je peux
    1) faire la recherche sur différents onglet
    2) copier la valeur d'une cellule qui n'est pas sur la même ligne que la valeur que l'on compare
    Pour la question 2, il n'y a aucun problème puisque la formule est la combinaison des fonctions INDEX et EQUIV donc l'ordre des lignes n'a aucune espèce d'importance
    Pour la question 1, y a t'il plusieurs lignes pour le même client ou bien une seule ?
    Pour obtenir une meilleure aide j'aurais besoin de l'image de la feuille du premier classeur et l'image d'une feuille client se trouvant dans le second classeur
    Ne pas oublier de changer les données sensibles (Nom et adresse des clients)
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Futur Membre du Club
    Inscrit en
    Mars 2013
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mars 2013
    Messages : 30
    Points : 5
    Points
    5
    Par défaut
    Merci pour ton feedback!

    pour répondre à ta question
    Pour la question 1, y a t'il plusieurs lignes pour le même client ou bien une seule ?
    Dans le premier fichier c'est 1 ligne par client
    Dans le second fichier c'est un onglet par client contenant plusieurs lignes/colonnes de données

    Pour obtenir une meilleure aide j'aurais besoin de l'image de la feuille du premier classeur et l'image d'une feuille client se trouvant dans le second classeur
    Ne pas oublier de changer les données sensibles (Nom et adresse des clients)
    Dans mon premier post, j'ai mis un exemple type avec deux fichiers? Te faut-il autre chose?

    Encore merci.

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 862
    Points : 28 792
    Points
    28 792
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Dans mon premier post, j'ai mis un exemple type avec deux fichiers? Te faut-il autre chose?
    Je n'ouvre jamais les fichiers déposés surtout en ouverture de discussion.
    En affichant des images, chaque lecteur d'une discussion peut profiter de celle-ci sans devoir ouvrir un ou des classeurs. C'est comme cela que je conçois l'esprit d'un forum.
    Avec tes explications et en attendant l'affichage, je vais tenter d'apporter une réponse mais ce sera sans doute pour demain.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  7. #7
    Futur Membre du Club
    Inscrit en
    Mars 2013
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mars 2013
    Messages : 30
    Points : 5
    Points
    5
    Par défaut
    Premier fichierNom : premier fichier.PNG
Affichages : 145
Taille : 126,3 Ko

    Second fichierNom : second fichier.PNG
Affichages : 128
Taille : 125,6 Ko

  8. #8
    Futur Membre du Club
    Inscrit en
    Mars 2013
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mars 2013
    Messages : 30
    Points : 5
    Points
    5
    Par défaut
    J'ai été aider par une personne et j'ai donc une macro tout à fait fonctionnelle qui résout mon problème.
    Pour ceux que ça intéresse:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
     
     ' (c)XLSolutionS, (c)2017
     
     Sub RecupCaBis()
     Dim xlsWsRecap As Object
     Dim nomFicClients
     
     Dim derLig
     
     Dim cptOng, nbrOng
     Dim tabEts()
     
     Dim nomEts
     Dim numEts
     Dim cptLig, cptTrv
     
     Dim tpsDeb, tpsFin
     
       Set xlsWsRecap = Worksheets(ActiveSheet.Name)
     
       nomFicClients = Application.GetOpenFilename(FileFilter:="Excel Files (*.xls*), *.xls*", Title:="Selectionnez le fichier Clients")
       If nomFicClients = "" Then
       MsgBox "annul"
       Else
       tpsDeb = Timer
       Application.ScreenUpdating = False
     
       Workbooks.Open (nomFicClients)
       nbrOng = Sheets.Count
       ReDim tabEts(1 To nbrOng, 1 To 2)
       For cptOng = 1 To nbrOng
       tabEts(cptOng, 1) = Sheets(cptOng).Cells(2, 1)
       tabEts(cptOng, 2) = Sheets(cptOng).Cells(59, 15)
       Next
       Windows(Dir(nomFicClients)).Close
     
       derLig = xlsWsRecap.Rows.Count
       cptLig = 0
       cptTrv = 0
       While Not (derLig = 2)
       If Not (xlsWsRecap.Cells(derLig, 11) = "") Then
       cptLig = cptLig + 1
       nomEts = xlsWsRecap.Cells(derLig, 11)
       numEts = TrouveEts(nomEts, tabEts)
       If numEts > 0 Then
       xlsWsRecap.Cells(derLig, 35) = tabEts(numEts, 2)
       cptTrv = cptTrv + 1
       Else
       xlsWsRecap.Cells(derLig, 35) = "ABS"
       End If
       End If
       derLig = derLig - 1
       Wend
       Application.ScreenUpdating = True
     
       tpsFin = Int(Timer - tpsDeb)
     
       MsgBox cptTrv & " Trouvés / " & cptLig & " Lignes" & vbCrLf & "en " & tpsFin & " sec.", vbOKOnly + vbInformation, "FIN"
       End If
     
       Set xlsWsRecap = Nothing
     
     End Sub
     
     Function TrouveEts(lequel, tablo)
     Dim trvEts As Boolean
     Dim cptEts
     
       trvEts = False
       cptEts = 1
       While Not (cptEts > UBound(tablo, 1)) And Not trvEts
       If tablo(cptEts, 1) = lequel Then
       trvEts = True
       Else
       cptEts = cptEts + 1
       End If
       Wend
     
       If trvEts Then
       TrouveEts = cptEts
       Else
       TrouveEts = 0
       End If
     
     End Function
    Merci pour votre aide malgré tout!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 02/07/2014, 17h20
  2. Copier une plage de cellules dans un autre fichier
    Par Naoned005 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 14/04/2012, 17h02
  3. Copier une plage de cellule dans un autre fichier
    Par bilou_12 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 11/04/2012, 21h31
  4. [XL-2007] Erreur 1004, recherche d'une cellule dans un autre fichier excel
    Par bodd984 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 09/08/2010, 18h12
  5. Recherche dans un autre fichier
    Par damsmut dans le forum Excel
    Réponses: 2
    Dernier message: 30/09/2008, 14h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo