Conserver le chemin d'un fichier ouvert dans VBA
Bonjour a tous.
J'ai créer ce classeur en 2008, pas jeune !!! , et je le reprend maintenant pour une mise à jours avec quelque améliorations.
J'ai créer un classeur qui répertorie tout les cd que j'ai sur plusieurs DVD, j'ai créer pour chaque CD qui est sur DVD à un petit fichier txt ( avec un ptit programme qui me sort un txt) qui liste le contenu du cd avec les titres / artiste / album /Genre/ année de sortie et si plusieurs cd dans l'album.
Le classeur me met tout ça dans le bon ordre avec 1 ligne par CD avec le N° du DVD aussi.
N° DVD/artiste/ genre / année de sortie / Album / NB de CD dans l'album / et tout les titres les un à la suite des autres ( chaque titre dans une cellule )
Et donc tout fonctionne correctement sauf bien un truc que je n'arrive pas à résoudre.
Mon classeur est dans un dossier ( répertoire ) différent que les petits fichiers txt des cd.
Voici mon problème.
A chaque nouveau cd que je veut rentrer de façon automatique (via un bouton) dans le classeur, le chemin est toujours le chemin du classeur et je voudrais que le bouton me renvoie directement sur le dossier ( répertoire ) du petit fichier tx.
Je garde le chemin du classeur pour sa sauvegarde à la fin des saisies automatiques que je valide par un second bouton.
J'ai bien le chemin du petit fichier txt dans une variable, mais comment faire pour qu'elle soit au prochain txt à ouvrir ??
Merci pour vos futures réponses.
J’espère être assez clair dans ma demande
Bonsoir,
Un petit fichier dans lequel nous pourrions lire les chemins à utiiliser serait le bien venu
Bonjour
Un truc que j'ai oublié de précisé, le chemin que je veut conservé , je le met pour voir ( dans un 1er temps ) dans une variable et dans la cellule 6,8, c'est après que je bloc, je n'arrive pas à mettre la variable dans la fonction qui vas bien pour le prochain ptit txt.
Ce qui suis, je l'ai pris sur le net en y rajoutant mes variables
----------------------------------------------------------------------------------------------------------------------------------
'Définir la procédure comme une fonction pour permettre de renvoyer une valeur
'indiquant si l'ouverture c'est passée correctement ou non
Function ImporterFichier()
'Activer la gestion des erreurs de la fonction
'permettant de renvoyer la valeur False si l'ouverture n'a pas était réalisée
'sinon elle renverra True (ImporterFichier = True : au début de la fonction)
On Error GoTo Err_ImporterFichier
ImporterFichier = True
'Initialiser le répertoire courant en utilisant le chemin du classeur
ChDir ThisWorkbook.Path
'Récupération du chemin et du nom fichier selectionné par GetOpenFilename
Fichier = Application.GetOpenFilename("Fichiers Texte (*.txt), *.txt")
'--------------------------------------
' là ou le chemin du txt en cours.
Cells(6, 8) = Fichier
'--------------------------------------
'Ouverture du strFichier
'startrow=debut du fichier - 4 lignes
'datatype = text delimité " option pour declarer les colonnes"
'OtherCar = choix du separateur "-" le signe moin dans cet example "
'il doit être préalablement saisi dans le fichier text"
Workbooks.OpenText Filename:=Fichier, _
Origin:=xlMSDOS, _
StartRow:=1, _
DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
Comma:=False, Space:=False, Other:=True, OtherChar:="-", FieldInfo:= _
Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1)), TrailingMinusNumbers:=True
'le fichier à ouvrir pour y prendre les données qui seront transférées dans le fichier définitif "classeur de base "
Set fichieraouvrir = ActiveWorkbook
Exit Function
Err_ImporterFichier:
ImporterFichier = False
End Function
--------------------------------------------------------------------------------------------------------------------------------------------------------
Bonjour,
Pourquoi ne pas mettre ce fichier dans un sous répertoire au niveau même du fichier excel.
Tu n'aurais plus à te poser la question Vu que pour le coup il serait en possession identique à ThisWorkbook.Path & " \sousRep\fichier.txt"
Bonjour
J'y ai pensé, mais les fichiers txt sont chacun dans le dossier de leur DVD, parce que dans le classeur, je répertorie les txt avec leurs N° de DVD, alors oui il me suffirais de placé le classeur dans le dossier du DVD N°1 pour intégré les txt du DVD N°1 " trop simple" . J'ai mis un raccourci du classeur sur le bureau, alors il me faudrait à chaque fois que je change de DVD ré-adresser le raccourci bureau.
Bonjour a tous
Pas de réponse alors je fait comme dysorthographie me suggère, temps pis, je trouverais un jour qui sait !!!!
J'ai 1 ou 2 autre petits souci qui j’espère trouveras une réponse, si il y en une !!!!
Mais 1 a la fois sinon je vais me mélanger les pinceaux
J'ouvre un autre post pour bien distingué mes soucis
Bonjour,
Vraiment sans fichier ce n'est pas facile de bien vous suivre. Cependant pour répondre à la question initiale : "Comment ouvrir la fenetre de sélection des fichiers textes sur leur dossier ?", il faut procéder ainsi :
Dans votre Macro ImporterFichier, il y a ce bout de code
'Initialiser le répertoire courant en utilisant le chemin du classeur
ChDir ThisWorkbook.PathCela veut dire que la fenêtre va s'ouvrir sur le chemin du classeur actuel. Donc pour le changer, modifiez l'instruction ChDir par ce que vous voulez. Par exemple :
ChDir "C:\Users\papi 36\Documents\MonDossierDeCD"Avez-vous d'autres questions ?
Tout arrive à qui sait attendre.
Merci Saboh12617 pour la solution, je vais la mettre au chaud et je modifierais le code plus tard pour l’ouverture des fichiers txt.
Et Oui j'ai d'autre questions mais je vais ouvrir un sujet pour cela.
merci encore
D'accord, content d'aider.
N'oubliez pas de clôturer le fil si résolu.
Bonne journée.