Pour chaque cellule c dans une plage donnée, je dois aller récupérer la
valeur d'une cellule dans un autre fichier, le nom du fichier et la position
de la cellule cherchée dépendant de la cellule d'origine c :
1) je dois récupérer la valeur de la cellule en ligne 4 et même colonne que
c, valeur que j'affecte à la variable nom_flux
2) ensuite je dois récupérer la valeur d'une cellule, qui se trouve dans
l'onglet "Flux de nom_flux" du fichier "Traitement flux nom_flux", en ligne 2
et en colonne décalée de 7-colonne(c) à chaque fois
Je ne suis pas sûr d'être bien clair mais j'espère que la vue de mon code
(qui ne fonctionne pas...) va vous éclairer :
For Each c In Range("I11,J12,K13,L14,M15,N16,O17,P18")
c.Select
nom_flux = "=R4C"
c = "=E:\Suivi traitement\[Traitement flux nom_flux.xls]Flux de
nom_flux'!R2C[7-column(c)]"
Next c
J'ai essayé diverses combinaisons pour que nom_flux et 7-column(c) soient
évalués et remplacés par leur valeur dans la formule, mais rien ne fonctionne
: soit j'ai des messages d'erreur à l'exécution de la macro, soit elle
s'exécute et la formule s'écrit en cellule mais en ayant conservé nom_flux et
7-column(c) sans les avoir remplacés par leur valeur.
J'espère avoir réussi à exprimer mon besoin... Pouvez-vous m'aider ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
michdenis
Bonjour Gillou,
"=E:Suivi traitement[Traitement flux nom_flux.xls]Flux de nom_flux'!R2C[7-column(c)]"
Ce type de syntaxe pour récupérer une valeur d'une cellule d'un fichier fermé n'est disponible que dans une formule de cellule de la feuille de calcul. On ne peut s'en servir pour obtenir le résultat directement dans VBA.
Une alternative, c'est ceci :
'-------------------- Sub Test() MsgBox GetValue("C:Mes Documents","MonFichier.xls","MaFeuille","A1") End Sub '--------------------
Exemple d'une ligne de code c = GetValue("CheminDufichier", "NomDuFichier.xls", "NomFeuille" , C.address)
Public Function GetValue(ByVal path, ByVal file, ByVal sheet, ByVal ref) As Variant
' Macro XL4 Merci à John Walkenbach ' ============================= ' Retrieves a value from a closed workbook
Dim Arg As String
' Make sure the file exists If Right(path, 1) <> "" Then path = path & "" If Dir(path & file) = "" Then GetValue = "File Not Found" Exit Function End If
"Gillou" a écrit dans le message de news: Bonjour,
Pour chaque cellule c dans une plage donnée, je dois aller récupérer la valeur d'une cellule dans un autre fichier, le nom du fichier et la position de la cellule cherchée dépendant de la cellule d'origine c :
1) je dois récupérer la valeur de la cellule en ligne 4 et même colonne que c, valeur que j'affecte à la variable nom_flux 2) ensuite je dois récupérer la valeur d'une cellule, qui se trouve dans l'onglet "Flux de nom_flux" du fichier "Traitement flux nom_flux", en ligne 2 et en colonne décalée de 7-colonne(c) à chaque fois
Je ne suis pas sûr d'être bien clair mais j'espère que la vue de mon code (qui ne fonctionne pas...) va vous éclairer :
For Each c In Range("I11,J12,K13,L14,M15,N16,O17,P18") c.Select nom_flux = "=R4C" c = "=E:Suivi traitement[Traitement flux nom_flux.xls]Flux de nom_flux'!R2C[7-column(c)]" Next c
J'ai essayé diverses combinaisons pour que nom_flux et 7-column(c) soient évalués et remplacés par leur valeur dans la formule, mais rien ne fonctionne : soit j'ai des messages d'erreur à l'exécution de la macro, soit elle s'exécute et la formule s'écrit en cellule mais en ayant conservé nom_flux et 7-column(c) sans les avoir remplacés par leur valeur.
J'espère avoir réussi à exprimer mon besoin... Pouvez-vous m'aider ?
Merci d'avance
Bonjour Gillou,
"=E:Suivi traitement[Traitement flux nom_flux.xls]Flux de nom_flux'!R2C[7-column(c)]"
Ce type de syntaxe pour récupérer une valeur d'une cellule d'un fichier fermé n'est disponible que dans une formule de cellule de la
feuille de calcul. On ne peut s'en servir pour obtenir le résultat directement dans VBA.
Une alternative, c'est ceci :
'--------------------
Sub Test()
MsgBox GetValue("C:Mes Documents","MonFichier.xls","MaFeuille","A1")
End Sub
'--------------------
Exemple d'une ligne de code
c = GetValue("CheminDufichier", "NomDuFichier.xls", "NomFeuille" , C.address)
Public Function GetValue(ByVal path, ByVal file, ByVal sheet, ByVal ref) As Variant
' Macro XL4 Merci à John Walkenbach
' ============================= ' Retrieves a value from a closed workbook
Dim Arg As String
' Make sure the file exists
If Right(path, 1) <> "" Then path = path & ""
If Dir(path & file) = "" Then
GetValue = "File Not Found"
Exit Function
End If
"Gillou" <Gillou@discussions.microsoft.com> a écrit dans le message de news: 6BD57C41-BA90-4D0D-9CB2-657634E39D1E@microsoft.com...
Bonjour,
Pour chaque cellule c dans une plage donnée, je dois aller récupérer la
valeur d'une cellule dans un autre fichier, le nom du fichier et la position
de la cellule cherchée dépendant de la cellule d'origine c :
1) je dois récupérer la valeur de la cellule en ligne 4 et même colonne que
c, valeur que j'affecte à la variable nom_flux
2) ensuite je dois récupérer la valeur d'une cellule, qui se trouve dans
l'onglet "Flux de nom_flux" du fichier "Traitement flux nom_flux", en ligne 2
et en colonne décalée de 7-colonne(c) à chaque fois
Je ne suis pas sûr d'être bien clair mais j'espère que la vue de mon code
(qui ne fonctionne pas...) va vous éclairer :
For Each c In Range("I11,J12,K13,L14,M15,N16,O17,P18")
c.Select
nom_flux = "=R4C"
c = "=E:Suivi traitement[Traitement flux nom_flux.xls]Flux de
nom_flux'!R2C[7-column(c)]"
Next c
J'ai essayé diverses combinaisons pour que nom_flux et 7-column(c) soient
évalués et remplacés par leur valeur dans la formule, mais rien ne fonctionne
: soit j'ai des messages d'erreur à l'exécution de la macro, soit elle
s'exécute et la formule s'écrit en cellule mais en ayant conservé nom_flux et
7-column(c) sans les avoir remplacés par leur valeur.
J'espère avoir réussi à exprimer mon besoin... Pouvez-vous m'aider ?
"=E:Suivi traitement[Traitement flux nom_flux.xls]Flux de nom_flux'!R2C[7-column(c)]"
Ce type de syntaxe pour récupérer une valeur d'une cellule d'un fichier fermé n'est disponible que dans une formule de cellule de la feuille de calcul. On ne peut s'en servir pour obtenir le résultat directement dans VBA.
Une alternative, c'est ceci :
'-------------------- Sub Test() MsgBox GetValue("C:Mes Documents","MonFichier.xls","MaFeuille","A1") End Sub '--------------------
Exemple d'une ligne de code c = GetValue("CheminDufichier", "NomDuFichier.xls", "NomFeuille" , C.address)
Public Function GetValue(ByVal path, ByVal file, ByVal sheet, ByVal ref) As Variant
' Macro XL4 Merci à John Walkenbach ' ============================= ' Retrieves a value from a closed workbook
Dim Arg As String
' Make sure the file exists If Right(path, 1) <> "" Then path = path & "" If Dir(path & file) = "" Then GetValue = "File Not Found" Exit Function End If
"Gillou" a écrit dans le message de news: Bonjour,
Pour chaque cellule c dans une plage donnée, je dois aller récupérer la valeur d'une cellule dans un autre fichier, le nom du fichier et la position de la cellule cherchée dépendant de la cellule d'origine c :
1) je dois récupérer la valeur de la cellule en ligne 4 et même colonne que c, valeur que j'affecte à la variable nom_flux 2) ensuite je dois récupérer la valeur d'une cellule, qui se trouve dans l'onglet "Flux de nom_flux" du fichier "Traitement flux nom_flux", en ligne 2 et en colonne décalée de 7-colonne(c) à chaque fois
Je ne suis pas sûr d'être bien clair mais j'espère que la vue de mon code (qui ne fonctionne pas...) va vous éclairer :
For Each c In Range("I11,J12,K13,L14,M15,N16,O17,P18") c.Select nom_flux = "=R4C" c = "=E:Suivi traitement[Traitement flux nom_flux.xls]Flux de nom_flux'!R2C[7-column(c)]" Next c
J'ai essayé diverses combinaisons pour que nom_flux et 7-column(c) soient évalués et remplacés par leur valeur dans la formule, mais rien ne fonctionne : soit j'ai des messages d'erreur à l'exécution de la macro, soit elle s'exécute et la formule s'écrit en cellule mais en ayant conservé nom_flux et 7-column(c) sans les avoir remplacés par leur valeur.
J'espère avoir réussi à exprimer mon besoin... Pouvez-vous m'aider ?