VBA-Recopier Valeur d'un autre fichier

Celeda

XLDnaute Barbatruc
Bonjour,

Voilà mon souci :

Je souhaiterai automatiser un fichier à l’intérieur d’un répertoire :

Voici la structure du Répertoire dans lequel se trouve le fichier:

Nom du répertoire : LOANS

Dans ce répertoire un Fichier, mis à jour au fur et à mesure : LISTECLIENTS

Dans ce répertoire des classeurs : Archives, August.

Dans le classeur August, un fichier : LOANS-05082010, qui correspond à une extraction sap à un instant T.

Dans ce fichier LOANS-05082010, j’ajoute une colonne entête, « Nom de liste ». Je dois retrouver le nom du client par rapport au Nos client qui se trouve dans « LISTECLIENTS ».

Jusqu’à présent, je me sers de Sommeprod et Index. Et tout va bien.

Mais il faut à chaque fois que je déplace mon fichier LISTECLIENTS dans le nouveau fichier extraction « LOANS-xxxx2010 » en tant que deuxième feuille.

C’est pour éviter cette manip que je souhaite avoir une macro qui va chercher le nom du client directement dans « LISTECLIENTS » soit en ouvrant le fichier, soit en l’important dans le nouveau fichier extraction « LOANS-xxxx2010 »
Mais attention « extraction « LOANS-xxxx2010 » se trouve dans le classeur du mois en cours. Et « LISTECLIENTS » se trouve dans le Repertoire : LOANS.

Info : si le nom du client n’existe pas dans « LISTECLIENTS », cela doit ramener dans la cellule un vide.

J'ai préparé des fichiers test et j'espère que je suis bien claire....:)D).

Je vous remercie à l'avance pour votre aide.
 

Pièces jointes

  • LISTECLIENTS-TEST.zip
    12.4 KB · Affichages: 47
  • LOANS-05082010-TEST.zip
    4.2 KB · Affichages: 48
Dernière édition:

kjin

XLDnaute Barbatruc
Re : VBA-Recopier Valeur d'un autre fichier

Bonjour Celeda :),
Euh, on va dire que je ne fait pas beaucoup d'effort...:D
Je ne vois pas bien ton pb si tu disposes, comme je l'ai compris, d'un seul et unique fichier LISTECLIENTS
Pourquoi déplacer ce fichier ?
Quel pb cela pose t-il d'avoir les fichiers dans des répertoires différents ?
A+
kjin
 

Celeda

XLDnaute Barbatruc
Re : VBA-Recopier Valeur d'un autre fichier

Bonjour,

Oui Kijin, moizossi, je fais de moins en moins d'efforts :D lol!!

En fait, j'ai oublié d'expliquer une chose (grâce à toi) importante.
Il faut à chaque fois que je replace la bonne formule dans le fichier "LOANS-xxxx2010 ".
La fameuse formule sommeprod+index qui me permet de ramener le nom du client.Cette formule se trouve dans le fichier précédent "LOANS-yyyy2010".
Comme je fais des extractions régulières, je me reporte au fichier de l'instant T précédent et je place de nouveau ma liste client en deuxième feuille.
Donc, à la fin, tu comprends que cela me g.......
D'où ma demande, comprends-tu ?

Merci.
 

kjin

XLDnaute Barbatruc
Re : VBA-Recopier Valeur d'un autre fichier

Re,
Oui Kijin, moizossi, je fais de moins en moins d'efforts
bah je vois bien :D
En fait, j'ai oublié d'expliquer une chose (grâce à toi) importante.
Me doutais bien aussi :D
Il faut à chaque fois que je replace la bonne formule dans le fichier "LOANS-xxxx2010 "...
Plutôt que de copier la formule depuis le fichier précédent, on peut l'implémenter directement dans la macro
Par contre je ne vois pas comment tu souhaites insérer la macro dans le nouveau fichier, à moins que tu ne le fasses depuis un autre fichier
Pour le coup, j'ai l'impression que c'est moi qui ne suis pas très clair
A+
kjin
 

Celeda

XLDnaute Barbatruc
Re : VBA-Recopier Valeur d'un autre fichier

Bonjour,

ouiais!!!!!! si tu es très clair : encore un critère oublié.

Je n'avais pas pensé à ce détail!!:eek:

Mais à réflechir, je pourrais placer cette macro dans ma bibliothèque de macros que j'utilise souvent car cela me permet de ne pas oublier où j'ai placé les macros. C'était un excellent conseil de Ti!
Maintenant, on pourrait la mettre aussi dans le fichier ListeClients...why not ???

Merci pour ton attention.:)
 

sousou

XLDnaute Barbatruc
Re : VBA-Recopier Valeur d'un autre fichier

Bonjour celeda
Voici ce que je te propose
Une macro à intégrée dans listeclients
elle regarde tous les fichier excel ouverts et va déposé le nom du client.

Ainsi tu ouvres n'importe quelle update et même plusieurs, tu ouvres liste clients, et l'ensemble des cnoms sont mis à jour

Sub client()
For Each i In Workbooks
If i.Name <> ThisWorkbook.Name Then
Set zone = ThisWorkbook.Sheets("Liste").Columns(1).Rows
For Each num In i.Sheets(1).UsedRange.Columns(3).Rows

On Error Resume Next
Set n = zone.Find(num)
num.Offset(0, 1) = n.Offset(0, 2)
Next

End If
Next
End Sub
 
G

Guest

Guest
Re : VBA-Recopier Valeur d'un autre fichier

Bonjour Celeda, Kjin,Sousou

Voici ce que j'ai fait. Avec MSADO.
.
Cocher la référence Microsoft Activex DataObject.

Céleda, dans le module tu verras une constante CHEMIN_FICHIER_CLIENTS à renseigner 1 fois ainsi que une constante FICHIER_CLIENT.

Cela fait tu peux lancer la macro.

J'ai pris plaisir à le faire en réponse à tout ce que tu as approté au forum.

A++
A++Kjin

[Edit] Excuse Sousou, t'avais pas vu quand j'ai posté.
 
Dernière modification par un modérateur:

Celeda

XLDnaute Barbatruc
Re : VBA-Recopier Valeur d'un autre fichier

Bonjour,

oh oh sousou cela faisait un bail!!!! mais tu es comme moi,
xld reste dans nos coeurs:)

je vais tester ta soluce et je te reviens;merci à l'avance.

Hasco :
c'est qui MSADO ? lol !!! :D

super, je vais tester aussi et cocher les références dans MSADO
et comme sousou, je te reviendrai avec mes tests.

"J'ai pris plaisir à le faire en réponse à tout ce que tu as approté au forum."
tu es très gentil et cela me touche mais sache que je ne suis plus qu'une ombre sur le forum (à mon grand désarroi car d'autres bénévolats m'occupent beaucoup!! trop même) d'une part et d'autre part, que beaucoup beaucoup d'entre vous doivent être remerciés pour tout ce qu'ils laissent comme apprentissage, conseils ect... sur XLD (dont tu es une pierre !!!) et moi aussi, c'est toujours un véritable plaisir de revenir sur xld même si c'est pour demander de l'aide ;).
 

tryptophane

XLDnaute Nouveau
Re : VBA-Recopier Valeur d'un autre fichier

Bonjour tout le monde,
Etant habitué de surfer sur XLD pour essayer de trouver de précieux conseils pour me former à VBA, je me lance à mon tour pour vous demander une petite aide pour un petit "programme" que je suis en train de réaliser. Etant donné mon expérience minime voire inexistante dans le domaine des forums et de VBA, je m'excuse d'ores et déjà pour les erreurs simples que je pourrais commettre. A commencer par l'endroit où je poste mon message. Je ne sais pas si c'est au bon endroit. Enfin soit, venons en au fait:

Mon programme consiste en un relevé journalier des clients qui viennent pour mes services. J'ai dans un classeur appelé "Relevé Clients" où se trouvent différentes feuilles que j'ajoute chaque mois. Plus clairement, chaque mois, j'ajoute une feuille pour le relevé des clients du mois. J'ai donc pour l'instant (car je viens de commencer mon activité au mois d'août) : "Août 2010" et "Relevé". "Août 2010" étant la feuille où je mets tous les rendez-vous et "relevé" est la feuille où est repris au jour-le-jour la somme que je gagne par jour. Je joins 2 "Printscreen" pour que ce soit plus compréhensible.
J'ai un deuxième classeur appelé "Fiches Clients" où je note le nom de tous les clients. (Lorsque je clique sur leur nom, je suis emmené vers une feuille à leur nom qui s'affiche car elle était masquée. Et sur cette dernière feuille qui s'affiche, il a un bouton "fermer qui masque la feuille et me ramène à la liste cfr les 2 derniers "Printscreen")
VOILA ENFIN LE PROBLEME ! :D
J'aimerais que dans chaque feuille au nom du client (donc dans le classeur "Fiches Clients") soient relevées toutes les dates auxquelles ils sont venus me rendre visite et la dernière visite(cfr dernier Printscreen). Il faudrait donc une macro qui aille chercher dans l'autre classeur la valeur "B2:F3" (=nom du client) de chaque feuille au nom du client, et me renvoyer la date qui est juste au dessus (en jaune dans mon fichier)

Est-ce possible ? En espérant recevoir une réponse favorable de votre part, je vous remercie déjà pour votre considération

