Chercher des valeurs dans un classeur sur une disquette

P

Pierrot

Guest
Bonsoir à tous.

Pour définir exactement ce que je recherche c'est en fait:

Comment rechercher des valeurs dans un classeur fermé qui se trouve sur une disquette.

Pour des raisons pratique je doit conserver un classuer sur une disquette seulement voilà une fois par mois je veux pouvoir, rechercher des valeurs sur ce dernier via un autre classeur excel qui se trouve lui sur mon ordi.

Quand j'avais les deux sur l'ordi j'utilisais la fonction suivante:

GetValuesFromAClosedWorkbook "D:\Programmes", "Planning Personnel.xls", "BILAN", "A1:F13", "HEUREMENSUEL", "A1:L13"

maintenant que j'ai ce classeur sur disquette, j'ai essayé la fonction suivante:

GetValuesFromAClosedWorkbook "A:\Planning Personnel.xls"
, "BILAN", "A1:F13", "HEUREMENSUEL", "A1:L13"

Mais voilà cela ne marche pas, je plante à chaque fois, comment puis je faire.

Merci pour votre aide.

Pierrot
 
S

sylsyl

Guest
Salut Pierrot,

Si ton code est tel que tu l’as ecrit ci-dessous, j’image que l’erreur est “ chemin non trouve”.
Il semble que tu utilises une fonction qui a besoin de 5 arguments; le dossier puis le nom du fichier, etc, et avec le A: tu a mis les 2 premiers arguments en un seul:
“A:\classeur.xls” au lieu de “A:”, “classeur.xls”

En lisant tes 2 questions je crois que le plus simple est d’avoir ton classeur “Planning Personnel.xls” sur ton DD et sur disquette.

Tu utilises le classeur sur le DD puis tu le transferts sur la disquette, l’operation de copie sur disquette est peut etre plus rapide que la lecture, puis l’enregistrement sur celle-ci.

Pour le transfert tu peux utiliser la fonction suivante:

Function CopyAllFilesInFolder(FromFolderPath As String, _
ToFolderPath As String, _
Optional CreateFolder As Boolean = False, _
Optional Overwrite As Boolean = False) As Boolean

Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")

On Error GoTo ErrHandler
If CreateFolder Then fso.CreateFolder ToFolderPath

fso.CopyFile FromFolderPath & Application.PathSeparator & _
"*.*", ToFolderPath & Application.PathSeparator, Overwrite

CopyAllFilesInFolder = True

ExitRoutine:
Set fso = Nothing
Exit Function
ErrHandler:
Resume ExitRoutine
End Function

La fonction comme ca fonctionne (je l’ai teste), tu peux peut-etre remplacer “*.*” par le nom de ton classeur.

Tiens moi au courant…

A++, Sylsyl.
 
P

Pierrot

Guest
Bonsoir Sylsyl.

Pour la première question en effet il s'agit d'une erreur de chemin, en la corrigeant d'après ton explication cela fonctionne, donc premier point résolu et merci.

Pour la seconde question, je ne peux malheureusement pas conserver ce fichier sur mon DD (impératif professionnel), et je dois donc me résoudre à le conserver sur disquette.
Cependant ta superbe fonction que tu me proposes, m'ennui un peu, car je ne sais pas comment faire executer la propriété Function via un bouton, pourrais tu m'éclairer d'avantage, merci.

Pierrot.
 
S

sylsyl

Guest
La fonction renvoie une valeur booleenne (vrai ou faux) indiquant si le transfert a marcher ou pas.

Tu peux l'introduire dans une procedure comme ca:

Sub CopierFichiers()
Dim IzDone as Boolean
IzDone = CopyAllFilesInFolder("D:\Programmes","A:", False, True)
If IzDone = True Then
Msgbox "Fichiers Transferes"
Else
MsgBox "Erreur de transfert des fichiers"
End If
End Sub

A++, Sylsyl.
 
S

sylsyl

Guest
Re,

J’ai essaye d’ouvrir et d’enregistrer un fichire XL (> 1 Mo) directement sur disquette. L’ouverture prend des heures et je ne peux pas sauvegarder mon travail (Msgbox windows “Disk Full”, je suis en anleterre).

Le plus simple est donc de copier/coller ta disquette sur ton PC, de travailler dessus, sauver, fermer, remettre sur A: etc manuellement.

Ou d’automatiser ces manipulations avec un nouveau classeur qui restera sur ton Dur avec les procedures suivantes dans ThisWorkBook.

Sub Workbook_Open()

‘ Transfert des fichiers de A: vers ton Dur avec la fonction ci-dessus.
‘ ouverture de ces classeurs avec activation des macros

End sub

Sub Before_Workbook_Close() ‘ ou qq chose comme ca

‘ Sauver les classeurs
‘ les fermer
‘ transferer sur disquette
‘ les effacer du Dur (avec la methode Kill)

End Sub

Combien de classeur utilises-tu pour ce travail ? y-en a t’il au moins un qui peut rester sur le Dur ?

Si tu es interesse je peux t’aider pour ecrire ces 2 procedures, dis moi ce que tu en penses…

A++, Sylsyl.
 

Discussions similaires

Statistiques des forums

Discussions
312 330
Messages
2 087 337
Membres
103 524
dernier inscrit
Smile1813