HELPPPP Macro pour ouvrir un fichier .txt sur une cle quelque soit la lettre du port usb

isabelle29

XLDnaute Nouveau
Bonjour à tous,

S'il vous plait j'ai besoin de votre aide . J'ai créé cette macro avec l'enregistreur de macro qui me permet d'ouvrir un fichier texte à partir d'une clé USB.

Mon problème est le suivant : Dans mon projet de fin d'études, j'ai considéré que les utilisateurs n'ont pas la même adresse c'est pour cela que j'ai défini "X"mais je ne sais pas pourquoi sa m'affiche l'erreur suivante : Erreure d'exécution '9'

Sub importer()

Dim X As String
X = Left(Split(ThisWorkbook.Path, "\")(0), 1)


Workbooks.OpenText Filename:=X & ":\DOSSIER\ELEVE.txt", Origin:=xlWindows, StartRow:=1, TrailingMinusNumbers:=True


End Sub


Merci de vos réponses,
Bonne journée, :)
 

don_pets

XLDnaute Occasionnel
hello,

Es-tu certain que ta clé prend bien la lettre X ?

Sinon tu utiliser la fenêtre de dialogue pour pointer ton txt avec un truc du genre :

VB:
Set newfeuil = Worksheets.Add(Sheets(1))
newfeuil.Name = InputBox("what's name ?")
Set BDD = ThisWorkbook

Fichier = Application.GetOpenFilename("(*.txt),")
Workbooks.OpenText Filename:=Fichier, Origin:=xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=True, _
Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), _
Array(2, 1), Array(3, 1)), TrailingMinusNumbers:=True

Set SRC = ActiveWorkbook
SRC.Sheets(1).UsedRange.Copy BDD.Sheets(1).Cells(65536, 1).End(xlUp)(2)
SRC.Close False
 

isabelle29

XLDnaute Nouveau
Bonjour merci de votre retour,
alors X cest une variable quil que soit le nom du lecture parce que mon fichier je l'ouvert dans plusieurs poste et chaque fois le nom de lecture USB se change
 

don_pets

XLDnaute Occasionnel
Bah oui c'est une variable, tu peux forcer cette valeur en montant un volume en dos.

Mais sinon tu peux comme je te l'ai dit passer par ,
Fichier = Application.GetOpenFilename("(*.txt),")
 

isabelle29

XLDnaute Nouveau
je te remercie de ta patience
en fait je suis un petit peu perturbé si je colle ton code à lettre et je mets entre apostrophe le nom du fichier
= InputBox("what's name ?").

finalement ca marche pas ^/
sos stp
 

isabelle29

XLDnaute Nouveau
Merci de votre réponse .Alors pour l’instant je n'ai pas encore fait le dossier mais le principe c'est quoi?
le principe est de faire un formulaire sur lequel on saisie les données, ces données seront enregisteré sous forme.TXT qui sera stocker sur une clef après je vais récupérer ce fichier (txt) dans un autre pc pour le traité
j’espère que j'ai bien expliqué mon idée
 

Jacky67

XLDnaute Accro
Bonjour à tous,
Trouver la lettre d'un lecteur USB sur un pc contenant le fichier ==>"\DOSSIER\ELEVE.txt"
Dans l'exemple la lettre du lecteur est contenue dans la variable "X"

VB:
Sub ListeLecteursUSB()
Dim FileSys, X
Set FileSys = CreateObject("Scripting.FileSystemObject")
For Each X In FileSys.Drives
  If X.DriveType = 1 Then
    On Error Resume Next
    If Dir(X & "\DOSSIER\ELEVE.txt") <> "" Then
        If Err = 0 Then Exit For
    End If
  End If
Next
If X = "" Then MsgBox "Pas de fichier": Exit Sub
MsgBox " le fichier ''ELEVE.txt'' est présent sur le lecteur " & X ' facultatif
'Suite de la macro
'-------
'-------
End Sub
 
Dernière édition:
Haut Bas