Bonne journée à tous:)

Ben
 

Pièces jointes

  • Sans titre4.jpg
    Sans titre4.jpg
    29.4 KB · Affichages: 122
  • Sans titre3.jpg
    Sans titre3.jpg
    33.4 KB · Affichages: 122
  • Sans titre2.jpg
    Sans titre2.jpg
    48.7 KB · Affichages: 151
  • Sans titre5.jpg
    Sans titre5.jpg
    26.6 KB · Affichages: 121
  • Sans titre4.jpg
    Sans titre4.jpg
    29.4 KB · Affichages: 120
  • Sans titre3.jpg
    Sans titre3.jpg
    33.4 KB · Affichages: 120
  • Sans titre2.jpg
    Sans titre2.jpg
    48.7 KB · Affichages: 150
  • Sans titre5.jpg
    Sans titre5.jpg
    26.6 KB · Affichages: 101
  • Sans titre4.jpg
    Sans titre4.jpg
    29.4 KB · Affichages: 100
  • Sans titre3.jpg
    Sans titre3.jpg
    33.4 KB · Affichages: 103
  • Sans titre2.jpg
    Sans titre2.jpg
    48.7 KB · Affichages: 129
  • Sans titre5.jpg
    Sans titre5.jpg
    26.6 KB · Affichages: 123

sousou

XLDnaute Barbatruc
Re : VBA-Recopier Valeur d'un autre fichier

Bonjour Tryptophane et bienvenue sur ce forum

Dans ton cas tu devrais ouvrir une nouvelle discution, et je te propose de lire la Chartre du forum qui te consiilera sur la manière de rédiger tes demandes.
Bravo pour celui qui démarre son activité et bonne chance à toi.
Pour tes besoins, tout n'est pas vraiment claire et des exemples sont plus facile à traiter que des images.

Une première remarque sur la structure de tes besoins.
Je ne suis pas certain que ton fichier relevé soit correctement formé pour aller plus loin dans une application qui ne va cessée de générer d'autres besoins.
à priori 5 ou 6 visite par jour et si plus??
une fichier excel est d'abords un tableur et si tu veux ne pas te retrouver bloquer rapidement
une visite par ligne avec des champs heure, nom...., date
et après tous n'est que présentation.
si tu est à cheval sur cette structure tu sera vite limité.

cordialement
 

Celeda

XLDnaute Barbatruc
Re : VBA-Recopier Valeur d'un autre fichier

Bonjour tout le monde,

Merci soussou !!! cela marche au poil!! aucun problème : je regrette de n'avoir pas posté avant!!!lol!!bisous bisous!!!

Merci Hasco : j'ai bien compris pour la constante. Seul hic, vba me prévient que la réf data objects 6 est manquante sur machine :(, je vais donc essayer à la maison (j'ai 2007) mais ici aussi je suis sur 2007 ??.
En tout cas merci pour le boulot.

Et merci aussi à kjin de m'avoir accompagnée et avoir décanté la situation!!

qu'est-ce qu'on est bien à plusieurs!!!!mdr!!

j'espère que notre ami tryptophane va trouver son bonheur comme je viens de trouver le mien.


Un grand merci à vous tous et des bises à tous!!.
 
G

Guest

Guest
Re : VBA-Recopier Valeur d'un autre fichier

Re,

C'est la MSADO 6 parce que chez moi j'avais coché la 6 mais si tu as une référence inférieur 2.n c'est tout bon aussi.

Dans l'éditeur VBA -> Outils/Références/ Cocher Microsoft ActiveX DataObject 2.quelquechose

A++
 

sousou

XLDnaute Barbatruc
Re : VBA-Recopier Valeur d'un autre fichier

Content que cela te convienne, mais je cherchais un piège plus compliqué de ta part.
Evidemment la solution d'Hasco est très belle!
A bientôt dans de nouvelles aventures!
 

Celeda

XLDnaute Barbatruc
Re : VBA-Recopier Valeur d'un autre fichier

Bonjour,

Et bien avec la ref DataObject 2 c'est tout bon!!! mon capitaine!!
Merci HASCO.

oui elle est belle cette macro !!

mais sousou :
"je cherchais un piège plus compliqué de ta part"

voudrais-tu dire que je suis une femme compliquée :D ou bien que je suis compliquée :p ? ne réponds surtout pas!! lol!!
c'est vrai des fois il pourrait se glisser des incompréhensions dans mes demandes mais....c'est tellement féminin...
Je vois que tu en as l'habitude.

Encore merci pour vos aides.
 

Discussions similaires

Statistiques des forums

Discussions
312 606
Messages
2 090 183
Membres
104 441
dernier inscrit
Dobbzzz