Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

compliquez vous la vie celle ci vous le rendra

D

dIDIER 2

Guest
bonjour a tous
Un petit probleme pour vous dilater l'esprit en ce Froid weekend.
Inutile d'aller dehor il fait trop froid, planchez donc sur mon ptit probleme.


( je tourne avec excel l997 sous windaube NT ou 98)

probleme:

j'ai un classeur source qui doit lire et prendre dans d'autre classeurs fermés des informations.

Les noms de tout ces classeurs fermés sont variable en fonction de la semaine, du n°point de vente,des heures complémentaires

Il se présente tous sous cette forme au nivau de leur nom.
N°semain........pvt.......heure comp.......xls (a la place des pointillé se sont des valeurs variable et aléatoir en fonction des donées de ces classeurs) ,et ils sont tous dans le même répertoir windaube (c/heures)

Mon big probleme
Dans le classeur source en tapant le n° de la semaine
j'aimerais voir apparaitre toutes les données des classeurs concernés.

Par exemple si je selectionne dans le classeur source
la semaine 22

les informations des cellules A1et B1 De la Feuille 1 de tout les classeurs concernés par la semaine 22 doivent m'apparaitre dans le classeur source.

Ainsi je devrais optenir Des informations sur les cellule A1 et B1des classeurs suivant (au hasard)
N°semain 22 pvt 4120 heure comp 0xls
N°semain 22 pvt 4125 heure comp 10xls
N°semain 22 pvt 4135 heure comp 2xls
N°semain 22 pvt 4155 heure comp 207xls
N°semain 22 pvt 4160 heure comp 99xls
etc
Vous remarquerez que a part le N° de semaine aucune des autres données chiffré n'est fixe. J'ai classé les points de vente dans un ordre chronologique,
mais cela n'est pas obligatoire (mais il ne dépasse pas 4 chiffres).
pour les heures cela ne dépasse pas trois chiffre.
Pour un même N° de semaine il ne peut pas exister plus de 34 classeurs (moins c'est possible)
Le total de tout ces classeurs dans le répertoire windaube n'excede pas 2000 (il ne peut pas y avoir de doublon "windaube oblige par contre un même N° de semaine avec le même n°de point de vente peut exister avec une différence d'heure.....cela doit apparaitre dans le classeur source")

Un conseil une idée, une macro une démo sont les bienvenues

Je bloque vraiment et presque a tous les niveaux.
crdlmt
Didier2
 
D

dIDIER 2

Guest
re
34 est le chiffre maximum de fichier que je peux recevoir par semaine.
Par contre toutes les fichier des semaines sont stocké au même endroit (heures)
si l'on multiplie 34 par 52 semaines on optient 1768 fichier xl arrondi 1800 ou 2000

Peut importe le temps pourvu que tout soit traiter (cela peut tourner la nuit)

a plus didier

j'oublier les 1800 fichier sont théhorique puisque une fois passer un délai de trois mois on efface les fichiers ou on les déplacent dans un autre répértoire. Donc a raison de 34fois5 fichiers par mois sur trois mois on n'a plus que 510 fichier arrondi a 600

merci
 
@

@+Thierry

Guest
OK Didier je te fais un code...

Mais ptet pas la nuit mais au moins 2/3 heures !! mais je vais essayer de cibler les fichiers à ouvrir en fonction des 13 digits de gauche...

à de suite...
@+THierry
 
D

dIDIER 2

Guest
merci thierry
Si tu y arrive chapeau
Je doit m'absenté toute la journée, je te recontact ce soir.
Veux tu que je t'envoie les fichier zip don je parle plus haut a titre d'exemple ?
crdlmt
Didier
 
@

@+Thierry

Guest
Bon, j'ai fais ceci

Chez moi je n'ai pas tes répertoires ni tes fichiers... Mais çà marche...

Option Explicit

Sub OuvrirLesFichiersParSemaine()
Dim F As Variant
Dim Chemin As String
Dim Semaine As String

Chemin = "C:\Heures"
Semaine = Format(Sheets("Tafeuille").Range("A1").Value, "00") 'à ajuster

With Application.FileSearch
.NewSearch
.LookIn = Chemin
.Filename = "*.xls"
.Execute
On Error Resume Next
For Each F In .FoundFiles
If Left(F, 22) = Chemin & "\No Semain " & Semaine Then
Workbooks.Open F
Traitement
End If
Next F
End With
End Sub

Sub Impression()
Worbooks("ClasseurMaitre.xls").Sheet("TaFeuilleMaitre").Range("A1").Value = ActiveSheet.Range("A1").Value
ActiveWorkbook.Close 0
End Sub


En fait chez moi j'ai testé comme ceci :
Sub OuvrirTousLesFichiers()
Dim F As Variant
With Application.FileSearch
.NewSearch
.LookIn = "C:\mes documents"
.Filename = "*.xls"
.Execute
On Error Resume Next
For Each F In .FoundFiles
If Left(F, 20) = "C:\Mes documents\USF" Then
Workbooks.Open F
End If
Next F
End With
End Sub

Et j'ai bien ouvert tous les fichiers dont le nom commence par USF (et il y en a !! toutes mes démos !! lol)

Là ou il faut faire attention c'est le left(F, 20) ... 20 comprend le nombre de digits du path (chemin complet + le nom du fichier avec les anti-slash)...

Voilà avec ceci ce devrait prendre et ouvrir que les bon fichiers........ en fonction de leur numéro de semaine... Donc plus rapide...
La macro traitement est à adapter of course !!

Bon Dimanche
@+Thierry
 
@

@+Thierry

Guest
Oups

Attention à changer le nom de macro "Impression" par "Traitement" (j'ai copié en fait le code que j'avais donné en urgence à Elsa Ce lien n'existe plus où elle ne m'a jamais répondu... et c'était une demande "Urgente" pour imprimer en masse des fichiers de tout un répertoire... (D'où le nom de la macro "Impression")

Heureux que ce travail puisse te servir ...

@+Thierry
 
S

spirou - christophe

Guest
Salut Thierry

Et bien je suis content de t'entendre dire c'est plus simple dans mon cas. çà m'encourage à continuer
car je me pose pas mal de question.

Donc il faut que je me base sur le code sur les feuilles dont j'ai fais la demande.
sur le Même principe

Par rapport au code que tu m'a donnés
http://www.excel-downloads.com/html/French/forum/read.php?f=1&i=16656&t=16656$

1°) Comment intégrer à ce code la variable qui sera sélectionné par le choix de l'entreprise
et la version du fichier qui correspond à un nom et un répertoire. (Pour éviter d'être répétitif)

et dont la valeur sera lu et renvoyé dans un textebox. Puis ensuite écrire dans un autre classeur
à un autre emplacement.

2°) Comment intégrer dans une fonction un paramètre qui est et doit être falcultif dans la recherche d'un fichier.

3°) Comment sélectioner une zone de la feuille en premant en compte le texbox qui détermine
la sélection.

je croix que dans l'ensemble de ces trois questions figurent l'intégration des variables soit
dans la recherche d'un fichier, ou dans l'intégration d'une zone de sélection.


@+
Spirou - christophe
 
D

dIDIER 2

Guest
salut thierry
cela àl'air de fonctionner a merveille aprés une ou deux petits modifs. Un peu lent mais cela fonctionnent bien et c'est ce qui compte.
Bravo au maître,

pour revenir a notre discution sur ce fil que je viens de relire,
qu'appelles tu "noms de fichiers structurés", les miens m'apparaissent pourtant bien structuré.
Le fait de rajouter"_"a la place des espaces dans le nom des fichier a-t-il un importance, ou faut-il plus tot avoir des noms de fichiers qui se suivent du genre A, B, C, D, E, F etc OU 1, 2, 3, 4 etc

a+
Didier
 
@

@+Thierry

Guest
Salut Didier Two et Bonsoir Spirou

Ben Structuré pour moi c'est que tu puissses facilement tous les remonter sans faire d'usine à gaz comme je t'ai écrite dans ce fif (qui marche... je sais je m'en sers quand les fichiers sont trop en bordel !!)

Exemple de Noms de Fichiers Structurés :

52 D 00 0000 X

52 = Semaine Numéro (2 Digits)
D = Jour (1 Digit)
00 = Nombre d'enregistrement dans la journée (2 Digits)
0000 = Numéro Client (4 Digits)
X = Info de Type Boolean (exemple Y = Dossier Clos, N = Dossier En Cours)

Ce n'est qu'un exemple...

Si je veux tous remonter je peux, si je ne veux que remonter les fichiers qui sont clos ou en cours... Etc etc...

Et ceci par formule en liens (puisque j'ai toutes les infos sans voir les fichiers).... Mais il est certain qu'il faut une énorme rigidité dans la mise en place.

Bonne Soirée et heureux que tu aies pu trouver une solution.

@+Thierry
 
D

dIDIER 2

Guest
merci thierry
Cela répond bien a ma question
A l'avenir je regarderais plus loin que le bout de mon nez avant de faire une application excell, c'est vrai que parfois on se pose un tas de complication sur le contenant, et que l'exterieur et tout aussi important.

merci a bientôt
 
@

@+Thierry

Guest
Bon tant mieux alors Didier Two (sors du bain encore !!)

Pour le Spirou ...

1°) Comment intégrer à ce code la variable qui sera sélectionné par le choix de l'entreprise
et la version du fichier qui correspond à un nom et un répertoire. (Pour éviter d'être répétitif)

>>> Humm c'est quoi la version de fichier ?
Exemple :
Gestion_001_Entreprise A_a
c'est le "a" ?? (on peut faire quelque chose)
>>> Un répertoire ?????? c'est nouveau ça !! si on travaille en multi-répertoires c'est une autre chanson !!!

2°) Comment intégrer dans une fonction un paramètre qui est et doit être falcultif dans la recherche d'un fichier.

>>> On le fait écrire par VBA (si on peut en fonction de ce que tu as comme structure)

3°) Comment sélectioner une zone de la feuille en premant en compte le texbox qui détermine
la sélection.
>>> Humm c'est quoi encore ça ?

En conclusion Spirou Christophe, tu aurais peut-être mieux fait de créer un nouveau fil, car au fur et à mesure que tu détailles ta demande... Elle s'écarte complet de ce que voulait Didier...
- Version de Fichier... çà peut ce gérer avec une ListBox ou des OptionButtons...
- Multi répertoires....... ça n'a plus rien à voir et ce n'est plus du tout la même gestion du truc.
- Plage Source Variable ?? Alors là on a plus rien à voir avec la question de Didier !

C'est le genre de truc ingérable à distance sans voir ton disque dûr... sa structure... et la structure de chaque fichier... De plus la manière dont tu t'expliques n'aide pas, surtout dans un fil qui n'a rien à voir et ça me donne mal à la tête de remonter un kilomètres de fil pour suivre...

Voilà mes premières constations...

Il y a surement un moyen, mais tant que tu t'expliqueras avec des adresses de cellules et des dates dans des cellules oranges...

Voilà Spirou Sorry.. Mais ça me rapelle déjà un long fil avec toi... Et j'en reviens à la même conclusion... Cet énorme fossé entre les Users et les Développeurs...

Bonne Nuit
@+Thierry
 

Discussions similaires

Réponses
20
Affichages
645
Réponses
9
Affichages
741
Réponses
9
Affichages
301
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…