j'utilise une methode API pour acceder à un fichier non partagé. J'ai
pas changé les paramètres, juste le nom et le chemin du fichier :
http://www.developpez.net/forums/d1074952/logiciels/microsoft-office/general-vba/lecture-binaire-d-fichier-offset-precis/#post5958831
Je peux lire le contenu, mais mon problème est que le fichier ouvert
est vérouillé par excel et vérouillé pour les autres alors que je ne
souhaite l'ouvrir qu'en lecture en mode non exclusif.
y a t il un bout de code pour éviter le vérouillage ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
MichD
Bonjour,
Si le fichier à ouvrir est un fichier texte,
Essaie ceci :
'------------------------------------------------------------------- Sub Test() Const ForReading = 1, ForWriting = 2, ForAppending = 8 Dim FSO As Object, F As Object, MyString As String Dim Chemin As String, Fichier As String
Chemin = "C:UsersTon ProfilDocuments" Fichier = "Nom du fichier.txt"
Set FSO = CreateObject("Scripting.FileSystemObject") Set F = FSO.OpenTextFile(Chemin & Fichier, ForReading, True)
'Suppose que tu veuilles lire les 100 premières lignes du fichier texte While Not Len(MyString) > 100 MyString = MyString & F.readline & vbCrLf Wend F.Close Set F = Nothing: Set FSO = Nothing End Sub '-------------------------------------------------------------------
Si tu cherches autre chose, dis-nous le type de fichier que tu veux ouvrir et décris-nous ton environnement et ce qui se passe lorsque tu tentes de l'ouvrir. En utilisant la souris et l'explorateur Windows, peux-tu ouvrir le fichier? Cela peut te donner une idée à savoir ce ce que tu tentes est réalisable... et dans un second temps en vba...!
Bonjour,
Si le fichier à ouvrir est un fichier texte,
Essaie ceci :
'-------------------------------------------------------------------
Sub Test()
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Dim FSO As Object, F As Object, MyString As String
Dim Chemin As String, Fichier As String
Chemin = "C:UsersTon ProfilDocuments"
Fichier = "Nom du fichier.txt"
Set FSO = CreateObject("Scripting.FileSystemObject")
Set F = FSO.OpenTextFile(Chemin & Fichier, ForReading, True)
'Suppose que tu veuilles lire les 100 premières lignes du fichier texte
While Not Len(MyString) > 100
MyString = MyString & F.readline & vbCrLf
Wend
F.Close
Set F = Nothing: Set FSO = Nothing
End Sub
'-------------------------------------------------------------------
Pour plus d'informations, consulte ce site :
http://bellamyjc.org/fr/vbsobj/vsmthopentextfile.html
Si tu cherches autre chose, dis-nous le type de fichier que tu veux ouvrir
et décris-nous ton environnement et ce qui se passe lorsque tu tentes de
l'ouvrir. En utilisant la souris et l'explorateur Windows, peux-tu ouvrir le
fichier? Cela peut te donner une idée à savoir ce ce que tu tentes est
réalisable... et dans un second temps en vba...!
'------------------------------------------------------------------- Sub Test() Const ForReading = 1, ForWriting = 2, ForAppending = 8 Dim FSO As Object, F As Object, MyString As String Dim Chemin As String, Fichier As String
Chemin = "C:UsersTon ProfilDocuments" Fichier = "Nom du fichier.txt"
Set FSO = CreateObject("Scripting.FileSystemObject") Set F = FSO.OpenTextFile(Chemin & Fichier, ForReading, True)
'Suppose que tu veuilles lire les 100 premières lignes du fichier texte While Not Len(MyString) > 100 MyString = MyString & F.readline & vbCrLf Wend F.Close Set F = Nothing: Set FSO = Nothing End Sub '-------------------------------------------------------------------
Si tu cherches autre chose, dis-nous le type de fichier que tu veux ouvrir et décris-nous ton environnement et ce qui se passe lorsque tu tentes de l'ouvrir. En utilisant la souris et l'explorateur Windows, peux-tu ouvrir le fichier? Cela peut te donner une idée à savoir ce ce que tu tentes est réalisable... et dans un second temps en vba...!
La Norme Française c'est pas le FN
On Tue, 19 May 2015 10:31:31 -0400, "MichD" wrote:
Bonjour,
Si le fichier à ouvrir est un fichier texte,
Essaie ceci :
'------------------------------------------------------------------- Sub Test() Const ForReading = 1, ForWriting = 2, ForAppending = 8 Dim FSO As Object, F As Object, MyString As String Dim Chemin As String, Fichier As String
Chemin = "C:UsersTon ProfilDocuments" Fichier = "Nom du fichier.txt"
Set FSO = CreateObject("Scripting.FileSystemObject") Set F = FSO.OpenTextFile(Chemin & Fichier, ForReading, True)
'Suppose que tu veuilles lire les 100 premières lignes du fichier texte While Not Len(MyString) > 100 MyString = MyString & F.readline & vbCrLf Wend F.Close Set F = Nothing: Set FSO = Nothing End Sub '-------------------------------------------------------------------
Non, justement cette fois c'est pas un fichier texte. C'est un fichier de donnée binaire comme un executable ou un genre de Dbase si tu prefère mais dont la structure est perso.
Si tu cherches autre chose, dis-nous le type de fichier que tu veux ouvrir et décris-nous ton environnement et ce qui se passe lorsque tu tentes de l'ouvrir. En utilisant la souris et l'explorateur Windows, peux-tu ouvrir le fichier? Cela peut te donner une idée à savoir ce ce que tu tentes est réalisable... et dans un second temps en vba...!
Je teste demain, mais en attendant ce que je peux te dire, c'est quand j'utilise les API windows en vba pendant un débuggage, le fichier est vérouillé dans l'explorateur de fichiers windows. Le traitement est long en temps normal, car le fichier est gros et je ne peut pas me permettre de le laisser vérouiller.
J'avais déjà posté un message sur la faisabilité de creer un filtre d'import sous excel, mais apparement ça dit rien à personne. Message-ID:
On Tue, 19 May 2015 10:31:31 -0400, "MichD" <michdenis@hotmail.com>
wrote:
Bonjour,
Si le fichier à ouvrir est un fichier texte,
Essaie ceci :
'-------------------------------------------------------------------
Sub Test()
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Dim FSO As Object, F As Object, MyString As String
Dim Chemin As String, Fichier As String
Chemin = "C:UsersTon ProfilDocuments"
Fichier = "Nom du fichier.txt"
Set FSO = CreateObject("Scripting.FileSystemObject")
Set F = FSO.OpenTextFile(Chemin & Fichier, ForReading, True)
'Suppose que tu veuilles lire les 100 premières lignes du fichier texte
While Not Len(MyString) > 100
MyString = MyString & F.readline & vbCrLf
Wend
F.Close
Set F = Nothing: Set FSO = Nothing
End Sub
'-------------------------------------------------------------------
Pour plus d'informations, consulte ce site :
http://bellamyjc.org/fr/vbsobj/vsmthopentextfile.html
Non, justement cette fois c'est pas un fichier texte. C'est un fichier
de donnée binaire comme un executable ou un genre de Dbase si tu
prefère mais dont la structure est perso.
Si tu cherches autre chose, dis-nous le type de fichier que tu veux ouvrir
et décris-nous ton environnement et ce qui se passe lorsque tu tentes de
l'ouvrir. En utilisant la souris et l'explorateur Windows, peux-tu ouvrir le
fichier? Cela peut te donner une idée à savoir ce ce que tu tentes est
réalisable... et dans un second temps en vba...!
Je teste demain, mais en attendant ce que je peux te dire, c'est quand
j'utilise les API windows en vba pendant un débuggage, le fichier est
vérouillé dans l'explorateur de fichiers windows. Le traitement est
long en temps normal, car le fichier est gros et je ne peut pas me
permettre de le laisser vérouiller.
J'avais déjà posté un message sur la faisabilité de creer un filtre
d'import sous excel, mais apparement ça dit rien à personne.
Message-ID: <5v3ikad6q2unb3hhldvlm2971kpedlebql@4ax.com>
On Tue, 19 May 2015 10:31:31 -0400, "MichD" wrote:
Bonjour,
Si le fichier à ouvrir est un fichier texte,
Essaie ceci :
'------------------------------------------------------------------- Sub Test() Const ForReading = 1, ForWriting = 2, ForAppending = 8 Dim FSO As Object, F As Object, MyString As String Dim Chemin As String, Fichier As String
Chemin = "C:UsersTon ProfilDocuments" Fichier = "Nom du fichier.txt"
Set FSO = CreateObject("Scripting.FileSystemObject") Set F = FSO.OpenTextFile(Chemin & Fichier, ForReading, True)
'Suppose que tu veuilles lire les 100 premières lignes du fichier texte While Not Len(MyString) > 100 MyString = MyString & F.readline & vbCrLf Wend F.Close Set F = Nothing: Set FSO = Nothing End Sub '-------------------------------------------------------------------
Non, justement cette fois c'est pas un fichier texte. C'est un fichier de donnée binaire comme un executable ou un genre de Dbase si tu prefère mais dont la structure est perso.
Si tu cherches autre chose, dis-nous le type de fichier que tu veux ouvrir et décris-nous ton environnement et ce qui se passe lorsque tu tentes de l'ouvrir. En utilisant la souris et l'explorateur Windows, peux-tu ouvrir le fichier? Cela peut te donner une idée à savoir ce ce que tu tentes est réalisable... et dans un second temps en vba...!
Je teste demain, mais en attendant ce que je peux te dire, c'est quand j'utilise les API windows en vba pendant un débuggage, le fichier est vérouillé dans l'explorateur de fichiers windows. Le traitement est long en temps normal, car le fichier est gros et je ne peut pas me permettre de le laisser vérouiller.
J'avais déjà posté un message sur la faisabilité de creer un filtre d'import sous excel, mais apparement ça dit rien à personne. Message-ID: