Lecture dans un repertoire

Bonjour c'est encore moi. j'ai se petit bout de code à corriger mais je ne sais pas trop comment faire.

Dim ch$, nf As String
  ch = ThisWorkbook.Path & "\"
  nf = ch & "Import"
  Workbooks.Open Filename:=nf

nf c'est sensé être le fichier à ouvrir. Pour faire mes test je l'ai appelé "Import " mais en réalité il aura un nom tout tordu avec une date etc.

Ce que je voudrai pouvoir faire, c'est ouvrir se fichier avec Workbooks.Open Filename:=nf mais vous allez me dire sans savoir son nom...difficile de l'ouvrir eh bien si...Pour vous cela sera sûrement du gateau. Dans le répertoire "ch" il n'y a et n'y aura toujours que deux fichier, le fichier Projet cardio ou il y a cette macro et l'autre qu'il faudra ouvrir.

est-ce que ça peut s'écrire en vba s'te chose là ?

Par avance merci.

Oups j'ai oublié, le fichier à ouvrir c'est un fichier .csv qui s'ouvre avec excel que je peux enregistrer en xls ou en xlsx...Sur mon serveur je clic sur exporter mes données en CSV et cela s'ouvre avec excel..

Bonjour

Essaie avec cette modif :

Dim ch$, nf As String
  ch = ThisWorkbook.Path & "\"
  nf = ch & "Import.csv"
  Workbooks.Open Filename:=nf

Bye !

Bonjour gmb, j'ai essayé au cas où mais c'était couru d'avance car "Import" n'est pas le nom du fichier...

Mais peut-être que je m'exprime mal.

Dans un même repertoire, que je défini avec thisworkbook.path il n'y a que deux fichiers. Le premier est celui qui contient la macro est le deuxième est un import d'un site internet.

ce qu'il faudrait que j'arrive à faire c'est dire à vba, dans le repertoire ch tu as deux fichiers, ouvre celui qui est différent de celui qui est ouvert...

Mais se fichier n'aura pas le nom "Import", il aura un nom du genre Nom_Prénom_-_-01_8__8--_28_04 que je ne connais pas à l'avance...et se fichier j'aimerai bien avoir son nom dans une variable car je veux l'ouvrir et importer des données qu'il y a dedans.

 ch = ThisWorkbook.Path & "\"
  nf = ch & "Import"
  Workbooks.Open Filename:=nf

  Windows("Import.csv").Activate

Alors essaie ça :

Sub Ouvrir()
    ch = ThisWorkbook.Path & "\"
    nf = Dir(ch & "*.xls*")
    Do While Len(nf) > 0
        If nf <> ThisWorkbook.Name Then
            Set classeur = Workbooks.Open(ch & nf)
        End If
        nf = Dir
    Loop
End Sub

Pour les fichiers en .xls ou .xlsm, ça marche. Tente le coup en remplaçant .xls par .csv....

Bye !

Bonjour gmb et merci, ça fonctionne impeccablement pour le moment.

dans la suite de la macro j'utilisais --> Windows("Import.csv").Activate pour être sur que la suite de la macro s'applique sur le fichier qui vient de s'ouvrir.

sur les test que j'ai fais, le fichier s'ouvre en premier plan, y a t'il des raisons pour que ce ne soit pas le cas ? Vu que la suite de la macro applique un textTocolumns je me demandais s'il fallait prendre une sécurité et s'assurer que le fichier ouvert soit bien en premier plan où alors ce n'est pas necessaire...Qu'en pensez-vous ?

Bonjour

S'il s'agit d'une sécurité, cela ne mange pas de pain de la mettre....

Bye !

Merci

Rechercher des sujets similaires à "lecture repertoire"