Code VBA - utiliser donnees cellule d'un autre classeur

Bonjour,

J'ai le code ci-dessous :

Qui ouvre un fichier texte et inscrit des données à l'ouverture du fichier B.xls

Jusque là ca marche :

Private Sub Workbook_Open()

'Suivi des Connections

'Num : 00001

Dim Usager As String, Machine As String

Dim NomFichier As String

NomFichier = ThisWorkbook.Name

Usager = OSUserName()

Machine = OSMachineName()

Open "C:\Documents and Settings\mayol\Bureau\tableaux de bord\CompteRendu.txt" For Append As #1

Write #1, Usager; Machine; Now; NomFichier

Close #1

End Sub

Mon pb est le suivant :

Cela concerne l'adresse qui suit le "open"

L'adresse sera variable par la suite.

Vu que avant l'ouverture de B.xls, l'utilisateur devar ouvrir A.xls, j'ai donc pensé aller récupérer l'adresse du fichier .txt dans une cellule de ce lasseur A.xls. (Ce qui me semble, pour mon apli, la meilleure solution).

on m'a proposé d'aller chercher l'adresse en utilisant ce code :

chemin = workbooks(TdB).Worksheets(Adresses).Range(F14).Value

En suposant justement que le classeur Tdb soit ouvert.

par contre je n'arrive pas a faire marcher la macro avec ce code.

Y-a-t-il une erreur?

Comment l'insérer dans ma macro?

Merci

fred

Salut le forum

Jackfred voilà trois façons d'écrire ton Open

Open Workbooks("Nom du classeur").Worksheets("Nom de la feuille") .Range(F14).Value For Append As #1

Open Range("A3").Value For Append As #1

Open "C:\Excel\CompteRendu.txt" For Append As #1

Mytå

P.S. Les fonctions OSUserName() et OSMachineName() sont de Dave Peterson, mpep

' -------------------------------------------------------- '
' Dans le haut d'un module ordinaire - Déclaration des API '
' -------------------------------------------------------- '

Declare Function GetComputerName& Lib "kernel32" Alias "GetComputerNameA" (ByVal lbbuffer As String, nSize As Long)
Public Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Declare Function WNetGetUser Lib "mpr.dll" Alias "WNetGetUserA" (ByVal lpName As String, ByVal lpUserName As String, lpnLength As Long) As Long

Function OSMachineName() As String
'Dave Peterson, mpep
Dim Buffer As String * 256
Dim BuffLen As Long
Dim lngX As Long
Dim strCompName As String
BuffLen = 255
If GetComputerName(Buffer, BuffLen) Then
OSMachineName = Left(Buffer, BuffLen)
End If
End Function

Function OSUserName() As String
'Dave Peterson, mpep
Dim Buffer As String * 256
Dim BuffLen As Long
BuffLen = 256
If GetUserName(Buffer, BuffLen) Then
OSUserName = Left(Buffer, BuffLen - 1)
End If
End Function

Salut

J'oublie a mes devoir .. dsl

Merci infiniment pour ton aide, ca marche tres bien

Fred

Rechercher des sujets similaires à "code vba utiliser donnees classeur"