aaliyan
Messages postés104Date d'inscriptionsamedi 12 mars 2005StatutMembreDernière intervention30 avril 2007
-
13 mars 2007 à 18:10
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018
-
1 mai 2015 à 07:30
Bonjour à tous,
J'ai un petit souci avec le Visual Basic et les chemins relatifs... je suis en train de travailler sur un fichier excel et par une macro je cherche à ouvrir un autre fichier excel qui se trouve dans me meme dossier...
et je n'ai trouver que cette solution:
nom = InputBox("Entrer le nom du fichier")
ChDir "C:\Bureau\Pierre\Doc"
Workbooks.Open Filename:=fichier
le probleme est que chaque fois que j'execute cette macro sur une autre machine je suis obligé de changer l'adresse d'acces.
Existe t il un moyen plus simple avec un chemin relatif?
Merci d'avance.
cs_westa
Messages postés12Date d'inscriptionlundi 19 mars 2007StatutMembreDernière intervention20 mars 2007 19 mars 2007 à 17:46
Bonjour à tous,
je rebondis sur le sujet. Problème idiot qui m'a fait perdre mon après midi...
J'ai fait une macro par apprentissage pour importer un fichier texte dans un onglet. Le problème, c'est que je veux enlever le lien absolu pour le transformer en lien relatif (pour aller sur un autre PC). J'ai bidouillé mon truc, ca a marché deux fois, puis plus rien....
Voici une partie de mon code (qui a marché 2 fois) :
Sheets("ascii brut").Select
Range("A1").Select
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;essais ASCII\base.txt"" _
, Destination:=Range("A1"))
.Name = "base"
.FieldNames = True
.RowNumbers = False
....
End With
le lien absolu était : "C:\Documents and Settings\Munier\Bureau\Stage Moteur\Exploitation Excel\essais ASCII\base.txt"
(le fichier excel est dans "C:\Documents and Settings\Munier\Bureau\Stage Moteur\Exploitation Excel") et ca marchait.
j'ai essayé de mettre un truc du genre :
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;ActiveWorkbook.Path & "\essais ASCII\base.txt"" _
, Destination:=Range("A1"))
mais ca donne rien.... et j'aimerais énormément que vous m'aidiez dans ma démarche !!
Merci beaucoup pour votre aide !!
Romain
frperreaut
Messages postés1Date d'inscriptionvendredi 7 mars 2008StatutMembreDernière intervention 7 mars 2008 7 mars 2008 à 11:34
Essaye donc :
Chemin = ActiveWorkbook.path ou
Chemin = Thisworkbook.path
et compose par exemple un Chemin1 = Chemin & "" & "toto" & ""
Voir aussi:
Function GetCurDir()
Dim str As String
Dim pos As Integer
str = ActiveWorkbook.FullName
pos = InStrRev(str, "")
str = Mid(str, 1, pos)
GetCurDir = str
End Function
Vous n’avez pas trouvé la réponse que vous recherchez ?
pasco05
Messages postés13Date d'inscriptionsamedi 26 juillet 2003StatutMembreDernière intervention13 décembre 2007 19 févr. 2009 à 22:56
Amusant,
Function GetCurDir(Optional NbSousRep As Single)
Dim str As String
Dim pos, i As IntegerIf NbSousRep 0 Then NbSousRep 1
str = ActiveWorkbook.FullName
For i = 1 To NbSousRep
pos = InStrRev(Left(str, Len(str) - 1), "")
str = Mid(str, 1, pos)
Next i
GetCurDir = str
End Function
Sub testdir()
MsgBox GetCurDir(2)
pasco05
Messages postés13Date d'inscriptionsamedi 26 juillet 2003StatutMembreDernière intervention13 décembre 2007 19 févr. 2009 à 23:00
ouups
Function GetCurDir(Optional NbSousRep As Single)
Dim str As String
Dim pos, i As IntegerIf NbSousRep 0 Then NbSousRep 1
str = ActiveWorkbook.FullName
For i = 1 To NbSousRep
pos = InStrRev(Left(str, Len(str) - 1), "")
If pos = 0 Then Exit For
str = Mid(str, 1, pos)
Next i
GetCurDir = str
End Function
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018212 Modifié par ucfoutu le 1/05/2015 à 07:35
Bonjour, gabriel,
il n'y a rien à "expliquer" dans les deux codes pour lesquels tu demandes des précisions.
Ils font, l'un comme l'autre, appel à des notions de base très élémentaires et claires. A ce point claires que :
"dire pas à pas" ce que fait chacun de ces deux codes, reviendrait à dire ce que fait chacune des fonctions et/ou propriétés de base employées (et cela est dit dans ton aide VBA !).
Ouvre donc ton aide VBA sur les mots :
FullName
InstrRev
Mid
Path
et lis donc. Cette simple lecture te permettra de savoir ce que fait chaque ligne de code des deux codes qui t'intéressent.
________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.