Créer une base de données [Résolu] - Logiciels - Windows & Software
Marsh Posté le 14-06-2006 à 20:41:22
si je résume correctement :
tu as pour chaque mois un tableau de données dont l'intitulé (l'attribut) de chaque colonne est identique pour chaque mois.
Cependant les informations d'un utilisateur peuvent être variable suivant le mois.
Au final il te faut une table ayant une structure de ce type :
[date (mois/année)] [nom] [prenom] [informations sur le dossier.... ]
tu peux facilement le faire sous excel et abuser de la fonction filtre élaboré pour selectionner un nom précis par exemple.
Evidemment si la quantité devient très importante il faudra passer par une BDD avec 2 tables
personnes :
[id_perso][nom][prénom]
dossier :
[date][id_perso][informations...]
puis créer une IHM (formulaire d'ACCESS, interface PHP/MYSQL...)
Marsh Posté le 14-06-2006 à 21:43:21
Bonsoir,
J'ai retrouvé le post qui en parlait, il est question de 15000 dossiers.
Peut-être un peut lourd pour excel comme le précise jlighty, maintenant, en supposant que tu tiennes à EXCEL, peut-on savoir combien de mois sont à prendre en compte, mon idée étant tout bètement de rajouter a droite 1 colonne par mois. 12 pour une année et un nouveau fichier par an. Les filtres proposés par jlighty seront utiles, voir dans ce cas faire le rangement des éléments du filtre élaboré dans la feuille désirée si indispensable. un filtre pour sélectionner la personne et remplir la case de la colonne mois
et si nécessaire un filtre pour les non vides d'un mois donné pour le copier dans la feuille choisie.
Bonne nuit
Marsh Posté le 15-06-2006 à 09:27:48
Bonjour,
Merci pour aide. Mais, le problème est plus compliqué. Je me suis peut-être mal exprimé. Il y a 10 mois (mais je ne pense pas que ça influe sur le résultat).
Un dossier peut passer 3 fois dans l'année, un autre une seule fois, etc..
De plus, quand des dossiers repassent, ils ne repassent pas forcément en même temps.
Admettons, en janvier, mon tableau contient 150 lignes sur Excel (je m'initie à Access: je suis même au début de mon initiation).
En février, mon tableau contient 170 lignes avec des dossiers qui sont passés en janvier (disons 35), en décembre de l'année n-1 (disons 20), en octobre de l'année n-1 (disons 45) et 70 nouveaux dossiers.
Je rappelle qu'une seule colonne doit être modifiée. J'ai ainsi 100 dossiers qui sont déjà enregistrés (je veux dire sous forme d'une ligne avec des colonnes dans un tableau mais pas dans le même tableau! Les 15000 dossiers ne sont pas tous enregistrés de la sorte: c'est un peu complqué, mais un certain nombre ne le sont pas. Ils ont été enregistrés dans une petite base de donnée avec un logiciel "maison" avec juste la nom, la date de naisance et un n° de dossier. Ce logiciel ne permet pas d'exportation des données vers Excel ou une autre application du pack office: ce qui signifie que quand ils repassent, il faut que j'insère une ligne et que je saisisse la nom, le prénom, etc..). Pour information, j'ai 15 colonnes dont une qui est donc à modifier.
Si je continue sur mon exemple du mois de février, j'ai 100 dossiers qui sont déjà passés. Je n'ai donc pas à resaisir les 14 colonnes. Je récupère les lignes par ma procédure du copier/coller.
Je n'ai pas précisé par ailleurs, que je dois imprimer mon tableau. En reprenant, mon exemple, je veux imprimer un tableau corrspondant aux 150 dossiers et non pas fort heureusement toute la base.
Je n'arrive pas à comprendre comment utiliser le filtre. Je vois à peu près comment, il va me permettre de sélectionner un nom et faire la modification dans le tableau mais comment ne faire apparaître que les 150 noms (correspondant aux 150 dossiers).
Ce n'est pas du tout simple. C'est un tour à donner la migraine.
Merci pour vos réponses
Marsh Posté le 15-06-2006 à 09:55:15
Bonjour,
Doliprane pour la migraine, mais ne pas abuser.
POur simplifier peux-tu envoyer un modèle avec une feuille contenant les 15000 dossiers (on va dire 15) sur la feuille 1
puis 3 sur la feuille 2 pour le mois de janvier
puis 5 sur la 3 pour février
avec surtout dans la zône modifiable la logueur exacte de la colonne
Merci
Cordialement
Marsh Posté le 15-06-2006 à 10:40:47
Rebonjour,
Plutôt Prozac, non?
Le problème.....c'st que je en sais pas comment, il faut faire! (je vous ai entendu rire, vous!). Je pense qu'il faut éditer mais après (ppp!). J'essaie de faire une copie d'écran mais rien à faire.
Marsh Posté le 15-06-2006 à 10:48:46
lol seniorpapou - TAM136, le duo de choc !
Sinon si tous tes tableaux sont identiques (je parles des entetes de colonnes) une union de tableau dans une feuille et une exportation sous Access me semble plus approprié pour pouvoir travaillé en parallele sur un historique et sur le travail en cours...
Marsh Posté le 15-06-2006 à 12:30:48
Salut dje69r,
Alors, comme ça on veut rentrer dans la danse. Attention, c'est le genre de danse où il ne doit en rester qu'un.
Merci de t'intéresser à mon cas en tout cas!! Effectivement, les en-têtes de colonnes sont identiques.Unir mes tableaux pourquoi pas mais le problème (eh oui, je n'ai que des problèmes) est que j'ai une multitude de tableaux. J'ai dit plus haut, que je travaille sur 12 mois (mais les dossiers peuvent remonter à n-1, n-2, n-3, etc...). Ah, si vous pouviez entrer dans mon esprit pour comprendre. Pour ce qui est d'Access, j'essaie d'apprendre.
Avec mes messages, les membres du forum, vont être obligés de créer un forum anti-mal de crâne.
Marsh Posté le 15-06-2006 à 13:17:08
TAM136 est sponsorisé par UPSA ! mdr
Hum oui tu as moultes fichier, mais ca ne gene en rien... Ca va justre mettre un peu de temps pour unifier tout tes tableaux, et surement ajouter une colonne genre "Année" pour qu'une fois dans Access on puisse retrouver tes petits
My name is Leod, Mac Leod "Moi aussi je suis content dte voir Ramirez"... Scene culte !
Marsh Posté le 15-06-2006 à 14:34:05
HS: pour dje69r, j'ai vu que tu allais partout dans hardware, alors tu peux peut-être me répondre
Voilà, j'ai acheté une souris filaire et optique,usb et ps2 (microsoft basic optical mouse); bien sûr elle est indisciplinée et pèriodiquement elle s'échape vers des horizons qui ne sont pas les miens, ce n'est pas une panne souris parceque je l'ai changée immédiatement pas un pb driver , m^chose en ps2 ou usb
je n'ai pas trouvé de réponse sur le site.; en as-tu vu?
Cordialement
Marsh Posté le 15-06-2006 à 15:14:55
As tu essayer de changer de clavier ? Je me souviens avoir lu des posts de ce genre, incompatibilité souris optique usb Crosoft avec clavier de chez Crosoft. Le pourquoi du comment aucune idée... Mais c'est deja une piste...
Ensuite, je suis dsl, mais ma curiosité m'oblige a poser cette question lol : As tu un tapis de souris ? Si oui est il tres coloré ? Car certaine souris optique sont sensibles a la couleur des tapis... Pareil avec les sous mains (les crenelures du papier, invisibles pour notre oeil, les mulots mixomatosiens aiment pô trop trop)
PS : Ma souris sur mon ordi de bureau (Dell) a la maladie de parkinson, rien n'y fait... Meme pas un super tapis de souris avec repose poignet en gel...
Lol je vais partout... Je suis un tres grand voyageur. Moyen de transport préféré : Chaise de bureau
Marsh Posté le 15-06-2006 à 16:34:59
Bonsoir, merci de répondre, j'ai essayé avec tapis, sans tapis, avec papier uni, coloré bleu, quadrillé(sur les conseils de microsoft) , j'ai installé intellipoint, ils veulent gagner des sous en me faisant éliminer 1 par 1 les processus installés au téléphone. Je vais racheter un vieux modèle cela me coutera moins cher!!!
Cordialement
Marsh Posté le 15-06-2006 à 16:36:47
Citation : As tu essayer de changer de clavier ? Je me souviens avoir lu des posts de ce genre, incompatibilité souris optique usb Crosoft avec clavier de chez Crosoft. Le pourquoi du comment aucune idée... |
?
Marsh Posté le 15-06-2006 à 18:43:29
Bonsoir,
Soyez sympa, mélangez pas les posts. Déjà que le mien est dur (c'est un euphémisme) à expliquer, alors si vous rajouter des questions qui n'ont rien à voir, je ne vous dis pas dans quel état vont être les autres. Imaginez: plus personne pour supporter les bleus (le bateau prend déjà l'eau).
Marsh Posté le 15-06-2006 à 18:48:42
Citation : Les 15000 dossiers ne sont pas tous enregistrés de la sorte: c'est un peu complqué, mais un certain nombre ne le sont pas. Ils ont été enregistrés dans une petite base de donnée avec un logiciel "maison" avec juste la nom, la date de naisance et un n° de dossier. Ce logiciel ne permet pas d'exportation des données vers Excel ou une autre application du pack office: ce qui signifie que quand ils repassent, il faut que j'insère une ligne et que je saisisse la nom, le prénom, etc..).Les 15000 dossiers ne sont pas tous enregistrés de la sorte: c'est un peu complqué, mais un certain nombre ne le sont pas. Ils ont été enregistrés dans une petite base de donnée avec un logiciel "maison" avec juste la nom, la date de naisance et un n° de dossier. Ce logiciel ne permet pas d'exportation des données vers Excel ou une autre application du pack office: ce qui signifie que quand ils repassent, il faut que j'insère une ligne et que je saisisse la nom, le prénom, etc..). |
Il n'y a pas de possibilité pour la BDD d'exporter en format txt (csv) ?
En fait la solution de copier/coller provient du fait que les données de cette base de données ne sont incluent dans le fichier Excel.
En lisant la fin de ton explication, je voudrais savoir si un dossier est indépendant vis à vis d'une date (hors mise à jour normale)
Marsh Posté le 15-06-2006 à 19:19:46
Bonsoir,
Pour ce qui est de la base de données maison, on ne peut absolument rien en faire (ce n'est pas moi qui l'ai créée: je ne dis pas ça pour accabler celui qui l'a faite mais il l'a faite surtout comme une base permettant de retrouver les dossiers dans les armoires: imaginez qu'il faille retrouver le dossier 9652!).
Pour ce qui est de savoir si un dossier est indépendant d'une date, je dois avouer que je n'ai pas trop compris ta question mais je pense que peux répondre oui dans la mesure où un dossier peut revenir trois mois plus tard par exemple. Quand, je dois faire repasser le dossier,je cherche dans la base de données maison le n° de celui-ci. Je vais dans l'arrmoire récupérer le dossier. Je l'ouvre afin de vérifier la date du dernier passage. Je cherche sur ma machine le fichier correspondant. Admettons que le passage des dossiers se fait en janvier 06, je vais appeler mon fichier janvier06.xls. Un dossier repasse en avril 06, je vais ouvrir le fichier janvier06.xls. Je vais copier la ligne et la coller dans le fichier avril06.xls
Merci
Marsh Posté le 15-06-2006 à 20:09:39
Citation : Pour ce qui est de savoir si un dossier est indépendant d'une date, je dois avouer que je n'ai pas trop compris ta question |
Un exemple :
en Janvier 2006, le dossier "102" contient les données nommées "A"
en Avril 2006, le contenu du dossier "102" est modifié est contient des données nommées "B"
Est t-il intéressant de garder les données "A", donc enregistrer le couple (modification, date) ?
Si la réponse est non, alors le contenu du dossier est indépendant de la date.
D'autre part, doit t-on garder l'historique de passage d'un dossier (i.e savoir qu'un dossier est déjà passé en Avril 2005, Septembre 2005...) ?
Si tu as commencé à regarder ACCESS, je te conseille d'utiliser ce schéma de 2 tables :
dossier:
[numéro dossier] [date_passage] [id_utilisateur] [informations complémentaires...]
utilisateur:
[id_utilisateur] [nom] [prenom] [autres infos : adresse...]
Marsh Posté le 15-06-2006 à 20:57:47
Bonsoir,
Tam136, désolé pour la souris, tu as raison
Jlighty est-ce que le numéro de dossier n'est pas déjà l'identifiant de l' "utilisateur" , j'ai cru comprendre que lorsque l'on traitait un utilisateur, on allait chercher son dossier.
Tam136 laisse toi tenter par Access, ta gestion de dossier est évidente avec.
En plus on pourra te faire (ou faire faire) une petite moulinette pour récupèrer tes données actuelles et les répartir dans ta bdd.
Ensuite, ton suivi de dossier sera extrèmement simple.
Pour ton ancienne base, elle est écrite en quel langage? En posant la question, on peut peut-être trouver quelqu'un qui aurait encore le compilateur???
Cordialement
Marsh Posté le 16-06-2006 à 17:57:36
Bonsoir,
Pour ce qui est de la base, malheureusement, je ne sais pas. Tu sais, c'est une personne qui l' a faite parce que les personnes ont fait un classement non pas par ordre alphabétique de dossiers (DUPOND, DURAND..) mais par ordre numérologique en raison des homonymies. Donc, l'objectif de cette "base de données" n'est pas un traitement à proprement dit des dossiers mais simplement une base permettant de retrouver les dossiers.
Je ne pense pas qu'il faille essayer de partir de cette base. Je ne suis pas un pro de l'informatique. J'appelle ça base de données parce qu'effectivement, il y a des données mais c'est une base très sommaire. Ce serait trop compliqué d'exporter les données vers access ou excel et je dirais même strictement impossible. La conséquence est qu'il faut réenregistrer quasiment tous les dossiers directement sur excel ou sur access.
Reste le problème du traitement de dossiers. Il faut bien comprendre que les anciens (pardon, ça ne s'adresse pas à toi mon cher seniorpapou) travaillaient avec les moyens du bord (à la main sur papier parfois, sic!).
Ah, si quelqu'un pouvait m'expliquer comment faire des copies d'écrans pour que ce soit un peu plus clair.
Je clique bien sur Impr écran sur mon fichier excel mais quand j'ouvre le menu contextuel de la souris, le menu coller est indisponible.
Je veux bien essayer access mais honnêtement, je suis au bas du Mont Everest.
Marsh Posté le 16-06-2006 à 18:32:15
Bonsoir,
"Reste le problème du traitement de dossiers. Il faut bien comprendre que les anciens (pardon, ça ne s'adresse pas à toi mon cher seniorpapou) travaillaient avec les moyens du bord (à la main sur papier parfois, sic!). "
C'est vrai, et j'avoue que nous avons eu beaucoup de mal à les amener à l'informatique. J'espère que l'on aura moins de mal a t'amener a ACCESS. Sans trahir de secret professionnel donnes le détail actuel de ton tableau "individu" , et de ton tableau dossiers mensuel ( colonnes, nom de colonne si existe, taille des colonnes nb de caractères. Je te ferai une bdd simplifiée et un petit formulaire de démarrage. Et aprés, tu verras que c'est plus facile que tu ne le crains. Pour passer tes données vers ACCESS on peut les exporter, tu as du voir cette possibilité. Sur le forum tu vas trouver des guides de montagne qui t'aideront à monter
Cordialment
Marsh Posté le 16-06-2006 à 20:00:13
Bien le bonsoir les mordus d'Excel et Access lol
Si je puis me permettre, ne serait ce pas plus facile que vous en parlier sur un logiciel genre msn ? Pour avoir des questions et des réponses au tacotac, echanger des fichiers, des aprecus etc....
Enfin ce n'est que mon avis hein
Marsh Posté le 16-06-2006 à 20:46:11
Rebonsoir
Mon tableau compte 14 colonnes
1ère colonne: Confidentiel nb de caractères =1 à 3
Taille= 0,7 cm
2nde colonne: Confidentiel nb de caractères= 1
Taille= 0,4 cm
3ème colonne: Civilité nb de caractères=2,3 ou 4
Taille= 0,5 cm
4ème colonne: n° de dossier nb de caractères= 1 à 5
Taille= 0,4 cm
5ème colonne: Prénom suivi du nom nb de caractères indéfini
Taille: 3,1 cm
6ème colonne: Adresse nb de caractères indéfini
Taille= 3,1 cm
7ème colonne: Confidentiel nb de caractères= 8
Taille= 0,6
8ème colonne: Catégorie socio-professionnelle
Taille= 2,3 cm
9ème colonne: Date de naissance nb de caractères= 8 jj/mm/06
Taille= 0,7 cm
10ème colonne: Confidentiel nb de caractères indéfini
Taille= 5,8 cm
11ème colonne: Confidentiel nb de caractères indéfini
Taille= 4,1 cm
12ème colonne Confidentiel nb de caractères indéfini
Taille= 3 cm
13ème colonne: Confidentiel nb de caractères= 8
Taille= 0,6 cm
14ème colonne Confidentiel nb de carctères indéfini
Taille= 3,5 cm
Bon, bien entendu, c'est le fond qui m'intéresse. Donc, tu peux parfaitement changer la taille des colonnes. En fait, il ya des retours automatiques à la ligne. Après un publipostage, par contre; là, les informations sont bien en ligne. Par exemple, dans le tableau, il y a le nom Jean-Truc DUPONT-DURAND DE LA BIDULERIE qui apparaît comme
Jean-Truc DUPONT-DURAND
DE LA BIDULERIE
la taille de la colonne étant fixe
La 10 ème colonne subit des modifications. Les autres ont toujours le même contenu
Merci encore de t'intéresser à ce cas
Marsh Posté le 16-06-2006 à 21:00:17
Bonsoir,
je suis tout à fait d'accord, d'ailleurs j'ai déjà communiqué mon msn à TAM136. il y a quelques jours. Mais, dans ce cas, il serait correct que de, temps en temps, TAM136 post ici pour tenir au courant jlighty .
Cordialement
ps, je viens de voir en validant que TAM136 avait posté
Marsh Posté le 16-06-2006 à 21:34:22
Bonsoir jlighty et sniorpapou et à tout le forum
Appremment, j'ai du manquer un épisode car ton dernier post seniorpapou est quelque peu sybillin.
J'ai essayé d'expliquer qu'un dossier repass et qu'à ce titre je reprends toutes les informtions des 13 colonnes fixes. Don à ce titren je garde effectivement un historique.
Pour ce qui est de l'utilisation d'access, je m'y mets. J'essaie de mettre la charrue avant les boeufs. Il faut d'abord que je comprenne l'utilisation de ce logiciel avant de pouvoir dire si access va me permettre de résoudre mon problème.
A priori oui, d'après vos messages.
Excuses moi donc jlighty si je n'ai pas appliqué ta méthode:
[numéro dossier] [date_passage] [id_utilisateur] [informations complémentaires...]
utilisateur:
[id_utilisateur] [nom] [prenom] [autres infos : adresse...]
et si je ne t'ai pas tenu au courant
Pour l'instant, je t'avoue, que ça ne me dit rien.
Marsh Posté le 16-06-2006 à 21:55:39
Citation : J'ai essayé d'expliquer qu'un dossier repass et qu'à ce titre je reprends toutes les informtions des 13 colonnes fixes. Don à ce titren je garde effectivement un historique. |
Il faudra dans un premier temps définir le schéma de ta base de données c'est à dire la manière dont tes informations seront stockées dans la base de données. Ensuite il faudra créer des procédures pour saisir ces données (i.e formulaires d'ACCESS par ex)
Citation : J'ai essayé d'expliquer qu'un dossier repass et qu'à ce titre je reprends toutes les informtions des 13 colonnes fixes. Don à ce titren je garde effectivement un historique. |
je ne comprend pas, quand tu repasses un dossier, les informations des 13 colonnes peuvent t-elles être modifiées ?
PS: pas de MSN pour ma part car
1- je n'ai pas MSN
2- c'est un forum, il serait sage de diffuser nos idées afin qu'une tierse personne puisse les améliorer.
Marsh Posté le 16-06-2006 à 22:17:29
Bonsoir,
pour TAM136, mon post est arrivé après le tien, parce que tu as validé ta réponse pendant que je le tapais, c'était une réponse à dje69r. juste au dessus. les colonnes avec nombre de caractères indéfinis ( 10,11,12,14) ont quand même un ordre de taille (un écran, 20lignes > 255 caractères?
Pour jlighty le 2- c'est un forum.. correspond en gros à ce que je dit dans mon post précédent.
Bonne soirée,nuit
Marsh Posté le 16-06-2006 à 22:25:08
Bonsoir,
Les informations contenues dans ces 13 colonnes sont des informations de type fiche signalétique: prénom et nom, date de naissance, n° de dossier, etc...Donc, elles ne sont pas modifiées. C'est la raison pour laquelle, je veux trouver le moyen de récupérer ces informations sans avoir à les ressaisir.
Si le sens de ta question est "ces informations sont-elles modifiables techniquement: format, mise en forme, etc...? La réponse est oui pour l'instant: je n'ai pas mis de protection sur ma feuille.
Pour ce qui est du partage des informations sur le forum, je n'y suis pas opposé. Par contre, je t'avoue, que je ne maîtrise pas toutes les subtilités comme coller une copie d'écran par exemple.
Marsh Posté le 16-06-2006 à 22:33:09
Citation : Les informations contenues dans ces 13 colonnes sont des informations de type fiche signalétique: prénom et nom, date de naissance, n° de dossier, etc...Donc, elles ne sont pas modifiées. |
Une autre question :
pour un numéro de dossier donné, il n'y a qu'une seule personne associée ? et reciproquement ?
Citation : C'est la raison pour laquelle, je veux trouver le moyen de récupérer ces informations sans avoir à les ressaisir. |
Il faudrait que tu nous donnes le nom du logiciel qui a servis à stocker les données.
Citation : Si le sens de ta question est "ces informations sont-elles modifiables techniquement: format, mise en forme, etc...? La réponse est oui pour l'instant: je n'ai pas mis de protection sur ma feuille. |
Pour l'instant on ne parle pas encore de la mise en forme, mais seulement de la possibilité de modifier le contenu de ces informations.
Citation : Par contre, je t'avoue, que je ne maîtrise pas toutes les subtilités comme coller une copie d'écran par exemple. |
utilise paint pour récupérer l'image capturée dans le presse papier puis sauvegarde la en .jpg pour ensuite l'heberger sur un site spécialisé (ex: http://www.imageshack.us/ )
Marsh Posté le 16-06-2006 à 23:02:26
Rebonsoir
Un seul n° de dossier par personne. Une personne a un seul n° de dossier.
Le logiciel qui stocke les infos n'est pas un logiciel qui existe sur le marché: en accès gratuit ou payant d'ailleurs. Il a été fait par une personne qui est partie. Je ne sais absolument pas comment, cette personne l'a créé.
Marsh Posté le 16-06-2006 à 23:38:19
TAM136, tu n'as pas la possibilité de nous envoyer un echantillon de ce dit fichier ? Que je puisse me pencher un peu dessus, histoire de cerner le probleme, car la j'avoue que j'ai un peu de mal.
Marsh Posté le 01-07-2006 à 14:36:46
TAM136 a écrit : Rebonsoir |
mode d'emploi:
Je suppose que tous tes fichiers mois sont dans un même
répertoire et qu'ils sont les seuls .xls de ce répertoire.
Si ce n'est pas le cas, pourras-tu le faire??
Fonctionnement prévu:
tu ouvres le fichier mois où tu veux introduire un visiteur
tu te positionne sur la ligne où tu veux insérer sa fiche
tu lances la macro
tu réponds à 2 questions:
1) le numéro visiteur (un return sans info=sortie de
la macro)
2) le nom du fichier où aller chercher la fiche précédente
a) un return sans info = sortie de la macro
b) une * demande le ballayage de tous les
fichiers mois avec affichage d'un fichier où il existe
la réponse OUI lance le copier coller
la réponse NON fait passer à la
recherche du fichier mois suivant où il existe
c) la frappe du nom complet (cinqjanvierzerosix)
ouvre directement le fichier mois indiqué et fait le copier
coller si le numéro est présent bien entendu
Tu as intéret à mettre l'appel de ta macro en icône dans une barre de tâche
pour gagner du temps
--------------------------------------------------------------------------------------
Sub importdepuislepremiertrouvé()
'MsgBox ActiveDocument.Path & Application.PathSeparator & _
ActiveDocument.Name
ThisWorkbook.Activate
monnom = ThisWorkbook.Name
numero = InputBox("Donnez le numéro du visiteur" )
If IsNull(numero) Or numero = "" Or numero = " " Then Exit Sub
fifi = InputBox("Donnez le nom du fichier dernier passage" )
If IsNull(fifi) Or fifi = "" Or fifi = " " Then Exit Sub
pp = ThisWorkbook.Path
Loogu = Len(pp)
Set fs = Application.FileSearch
With fs
.LookIn = pp
If fifi <> "*" Then .Filename = fifi
.FileType = msoFileTypeExcelWorkbooks
If .Execute(SortBy:=msoSortByLastModified, _
SortOrder:=msoSortOrderDescending) > 0 Then
For i = 1 To .FoundFiles.Count
fname = Mid(.FoundFiles(i), Loogu + 2, Len(.FoundFiles(i)) -
Len(Loogu))
If Left(fname, 1) <> "~" And fname <> monnom Then
Workbooks.Open Filename:=.FoundFiles(i)
fname = Mid(.FoundFiles(i), Loogu + 2, Len(.FoundFiles(i)) -
Len(Loogu))
Windows(fname).Activate
Columns("D:D" ).Select
Set c = Selection.Find(numero, LookIn:=xlValues,
LookAt:=xlWhole)
If Not c Is Nothing Then
rep = vbYes
If fifi = "*" Then rep = MsgBox(.FoundFiles(i), vbYesNo)
If rep = vbYes Then
coor = c.Address
Range(c.Address).Select
Selection.Activate
ActiveCell.EntireRow.Copy
ActiveWorkbook.Close
Windows(monnom).Activate
nomwork = ActiveSheet.Name
ralig = ActiveCell.Row
ActiveSheet.Paste
Destination:=Worksheets(nomwork).Range(Cells(ralig, 1), Cells(ralig, 13))
Exit Sub
End If 'vbyes
End If 'du if not
ActiveWorkbook.Close
End If 'du left
Next i
Else
MsgBox "Y a pas de fichier xls"
End If
End With
End Sub
Marsh Posté le 01-07-2006 à 20:18:08
Bonsoir,
Merci encore beaucoup. La macro est parfaite. Elle permet exactement de faire ce que je souhaite, à savoir, récupérer les dossiers désirés et à bien les regrouper en un tableau synthétique, et de façon simple. Il n'était donc pas visiblement nécessaire d'utiliser Access.
Merci également à tous ceux qui ont essayé de me guider.
Ah, si tu pouvais aider nos chers bleus à passer contre le Brésil!
Marsh Posté le 01-07-2006 à 23:15:34
Merci aux BLEUS, cette fois-ci. Ils assurent de plus en plus!!
Marsh Posté le 02-07-2006 à 10:14:49
Bonjour,
Juste une petite question complémentaire. Après exécution de la macro, j'ai une fenêtre qui s'ouvre: "Le presse-papier contient..."Je souhaiterais ne plus voir cette fenêtre. Je pense qu'il faut insérer une instruction du type: AlertDisplays=0. J'essaie de l'insérer à divers endroits dans le code mais sans succès.
Est-ce que tu penses qu'il est possible de ne pas faire apparaître cette fenêtre?
Merci
Marsh Posté le 02-07-2006 à 13:37:50
Bonjour,
je n'ai pas trouvé le moyen de la faire disparaître, ( je n'ai pas eu le courage de chercher, le premier qui trouve a gagné)
Cordialement
Marsh Posté le 02-07-2006 à 14:19:38
seniorpapou a écrit : Bonjour, |
Si cela foctionne, j'ai gagné: voir 3 lignes declare function+le vide le presse papier après collage
Declare Function CloseClipboard Lib "user32" () As Long
Declare Function EmptyClipboard Lib "user32" () As Long
Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long
Sub importdepuislepremiertrouvé()
'
'
'
'
'
'MsgBox ActiveDocument.Path & Application.PathSeparator & _
ActiveDocument.Name
ThisWorkbook.Activate
monnom = ThisWorkbook.Name
numero = InputBox("Donnez le numéro du visiteur" )
If IsNull(numero) Or numero = "" Or numero = " " Then Exit Sub
fifi = InputBox("Donnez le nom du fichier dernier passage" )
If IsNull(fifi) Or fifi = "" Or fifi = " " Then Exit Sub
pp = ThisWorkbook.Path
Loogu = Len(pp)
Set fs = Application.FileSearch
With fs
.LookIn = pp
If fifi <> "*" Then .Filename = fifi
.FileType = msoFileTypeExcelWorkbooks
If .Execute(SortBy:=msoSortByLastModified, _
SortOrder:=msoSortOrderDescending) > 0 Then
For i = 1 To .FoundFiles.Count
fname = Mid(.FoundFiles(i), Loogu + 2, Len(.FoundFiles(i)) - Len(Loogu))
If Left(fname, 1) <> "~" And fname <> monnom Then
Workbooks.Open Filename:=.FoundFiles(i)
fname = Mid(.FoundFiles(i), Loogu + 2, Len(.FoundFiles(i)) - Len(Loogu))
Windows(fname).Activate
Columns("D:D" ).Select
Set c = Selection.Find(numero, LookIn:=xlValues, LookAt:=xlWhole)
If Not c Is Nothing Then
rep = vbYes
If fifi = "*" Then rep = MsgBox(.FoundFiles(i), vbYesNo)
If rep = vbYes Then
coor = c.Address
Range(c.Address).Select
Selection.Activate
ActiveCell.EntireRow.Copy
Windows(monnom).Activate
nomwork = ActiveSheet.Name
ralig = ActiveCell.Row
ActiveSheet.Paste Destination:=Worksheets(nomwork).Range(Cells(ralig, 1), Cells(ralig, 13))
'-------------------------------------------------------------------------------------------------
'------------------------vide le presse-papiers après collage------------------------------------
Windows(fname).Activate
OpenClipboard 0&
EmptyClipboard
CloseClipboard
ActiveWorkbook.Close
'-------------------------------------------------------------------------------------------------
Windows(monnom).Activate
Exit Sub
End If 'vbyes
End If 'du if not
ActiveWorkbook.Close
End If 'du left
Next i
Else
MsgBox "Y a pas de fichier xls"
End If
End With
End Sub
Marsh Posté le 02-07-2006 à 15:23:25
Rebonjour,
Je bloque sur le code. Est-ce que je dois copier le code, tel quel? Je n'arrive pas à comprendre oùu je dois coller les 3 lignes supplémentaires. J'ai une Erreur de compilation: Seuls des commentaires peuvent apparaître après End Sub, End Function, ou End Property
Marsh Posté le 02-07-2006 à 15:36:50
attends, je refais un essai en copiant ce que je t'ai envoyé, normalement tu copies tout depuis declare .....jusqu'à end sub tu colles dans un module (changes le nom de la macro éventuellement, si tu gardes l'autre par précaution)
à tout à l'heure
Marsh Posté le 02-07-2006 à 15:45:40
c'est bon, j'ai retiré un smiley squater , tu copies tout et tu remplaces l'ancienne macro par celle-là. les "declare" sont avant le sub...
mais comme il n'y a pas que cette modif, j'ai déplacé des lignes et ajouter la séquence de vidage du clipboard le mieux est de tout copier
j'attends ton essai
Marsh Posté le 14-06-2006 à 20:24:20
Rebonsoir Seniorpapou
Voici donc mon problème. Il n'est pas du tout simple.
J'ai des tableaux. Ils sont sur Excel mais peut-être qu'il faut utiliser Access.
En fait, chaque tableau est classique: des lignes et des colonnes. Le nombre de colonnes est fixe. Le nombre de lignes est variable.
Je dois faire une synthèse de plusieurs dossiers dans chaque tableau. Une ligne représente un dossier. Un tableau représente donc plusieurs dossiers. Comme je l'ai dit le nombre de colonnes est fixe: une colonne pour le nom, une autre pour le prénom, la troisième pour la date de naissance, etc...
J'ai un fichier par mois, soit un tableau.
Seulement, un dossier peut revenir avec une périodicité irrégulière.
Admettons: le dossier de Jean-Jean TRUC passe en janvier pour la première fois, le dossier de Michel BIDULE passe en février. Je crée donc une ligne avec les différentes informations qui vont figurer dans chacune des colonnes. Il y a une colonne qui varie d'un mois à l'autre (et non sur l'autre car comme je l'ai dit, la périodicité est irrégulière).
En avril, je dois à nouveau traiter le dossier de Jean-Jean TRUC et de Michel BIDULE . Je ne vais pas pas resaisir leur prénom, leur nom, etc...J'ouvre donc le fichier de janvier, je vais chercher et copier la ligne de Jean-Jean TRUC, fermer le fichier de janvier et coller la ligne ou insérer cette ligne dans le tableau du mois d'avril. Ensuite, je vais ouvrir le fichier de février afin de copier la ligne de BIDULE, fermer le dossier de février et insérer la ligne de BIDULE dans le fichier du mois d'avril.
J'espère être clair. Le problème est qu'il y a plusieurs dossiers qui repassent, donc il faut sans cesse aller ouvrir le fichier du mois antérieur, copier la ligne, fermer le fichier pour aller insérer la ligne dans le fichier du mois en cours. La procédure est franchement assez fastidieuse
Si tu as compris quelquechose, est-ce que tu vois comment procéder? Je cherche une procédure plus simple. Attention, je ne connais pas les dossiers qui repassent (et pour cause certains ne repassent pas) et je ne connais pas non plus leur périodicité. Seules les informations contenues dans une colonne sont à modifier d'un mois à l'autre (le nom, le prénom, etc... par définition ne changent pas). Donc, comment récupérer les informations de la façon la plus silmple possible? Je pourrais créer un tabeau immense (un seul fichier qui servirait de modèle) et masquer les lignes correspondant aux dossiers qui ne repasent pas mais c'est trop lourd: le nombre de dossiers est trop important.
Merci
Message édité par TAM136 le 01-07-2006 à 20:20:07