à modifier dans la procédure.... dans la ligne
Application.Substitute(file, "_", ""))
change le caractère "_" pour "-" , c'est le symbole que tu utilises ...
Salutations!
"michdenis" a écrit dans le message de
news:
Bonjour William,
Essaie ceci , à copier dans un module standard
Tu dois renseigner les variables identifiées
'-------------------------------------------------
Sub TrouverMaValeur()
Dim Path As String, file As String
Dim Feuille As String, Ref As String
Dim Jour As Integer, X As Integer
'*******Variables à déterminer********
Jour = 25 ' à déterminer
Path = "C:Excel"
Feuille = "Feuil1"
Ref = Range("A1").Address
'*******Variables à déterminer********
file = Dir(Path & "*.xls")
Do While file <> ""
If Len(file) - Len(Application.Substitute(file, "_", "")) = 3 Then
If Val(Split(file, "_")(2)) = Jour Then
X = X + 1
'Où la copie aura lieu ... à déterminer
ThisWorkbook.Worksheets("Feuil1").Range("B" & X) = _
GetValue(Path, file, Feuille, Ref)
End If
End If
file = Dir()
Loop
End Sub
'-------------------------------------------------
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
' Create the argument
Arg = "'" & Path & "[" & file & "]" & sheet & "'!" & _
Range(Ref).Range("A1").Address(, , xlR1C1)
'Execute an XLM macro
GetValue = Application.ExecuteExcel4Macro(Arg)
MsgBox GetValue
DoEvents
End Function
'-------------------------------------------------
Salutations!
"William" a écrit dans le message de
news:
Bonjour,
Je souhaiterai faire un tableau de synthèse de données se trouvant sur
d'autres fichiers excel. Jusque là, vous allez dire que c'est fingers in
the
nose.
But il y a une petite difficulté :
les fichiers qui me serviront de sources, ont pour nom une variable :
nom = Format(Now, "yyyy-MM-dd_hh""h""mm""m""ss""s") & _
ActiveSheet.Range("A1").Text & ActiveSheet.Name & ".xls"
Et je voudrais que le tableau de synthèse me donne les informations se
situant que sur les fichiers excel d'un même jour avec un seul type
d'informations qui se situe dans A1 et un nom de feuille spécifique.
A noter que dans A1 et le nom de feuille, il n'y a respectivement que 3 et
5
informations différentes CONNUES.
Le but de ce tableau de synthèse est d'avoir le suivi de production d'une
journée pour une machine (nom de feuille) d'un secteur (A1). Donc il faut
que mes informations s'inscrivent de façon chronologique ==> un paramètre
enregistré sur telle feuille, à côté du même paramètre enregistré mais de
la
feuille h+1.
(jour J ; H) (jour J ;H+1)
Param1 5 5.5
Param2 5.1 5.4
D'où 2 problèmes :
- Comment appeler précisement une feuille avec une variable comme nom mais
dont on connaît une partie du nom (comme le jour et A1 et le nom de la
feuille).
- Quelle formule utilisée pour décalée la formule ci-dessus afin d'avoir
le
tableau comme je le souhaite ?
William
à modifier dans la procédure.... dans la ligne
Application.Substitute(file, "_", ""))
change le caractère "_" pour "-" , c'est le symbole que tu utilises ...
Salutations!
"michdenis" <michdenis@hotmail.com> a écrit dans le message de
news:uwmGZzEaEHA.1652@TK2MSFTNGP09.phx.gbl...
Bonjour William,
Essaie ceci , à copier dans un module standard
Tu dois renseigner les variables identifiées
'-------------------------------------------------
Sub TrouverMaValeur()
Dim Path As String, file As String
Dim Feuille As String, Ref As String
Dim Jour As Integer, X As Integer
'*******Variables à déterminer********
Jour = 25 ' à déterminer
Path = "C:Excel"
Feuille = "Feuil1"
Ref = Range("A1").Address
'*******Variables à déterminer********
file = Dir(Path & "*.xls")
Do While file <> ""
If Len(file) - Len(Application.Substitute(file, "_", "")) = 3 Then
If Val(Split(file, "_")(2)) = Jour Then
X = X + 1
'Où la copie aura lieu ... à déterminer
ThisWorkbook.Worksheets("Feuil1").Range("B" & X) = _
GetValue(Path, file, Feuille, Ref)
End If
End If
file = Dir()
Loop
End Sub
'-------------------------------------------------
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
' Create the argument
Arg = "'" & Path & "[" & file & "]" & sheet & "'!" & _
Range(Ref).Range("A1").Address(, , xlR1C1)
'Execute an XLM macro
GetValue = Application.ExecuteExcel4Macro(Arg)
MsgBox GetValue
DoEvents
End Function
'-------------------------------------------------
Salutations!
"William" <brun_rhodanienne@hotmail.com> a écrit dans le message de
news:OX7qfgBaEHA.3012@tk2msftngp13.phx.gbl...
Bonjour,
Je souhaiterai faire un tableau de synthèse de données se trouvant sur
d'autres fichiers excel. Jusque là, vous allez dire que c'est fingers in
the
nose.
But il y a une petite difficulté :
les fichiers qui me serviront de sources, ont pour nom une variable :
nom = Format(Now, "yyyy-MM-dd_hh""h""mm""m""ss""s") & _
ActiveSheet.Range("A1").Text & ActiveSheet.Name & ".xls"
Et je voudrais que le tableau de synthèse me donne les informations se
situant que sur les fichiers excel d'un même jour avec un seul type
d'informations qui se situe dans A1 et un nom de feuille spécifique.
A noter que dans A1 et le nom de feuille, il n'y a respectivement que 3 et
5
informations différentes CONNUES.
Le but de ce tableau de synthèse est d'avoir le suivi de production d'une
journée pour une machine (nom de feuille) d'un secteur (A1). Donc il faut
que mes informations s'inscrivent de façon chronologique ==> un paramètre
enregistré sur telle feuille, à côté du même paramètre enregistré mais de
la
feuille h+1.
(jour J ; H) (jour J ;H+1)
Param1 5 5.5
Param2 5.1 5.4
D'où 2 problèmes :
- Comment appeler précisement une feuille avec une variable comme nom mais
dont on connaît une partie du nom (comme le jour et A1 et le nom de la
feuille).
- Quelle formule utilisée pour décalée la formule ci-dessus afin d'avoir
le
tableau comme je le souhaite ?
William
à modifier dans la procédure.... dans la ligne
Application.Substitute(file, "_", ""))
change le caractère "_" pour "-" , c'est le symbole que tu utilises ...
Salutations!
"michdenis" a écrit dans le message de
news:
Bonjour William,
Essaie ceci , à copier dans un module standard
Tu dois renseigner les variables identifiées
'-------------------------------------------------
Sub TrouverMaValeur()
Dim Path As String, file As String
Dim Feuille As String, Ref As String
Dim Jour As Integer, X As Integer
'*******Variables à déterminer********
Jour = 25 ' à déterminer
Path = "C:Excel"
Feuille = "Feuil1"
Ref = Range("A1").Address
'*******Variables à déterminer********
file = Dir(Path & "*.xls")
Do While file <> ""
If Len(file) - Len(Application.Substitute(file, "_", "")) = 3 Then
If Val(Split(file, "_")(2)) = Jour Then
X = X + 1
'Où la copie aura lieu ... à déterminer
ThisWorkbook.Worksheets("Feuil1").Range("B" & X) = _
GetValue(Path, file, Feuille, Ref)
End If
End If
file = Dir()
Loop
End Sub
'-------------------------------------------------
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
' Create the argument
Arg = "'" & Path & "[" & file & "]" & sheet & "'!" & _
Range(Ref).Range("A1").Address(, , xlR1C1)
'Execute an XLM macro
GetValue = Application.ExecuteExcel4Macro(Arg)
MsgBox GetValue
DoEvents
End Function
'-------------------------------------------------
Salutations!
"William" a écrit dans le message de
news:
Bonjour,
Je souhaiterai faire un tableau de synthèse de données se trouvant sur
d'autres fichiers excel. Jusque là, vous allez dire que c'est fingers in
the
nose.
But il y a une petite difficulté :
les fichiers qui me serviront de sources, ont pour nom une variable :
nom = Format(Now, "yyyy-MM-dd_hh""h""mm""m""ss""s") & _
ActiveSheet.Range("A1").Text & ActiveSheet.Name & ".xls"
Et je voudrais que le tableau de synthèse me donne les informations se
situant que sur les fichiers excel d'un même jour avec un seul type
d'informations qui se situe dans A1 et un nom de feuille spécifique.
A noter que dans A1 et le nom de feuille, il n'y a respectivement que 3 et
5
informations différentes CONNUES.
Le but de ce tableau de synthèse est d'avoir le suivi de production d'une
journée pour une machine (nom de feuille) d'un secteur (A1). Donc il faut
que mes informations s'inscrivent de façon chronologique ==> un paramètre
enregistré sur telle feuille, à côté du même paramètre enregistré mais de
la
feuille h+1.
(jour J ; H) (jour J ;H+1)
Param1 5 5.5
Param2 5.1 5.4
D'où 2 problèmes :
- Comment appeler précisement une feuille avec une variable comme nom mais
dont on connaît une partie du nom (comme le jour et A1 et le nom de la
feuille).
- Quelle formule utilisée pour décalée la formule ci-dessus afin d'avoir
le
tableau comme je le souhaite ?
William
à cette fonction, j'ai ajouté la variable JOUR et cela était pour extraire
seulement certains fichiers qui avaient dans
leur nom (format date) un jour (dd) particulier sans tenir compte du mois
ou de l'année.
Bonjour William,
Ceci détermine le nom de ton classeur :
nom = Format(Now, "yyyy-MM-dd_hh""h""mm""m""ss""s") & _
ActiveSheet.Range("A1").Text & ActiveSheet.Name & ".xls"
Si tu me donnais en clair à quoi ressemble la chaîne de caractères
représentant le nom de 2 ou 3 classeurs, cela
faciliterait la tâche pour savoir comment extraire le nom de la feuille de
l'ensemble de la chaîne. Que contient la
cellule A1 et quelle apprence ont le noms de tes feuilles ?
En principe c'est "facile" la procédure "TrouverMaValeur" extrait la
valeur d'un fichier à partir des paramêtres de
cette fonction : GetValue(Path, file, Feuille, Ref) , il s'agit donc que
tu renseignes (définissent) chaque élément de
cette fonctiion avant de l'appeler.
PATH = Chemin et répertoire où se trouve tes fichiers
File = Nom du fichier
Feuille = Nom de la feuille
Ref = référence à une adresse particulière d'une cellule.
à cette fonction, j'ai ajouté la variable JOUR et cela était pour extraire
seulement certains fichiers qui avaient dans
leur nom (format date) un jour (dd) particulier sans tenir compte du mois
ou de l'année.
'-------------------------------------------------
Sub TrouverMaValeur()
Dim Path As String, file As String
Dim Feuille As String, Ref As String
Dim Jour As Integer, X As Integer
'*******Variables à déterminer********
Jour = 25 ' à déterminer
Path = "C:Excel"
Feuille = "Feuil1"
Ref = Range("A1").Address
'*******Variables à déterminer********
file = Dir(Path & "*.xls")
Do While file <> ""
If Len(file) - Len(Application.Substitute(file, "-", "")) = Jour Then
If Val(Split(file, "-")(2)) = Jour Then
X = X + 1
'Où la copie aura lieu ... à déterminer
ThisWorkbook.Worksheets("Feuil1").Range("B" & X) = _
GetValue(Path, file, Feuille, Ref)
End If
End If
file = Dir()
Loop
End Sub
'-------------------------------------------------
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
' Create the argument
Arg = "'" & Path & "[" & file & "]" & sheet & "'!" & _
Range(Ref).Range("A1").Address(, , xlR1C1)
'Execute an XLM macro
GetValue = Application.ExecuteExcel4Macro(Arg)
DoEvents
End Function
'-------------------------------------------------
Salutations!
à cette fonction, j'ai ajouté la variable JOUR et cela était pour extraire
seulement certains fichiers qui avaient dans
leur nom (format date) un jour (dd) particulier sans tenir compte du mois
ou de l'année.
Bonjour William,
Ceci détermine le nom de ton classeur :
nom = Format(Now, "yyyy-MM-dd_hh""h""mm""m""ss""s") & _
ActiveSheet.Range("A1").Text & ActiveSheet.Name & ".xls"
Si tu me donnais en clair à quoi ressemble la chaîne de caractères
représentant le nom de 2 ou 3 classeurs, cela
faciliterait la tâche pour savoir comment extraire le nom de la feuille de
l'ensemble de la chaîne. Que contient la
cellule A1 et quelle apprence ont le noms de tes feuilles ?
En principe c'est "facile" la procédure "TrouverMaValeur" extrait la
valeur d'un fichier à partir des paramêtres de
cette fonction : GetValue(Path, file, Feuille, Ref) , il s'agit donc que
tu renseignes (définissent) chaque élément de
cette fonctiion avant de l'appeler.
PATH = Chemin et répertoire où se trouve tes fichiers
File = Nom du fichier
Feuille = Nom de la feuille
Ref = référence à une adresse particulière d'une cellule.
à cette fonction, j'ai ajouté la variable JOUR et cela était pour extraire
seulement certains fichiers qui avaient dans
leur nom (format date) un jour (dd) particulier sans tenir compte du mois
ou de l'année.
'-------------------------------------------------
Sub TrouverMaValeur()
Dim Path As String, file As String
Dim Feuille As String, Ref As String
Dim Jour As Integer, X As Integer
'*******Variables à déterminer********
Jour = 25 ' à déterminer
Path = "C:Excel"
Feuille = "Feuil1"
Ref = Range("A1").Address
'*******Variables à déterminer********
file = Dir(Path & "*.xls")
Do While file <> ""
If Len(file) - Len(Application.Substitute(file, "-", "")) = Jour Then
If Val(Split(file, "-")(2)) = Jour Then
X = X + 1
'Où la copie aura lieu ... à déterminer
ThisWorkbook.Worksheets("Feuil1").Range("B" & X) = _
GetValue(Path, file, Feuille, Ref)
End If
End If
file = Dir()
Loop
End Sub
'-------------------------------------------------
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
' Create the argument
Arg = "'" & Path & "[" & file & "]" & sheet & "'!" & _
Range(Ref).Range("A1").Address(, , xlR1C1)
'Execute an XLM macro
GetValue = Application.ExecuteExcel4Macro(Arg)
DoEvents
End Function
'-------------------------------------------------
Salutations!
à cette fonction, j'ai ajouté la variable JOUR et cela était pour extraire
seulement certains fichiers qui avaient dans
leur nom (format date) un jour (dd) particulier sans tenir compte du mois
ou de l'année.
Bonjour William,
Ceci détermine le nom de ton classeur :
nom = Format(Now, "yyyy-MM-dd_hh""h""mm""m""ss""s") & _
ActiveSheet.Range("A1").Text & ActiveSheet.Name & ".xls"
Si tu me donnais en clair à quoi ressemble la chaîne de caractères
représentant le nom de 2 ou 3 classeurs, cela
faciliterait la tâche pour savoir comment extraire le nom de la feuille de
l'ensemble de la chaîne. Que contient la
cellule A1 et quelle apprence ont le noms de tes feuilles ?
En principe c'est "facile" la procédure "TrouverMaValeur" extrait la
valeur d'un fichier à partir des paramêtres de
cette fonction : GetValue(Path, file, Feuille, Ref) , il s'agit donc que
tu renseignes (définissent) chaque élément de
cette fonctiion avant de l'appeler.
PATH = Chemin et répertoire où se trouve tes fichiers
File = Nom du fichier
Feuille = Nom de la feuille
Ref = référence à une adresse particulière d'une cellule.
à cette fonction, j'ai ajouté la variable JOUR et cela était pour extraire
seulement certains fichiers qui avaient dans
leur nom (format date) un jour (dd) particulier sans tenir compte du mois
ou de l'année.
'-------------------------------------------------
Sub TrouverMaValeur()
Dim Path As String, file As String
Dim Feuille As String, Ref As String
Dim Jour As Integer, X As Integer
'*******Variables à déterminer********
Jour = 25 ' à déterminer
Path = "C:Excel"
Feuille = "Feuil1"
Ref = Range("A1").Address
'*******Variables à déterminer********
file = Dir(Path & "*.xls")
Do While file <> ""
If Len(file) - Len(Application.Substitute(file, "-", "")) = Jour Then
If Val(Split(file, "-")(2)) = Jour Then
X = X + 1
'Où la copie aura lieu ... à déterminer
ThisWorkbook.Worksheets("Feuil1").Range("B" & X) = _
GetValue(Path, file, Feuille, Ref)
End If
End If
file = Dir()
Loop
End Sub
'-------------------------------------------------
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
' Create the argument
Arg = "'" & Path & "[" & file & "]" & sheet & "'!" & _
Range(Ref).Range("A1").Address(, , xlR1C1)
'Execute an XLM macro
GetValue = Application.ExecuteExcel4Macro(Arg)
DoEvents
End Function
'-------------------------------------------------
Salutations!
à cette fonction, j'ai ajouté la variable JOUR et cela était pour extraire
seulement certains fichiers qui avaient dans
leur nom (format date) un jour (dd) particulier sans tenir compte du mois
ou de l'année.
Bonjour William,
Ceci détermine le nom de ton classeur :
nom = Format(Now, "yyyy-MM-dd_hh""h""mm""m""ss""s") & _
ActiveSheet.Range("A1").Text & ActiveSheet.Name & ".xls"
Si tu me donnais en clair à quoi ressemble la chaîne de caractères
représentant le nom de 2 ou 3 classeurs, cela
faciliterait la tâche pour savoir comment extraire le nom de la feuille de
l'ensemble de la chaîne. Que contient la
cellule A1 et quelle apprence ont le noms de tes feuilles ?
En principe c'est "facile" la procédure "TrouverMaValeur" extrait la
valeur d'un fichier à partir des paramêtres de
cette fonction : GetValue(Path, file, Feuille, Ref) , il s'agit donc que
tu renseignes (définissent) chaque élément de
cette fonctiion avant de l'appeler.
PATH = Chemin et répertoire où se trouve tes fichiers
File = Nom du fichier
Feuille = Nom de la feuille
Ref = référence à une adresse particulière d'une cellule.
à cette fonction, j'ai ajouté la variable JOUR et cela était pour extraire
seulement certains fichiers qui avaient dans
leur nom (format date) un jour (dd) particulier sans tenir compte du mois
ou de l'année.
'-------------------------------------------------
Sub TrouverMaValeur()
Dim Path As String, file As String
Dim Feuille As String, Ref As String
Dim Jour As Integer, X As Integer
'*******Variables à déterminer********
Jour = 25 ' à déterminer
Path = "C:Excel"
Feuille = "Feuil1"
Ref = Range("A1").Address
'*******Variables à déterminer********
file = Dir(Path & "*.xls")
Do While file <> ""
If Len(file) - Len(Application.Substitute(file, "-", "")) = Jour Then
If Val(Split(file, "-")(2)) = Jour Then
X = X + 1
'Où la copie aura lieu ... à déterminer
ThisWorkbook.Worksheets("Feuil1").Range("B" & X) = _
GetValue(Path, file, Feuille, Ref)
End If
End If
file = Dir()
Loop
End Sub
'-------------------------------------------------
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
' Create the argument
Arg = "'" & Path & "[" & file & "]" & sheet & "'!" & _
Range(Ref).Range("A1").Address(, , xlR1C1)
'Execute an XLM macro
GetValue = Application.ExecuteExcel4Macro(Arg)
DoEvents
End Function
'-------------------------------------------------
Salutations!
à cette fonction, j'ai ajouté la variable JOUR et cela était pour extraire
seulement certains fichiers qui avaient dans
leur nom (format date) un jour (dd) particulier sans tenir compte du mois
ou de l'année.
Bonjour William,
Ceci détermine le nom de ton classeur :
nom = Format(Now, "yyyy-MM-dd_hh""h""mm""m""ss""s") & _
ActiveSheet.Range("A1").Text & ActiveSheet.Name & ".xls"
Si tu me donnais en clair à quoi ressemble la chaîne de caractères
représentant le nom de 2 ou 3 classeurs, cela
faciliterait la tâche pour savoir comment extraire le nom de la feuille de
l'ensemble de la chaîne. Que contient la
cellule A1 et quelle apprence ont le noms de tes feuilles ?
En principe c'est "facile" la procédure "TrouverMaValeur" extrait la
valeur d'un fichier à partir des paramêtres de
cette fonction : GetValue(Path, file, Feuille, Ref) , il s'agit donc que
tu renseignes (définissent) chaque élément de
cette fonctiion avant de l'appeler.
PATH = Chemin et répertoire où se trouve tes fichiers
File = Nom du fichier
Feuille = Nom de la feuille
Ref = référence à une adresse particulière d'une cellule.
à cette fonction, j'ai ajouté la variable JOUR et cela était pour extraire
seulement certains fichiers qui avaient dans
leur nom (format date) un jour (dd) particulier sans tenir compte du mois
ou de l'année.
'-------------------------------------------------
Sub TrouverMaValeur()
Dim Path As String, file As String
Dim Feuille As String, Ref As String
Dim Jour As Integer, X As Integer
'*******Variables à déterminer********
Jour = 25 ' à déterminer
Path = "C:Excel"
Feuille = "Feuil1"
Ref = Range("A1").Address
'*******Variables à déterminer********
file = Dir(Path & "*.xls")
Do While file <> ""
If Len(file) - Len(Application.Substitute(file, "-", "")) = Jour Then
If Val(Split(file, "-")(2)) = Jour Then
X = X + 1
'Où la copie aura lieu ... à déterminer
ThisWorkbook.Worksheets("Feuil1").Range("B" & X) = _
GetValue(Path, file, Feuille, Ref)
End If
End If
file = Dir()
Loop
End Sub
'-------------------------------------------------
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
' Create the argument
Arg = "'" & Path & "[" & file & "]" & sheet & "'!" & _
Range(Ref).Range("A1").Address(, , xlR1C1)
'Execute an XLM macro
GetValue = Application.ExecuteExcel4Macro(Arg)
DoEvents
End Function
'-------------------------------------------------
Salutations!
à cette fonction, j'ai ajouté la variable JOUR et cela était pour extraire
seulement certains fichiers qui avaient dans
leur nom (format date) un jour (dd) particulier sans tenir compte du mois
ou de l'année.
Bonjour William,
Ceci détermine le nom de ton classeur :
nom = Format(Now, "yyyy-MM-dd_hh""h""mm""m""ss""s") & _
ActiveSheet.Range("A1").Text & ActiveSheet.Name & ".xls"
Si tu me donnais en clair à quoi ressemble la chaîne de caractères
représentant le nom de 2 ou 3 classeurs, cela
faciliterait la tâche pour savoir comment extraire le nom de la feuille de
l'ensemble de la chaîne. Que contient la
cellule A1 et quelle apprence ont le noms de tes feuilles ?
En principe c'est "facile" la procédure "TrouverMaValeur" extrait la
valeur d'un fichier à partir des paramêtres de
cette fonction : GetValue(Path, file, Feuille, Ref) , il s'agit donc que
tu renseignes (définissent) chaque élément de
cette fonctiion avant de l'appeler.
PATH = Chemin et répertoire où se trouve tes fichiers
File = Nom du fichier
Feuille = Nom de la feuille
Ref = référence à une adresse particulière d'une cellule.
à cette fonction, j'ai ajouté la variable JOUR et cela était pour extraire
seulement certains fichiers qui avaient dans
leur nom (format date) un jour (dd) particulier sans tenir compte du mois
ou de l'année.
'-------------------------------------------------
Sub TrouverMaValeur()
Dim Path As String, file As String
Dim Feuille As String, Ref As String
Dim Jour As Integer, X As Integer
'*******Variables à déterminer********
Jour = 25 ' à déterminer
Path = "C:Excel"
Feuille = "Feuil1"
Ref = Range("A1").Address
'*******Variables à déterminer********
file = Dir(Path & "*.xls")
Do While file <> ""
If Len(file) - Len(Application.Substitute(file, "-", "")) = Jour Then
If Val(Split(file, "-")(2)) = Jour Then
X = X + 1
'Où la copie aura lieu ... à déterminer
ThisWorkbook.Worksheets("Feuil1").Range("B" & X) = _
GetValue(Path, file, Feuille, Ref)
End If
End If
file = Dir()
Loop
End Sub
'-------------------------------------------------
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
' Create the argument
Arg = "'" & Path & "[" & file & "]" & sheet & "'!" & _
Range(Ref).Range("A1").Address(, , xlR1C1)
'Execute an XLM macro
GetValue = Application.ExecuteExcel4Macro(Arg)
DoEvents
End Function
'-------------------------------------------------
Salutations!
Bonjour William,
Essaie ceci, j'ai seulement modifier un truc pour tenir compte de ta
chaîne de caractères des noms de fichiers.
Sur demande, je t'envoie un exemple...
'-------------------------------------------
Sub TrouverMaValeur()
Dim Path As String, file As String
Dim Feuille As String, Ref As String
Dim Jour As Integer, X As Integer
'*******Variables à déterminer********
Jour = 14 ' à déterminer
Path = "C:Excel" ' à déterminer
Feuille = "Fiche de travail RTB"
Ref = Range("A1").Address
'*******Variables à déterminer********
file = Dir(Path & "*.xls")
Do While file <> ""
If Len(file) - Len(Application.Substitute(file, "-", "")) = 2 Then
If Val(Split(file, "-")(2)) = 14 Then
X = X + 1
'Où la copie aura lieu ... à déterminer
ThisWorkbook.Worksheets("Feuil1").Range("B" & X) = _
GetValue(Path, file, Feuille, Ref)
End If
End If
file = Dir()
Loop
End Sub
'-------------------------------------------------
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
' Create the argument
Arg = "'" & Path & "[" & file & "]" & sheet & "'!" & _
Range(Ref).Range("A1").Address(, , xlR1C1)
'Execute an XLM macro
GetValue = Application.ExecuteExcel4Macro(Arg)
DoEvents
End Function
'-------------------------------------------
Salutations!
"William" a écrit dans le message de
news:
La procédure que tu m'as donné devrait, en effet, marcher. J'arrive à la
suivre, à la comprendre mais je dois me rater qque part.à cette fonction, j'ai ajouté la variable JOUR et cela était pour
extraire
seulement certains fichiers qui avaient dansleur nom (format date) un jour (dd) particulier sans tenir compte du
mois
ou de l'année.
Exactement ce que je voulais.
Il me semble que c'est un problème de syntaxe des éléments que j'ai à
définir.
Concernant la cellule A1, 3 possibilités : groupe 3000, groupe 5000 et
groupe 7000 (donc toujours le mot "groupe")
Concernant l'apparence des noms des feuilles voici un exemple : "Fiche de
travail RTB" les autres noms étant de cet accabit ; auccun mot réccurent
mais les noms sont tous connues et c'est un des éléments qui me permettra
une ségrégation des infos.
Et voici des noms de fichiers :
2004-07-09_17h01m45sGroupe 5000Fiche de travail RTB.xls
2004-07-09_16h56m32sGroupe 3000Fiche de travail RTB.xls
2004-07-09_16h41m04sGroupe 5000Fiche de travail RTB.xls
A noter que j'avais bien remplit les variables à déterminer, comme ceci :
Jour = 09 ' à déterminer
Path = "P:CONTROLESPRODUCTION"
Feuille = "Fiche de travail RTB"
Ref = Range("A1").Address ==> et pas "groupe 5000" comme dans mon
post
précédent où il y a eu un mauvais couper-coller
Oublierais-je des choses à faire dans le reste de la formule?
j'espère que je n'oublie rien
William
"michdenis" a écrit dans le message de news:Bonjour William,
Ceci détermine le nom de ton classeur :
nom = Format(Now, "yyyy-MM-dd_hh""h""mm""m""ss""s") & _
ActiveSheet.Range("A1").Text & ActiveSheet.Name & ".xls"
Si tu me donnais en clair à quoi ressemble la chaîne de caractères
représentant le nom de 2 ou 3 classeurs, celafaciliterait la tâche pour savoir comment extraire le nom de la feuille
de
l'ensemble de la chaîne. Que contient lacellule A1 et quelle apprence ont le noms de tes feuilles ?
En principe c'est "facile" la procédure "TrouverMaValeur" extrait la
valeur d'un fichier à partir des paramêtres decette fonction : GetValue(Path, file, Feuille, Ref) , il s'agit donc
que
tu renseignes (définissent) chaque élément decette fonctiion avant de l'appeler.
PATH = Chemin et répertoire où se trouve tes fichiers
File = Nom du fichier
Feuille = Nom de la feuille
Ref = référence à une adresse particulière d'une cellule.
à cette fonction, j'ai ajouté la variable JOUR et cela était pour
extraire
seulement certains fichiers qui avaient dansleur nom (format date) un jour (dd) particulier sans tenir compte du
mois
ou de l'année.
'-------------------------------------------------
Sub TrouverMaValeur()
Dim Path As String, file As String
Dim Feuille As String, Ref As String
Dim Jour As Integer, X As Integer
'*******Variables à déterminer********
Jour = 25 ' à déterminer
Path = "C:Excel"
Feuille = "Feuil1"
Ref = Range("A1").Address
'*******Variables à déterminer********
file = Dir(Path & "*.xls")
Do While file <> ""
If Len(file) - Len(Application.Substitute(file, "-", "")) = Jour
Then
If Val(Split(file, "-")(2)) = Jour Then
X = X + 1
'Où la copie aura lieu ... à déterminer
ThisWorkbook.Worksheets("Feuil1").Range("B" & X) = _
GetValue(Path, file, Feuille, Ref)
End If
End If
file = Dir()
Loop
End Sub
'-------------------------------------------------
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
' Create the argument
Arg = "'" & Path & "[" & file & "]" & sheet & "'!" & _
Range(Ref).Range("A1").Address(, , xlR1C1)
'Execute an XLM macro
GetValue = Application.ExecuteExcel4Macro(Arg)
DoEvents
End Function
'-------------------------------------------------
Salutations!
Bonjour William,
Essaie ceci, j'ai seulement modifier un truc pour tenir compte de ta
chaîne de caractères des noms de fichiers.
Sur demande, je t'envoie un exemple...
'-------------------------------------------
Sub TrouverMaValeur()
Dim Path As String, file As String
Dim Feuille As String, Ref As String
Dim Jour As Integer, X As Integer
'*******Variables à déterminer********
Jour = 14 ' à déterminer
Path = "C:Excel" ' à déterminer
Feuille = "Fiche de travail RTB"
Ref = Range("A1").Address
'*******Variables à déterminer********
file = Dir(Path & "*.xls")
Do While file <> ""
If Len(file) - Len(Application.Substitute(file, "-", "")) = 2 Then
If Val(Split(file, "-")(2)) = 14 Then
X = X + 1
'Où la copie aura lieu ... à déterminer
ThisWorkbook.Worksheets("Feuil1").Range("B" & X) = _
GetValue(Path, file, Feuille, Ref)
End If
End If
file = Dir()
Loop
End Sub
'-------------------------------------------------
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
' Create the argument
Arg = "'" & Path & "[" & file & "]" & sheet & "'!" & _
Range(Ref).Range("A1").Address(, , xlR1C1)
'Execute an XLM macro
GetValue = Application.ExecuteExcel4Macro(Arg)
DoEvents
End Function
'-------------------------------------------
Salutations!
"William" <brun_rhodanienne@hotmail.com> a écrit dans le message de
news:OQFcQaNaEHA.2056@TK2MSFTNGP12.phx.gbl...
La procédure que tu m'as donné devrait, en effet, marcher. J'arrive à la
suivre, à la comprendre mais je dois me rater qque part.
à cette fonction, j'ai ajouté la variable JOUR et cela était pour
extraire
seulement certains fichiers qui avaient dans
leur nom (format date) un jour (dd) particulier sans tenir compte du
mois
ou de l'année.
Exactement ce que je voulais.
Il me semble que c'est un problème de syntaxe des éléments que j'ai à
définir.
Concernant la cellule A1, 3 possibilités : groupe 3000, groupe 5000 et
groupe 7000 (donc toujours le mot "groupe")
Concernant l'apparence des noms des feuilles voici un exemple : "Fiche de
travail RTB" les autres noms étant de cet accabit ; auccun mot réccurent
mais les noms sont tous connues et c'est un des éléments qui me permettra
une ségrégation des infos.
Et voici des noms de fichiers :
2004-07-09_17h01m45sGroupe 5000Fiche de travail RTB.xls
2004-07-09_16h56m32sGroupe 3000Fiche de travail RTB.xls
2004-07-09_16h41m04sGroupe 5000Fiche de travail RTB.xls
A noter que j'avais bien remplit les variables à déterminer, comme ceci :
Jour = 09 ' à déterminer
Path = "P:CONTROLESPRODUCTION"
Feuille = "Fiche de travail RTB"
Ref = Range("A1").Address ==> et pas "groupe 5000" comme dans mon
post
précédent où il y a eu un mauvais couper-coller
Oublierais-je des choses à faire dans le reste de la formule?
j'espère que je n'oublie rien
William
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
ue7MYMNaEHA.712@TK2MSFTNGP11.phx.gbl...
Bonjour William,
Ceci détermine le nom de ton classeur :
nom = Format(Now, "yyyy-MM-dd_hh""h""mm""m""ss""s") & _
ActiveSheet.Range("A1").Text & ActiveSheet.Name & ".xls"
Si tu me donnais en clair à quoi ressemble la chaîne de caractères
représentant le nom de 2 ou 3 classeurs, cela
faciliterait la tâche pour savoir comment extraire le nom de la feuille
de
l'ensemble de la chaîne. Que contient la
cellule A1 et quelle apprence ont le noms de tes feuilles ?
En principe c'est "facile" la procédure "TrouverMaValeur" extrait la
valeur d'un fichier à partir des paramêtres de
cette fonction : GetValue(Path, file, Feuille, Ref) , il s'agit donc
que
tu renseignes (définissent) chaque élément de
cette fonctiion avant de l'appeler.
PATH = Chemin et répertoire où se trouve tes fichiers
File = Nom du fichier
Feuille = Nom de la feuille
Ref = référence à une adresse particulière d'une cellule.
à cette fonction, j'ai ajouté la variable JOUR et cela était pour
extraire
seulement certains fichiers qui avaient dans
leur nom (format date) un jour (dd) particulier sans tenir compte du
mois
ou de l'année.
'-------------------------------------------------
Sub TrouverMaValeur()
Dim Path As String, file As String
Dim Feuille As String, Ref As String
Dim Jour As Integer, X As Integer
'*******Variables à déterminer********
Jour = 25 ' à déterminer
Path = "C:Excel"
Feuille = "Feuil1"
Ref = Range("A1").Address
'*******Variables à déterminer********
file = Dir(Path & "*.xls")
Do While file <> ""
If Len(file) - Len(Application.Substitute(file, "-", "")) = Jour
Then
If Val(Split(file, "-")(2)) = Jour Then
X = X + 1
'Où la copie aura lieu ... à déterminer
ThisWorkbook.Worksheets("Feuil1").Range("B" & X) = _
GetValue(Path, file, Feuille, Ref)
End If
End If
file = Dir()
Loop
End Sub
'-------------------------------------------------
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
' Create the argument
Arg = "'" & Path & "[" & file & "]" & sheet & "'!" & _
Range(Ref).Range("A1").Address(, , xlR1C1)
'Execute an XLM macro
GetValue = Application.ExecuteExcel4Macro(Arg)
DoEvents
End Function
'-------------------------------------------------
Salutations!
Bonjour William,
Essaie ceci, j'ai seulement modifier un truc pour tenir compte de ta
chaîne de caractères des noms de fichiers.
Sur demande, je t'envoie un exemple...
'-------------------------------------------
Sub TrouverMaValeur()
Dim Path As String, file As String
Dim Feuille As String, Ref As String
Dim Jour As Integer, X As Integer
'*******Variables à déterminer********
Jour = 14 ' à déterminer
Path = "C:Excel" ' à déterminer
Feuille = "Fiche de travail RTB"
Ref = Range("A1").Address
'*******Variables à déterminer********
file = Dir(Path & "*.xls")
Do While file <> ""
If Len(file) - Len(Application.Substitute(file, "-", "")) = 2 Then
If Val(Split(file, "-")(2)) = 14 Then
X = X + 1
'Où la copie aura lieu ... à déterminer
ThisWorkbook.Worksheets("Feuil1").Range("B" & X) = _
GetValue(Path, file, Feuille, Ref)
End If
End If
file = Dir()
Loop
End Sub
'-------------------------------------------------
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
' Create the argument
Arg = "'" & Path & "[" & file & "]" & sheet & "'!" & _
Range(Ref).Range("A1").Address(, , xlR1C1)
'Execute an XLM macro
GetValue = Application.ExecuteExcel4Macro(Arg)
DoEvents
End Function
'-------------------------------------------
Salutations!
"William" a écrit dans le message de
news:
La procédure que tu m'as donné devrait, en effet, marcher. J'arrive à la
suivre, à la comprendre mais je dois me rater qque part.à cette fonction, j'ai ajouté la variable JOUR et cela était pour
extraire
seulement certains fichiers qui avaient dansleur nom (format date) un jour (dd) particulier sans tenir compte du
mois
ou de l'année.
Exactement ce que je voulais.
Il me semble que c'est un problème de syntaxe des éléments que j'ai à
définir.
Concernant la cellule A1, 3 possibilités : groupe 3000, groupe 5000 et
groupe 7000 (donc toujours le mot "groupe")
Concernant l'apparence des noms des feuilles voici un exemple : "Fiche de
travail RTB" les autres noms étant de cet accabit ; auccun mot réccurent
mais les noms sont tous connues et c'est un des éléments qui me permettra
une ségrégation des infos.
Et voici des noms de fichiers :
2004-07-09_17h01m45sGroupe 5000Fiche de travail RTB.xls
2004-07-09_16h56m32sGroupe 3000Fiche de travail RTB.xls
2004-07-09_16h41m04sGroupe 5000Fiche de travail RTB.xls
A noter que j'avais bien remplit les variables à déterminer, comme ceci :
Jour = 09 ' à déterminer
Path = "P:CONTROLESPRODUCTION"
Feuille = "Fiche de travail RTB"
Ref = Range("A1").Address ==> et pas "groupe 5000" comme dans mon
post
précédent où il y a eu un mauvais couper-coller
Oublierais-je des choses à faire dans le reste de la formule?
j'espère que je n'oublie rien
William
"michdenis" a écrit dans le message de news:Bonjour William,
Ceci détermine le nom de ton classeur :
nom = Format(Now, "yyyy-MM-dd_hh""h""mm""m""ss""s") & _
ActiveSheet.Range("A1").Text & ActiveSheet.Name & ".xls"
Si tu me donnais en clair à quoi ressemble la chaîne de caractères
représentant le nom de 2 ou 3 classeurs, celafaciliterait la tâche pour savoir comment extraire le nom de la feuille
de
l'ensemble de la chaîne. Que contient lacellule A1 et quelle apprence ont le noms de tes feuilles ?
En principe c'est "facile" la procédure "TrouverMaValeur" extrait la
valeur d'un fichier à partir des paramêtres decette fonction : GetValue(Path, file, Feuille, Ref) , il s'agit donc
que
tu renseignes (définissent) chaque élément decette fonctiion avant de l'appeler.
PATH = Chemin et répertoire où se trouve tes fichiers
File = Nom du fichier
Feuille = Nom de la feuille
Ref = référence à une adresse particulière d'une cellule.
à cette fonction, j'ai ajouté la variable JOUR et cela était pour
extraire
seulement certains fichiers qui avaient dansleur nom (format date) un jour (dd) particulier sans tenir compte du
mois
ou de l'année.
'-------------------------------------------------
Sub TrouverMaValeur()
Dim Path As String, file As String
Dim Feuille As String, Ref As String
Dim Jour As Integer, X As Integer
'*******Variables à déterminer********
Jour = 25 ' à déterminer
Path = "C:Excel"
Feuille = "Feuil1"
Ref = Range("A1").Address
'*******Variables à déterminer********
file = Dir(Path & "*.xls")
Do While file <> ""
If Len(file) - Len(Application.Substitute(file, "-", "")) = Jour
Then
If Val(Split(file, "-")(2)) = Jour Then
X = X + 1
'Où la copie aura lieu ... à déterminer
ThisWorkbook.Worksheets("Feuil1").Range("B" & X) = _
GetValue(Path, file, Feuille, Ref)
End If
End If
file = Dir()
Loop
End Sub
'-------------------------------------------------
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
' Create the argument
Arg = "'" & Path & "[" & file & "]" & sheet & "'!" & _
Range(Ref).Range("A1").Address(, , xlR1C1)
'Execute an XLM macro
GetValue = Application.ExecuteExcel4Macro(Arg)
DoEvents
End Function
'-------------------------------------------------
Salutations!
Bonjour William,
Essaie ceci, j'ai seulement modifier un truc pour tenir compte de ta
chaîne de caractères des noms de fichiers.
Sur demande, je t'envoie un exemple...
'-------------------------------------------
Sub TrouverMaValeur()
Dim Path As String, file As String
Dim Feuille As String, Ref As String
Dim Jour As Integer, X As Integer
'*******Variables à déterminer********
Jour = 14 ' à déterminer
Path = "C:Excel" ' à déterminer
Feuille = "Fiche de travail RTB"
Ref = Range("A1").Address
'*******Variables à déterminer********
file = Dir(Path & "*.xls")
Do While file <> ""
If Len(file) - Len(Application.Substitute(file, "-", "")) = 2 Then
If Val(Split(file, "-")(2)) = 14 Then
X = X + 1
'Où la copie aura lieu ... à déterminer
ThisWorkbook.Worksheets("Feuil1").Range("B" & X) = _
GetValue(Path, file, Feuille, Ref)
End If
End If
file = Dir()
Loop
End Sub
'-------------------------------------------------
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
' Create the argument
Arg = "'" & Path & "[" & file & "]" & sheet & "'!" & _
Range(Ref).Range("A1").Address(, , xlR1C1)
'Execute an XLM macro
GetValue = Application.ExecuteExcel4Macro(Arg)
DoEvents
End Function
'-------------------------------------------
Salutations!
"William" a écrit dans le message de
news:
La procédure que tu m'as donné devrait, en effet, marcher. J'arrive à la
suivre, à la comprendre mais je dois me rater qque part.à cette fonction, j'ai ajouté la variable JOUR et cela était pour
extraire
seulement certains fichiers qui avaient dansleur nom (format date) un jour (dd) particulier sans tenir compte du
mois
ou de l'année.
Exactement ce que je voulais.
Il me semble que c'est un problème de syntaxe des éléments que j'ai à
définir.
Concernant la cellule A1, 3 possibilités : groupe 3000, groupe 5000 et
groupe 7000 (donc toujours le mot "groupe")
Concernant l'apparence des noms des feuilles voici un exemple : "Fiche de
travail RTB" les autres noms étant de cet accabit ; auccun mot réccurent
mais les noms sont tous connues et c'est un des éléments qui me permettra
une ségrégation des infos.
Et voici des noms de fichiers :
2004-07-09_17h01m45sGroupe 5000Fiche de travail RTB.xls
2004-07-09_16h56m32sGroupe 3000Fiche de travail RTB.xls
2004-07-09_16h41m04sGroupe 5000Fiche de travail RTB.xls
A noter que j'avais bien remplit les variables à déterminer, comme ceci :
Jour = 09 ' à déterminer
Path = "P:CONTROLESPRODUCTION"
Feuille = "Fiche de travail RTB"
Ref = Range("A1").Address ==> et pas "groupe 5000" comme dans mon
post
précédent où il y a eu un mauvais couper-coller
Oublierais-je des choses à faire dans le reste de la formule?
j'espère que je n'oublie rien
William
"michdenis" a écrit dans le message de news:Bonjour William,
Ceci détermine le nom de ton classeur :
nom = Format(Now, "yyyy-MM-dd_hh""h""mm""m""ss""s") & _
ActiveSheet.Range("A1").Text & ActiveSheet.Name & ".xls"
Si tu me donnais en clair à quoi ressemble la chaîne de caractères
représentant le nom de 2 ou 3 classeurs, celafaciliterait la tâche pour savoir comment extraire le nom de la feuille
de
l'ensemble de la chaîne. Que contient lacellule A1 et quelle apprence ont le noms de tes feuilles ?
En principe c'est "facile" la procédure "TrouverMaValeur" extrait la
valeur d'un fichier à partir des paramêtres decette fonction : GetValue(Path, file, Feuille, Ref) , il s'agit donc
que
tu renseignes (définissent) chaque élément decette fonctiion avant de l'appeler.
PATH = Chemin et répertoire où se trouve tes fichiers
File = Nom du fichier
Feuille = Nom de la feuille
Ref = référence à une adresse particulière d'une cellule.
à cette fonction, j'ai ajouté la variable JOUR et cela était pour
extraire
seulement certains fichiers qui avaient dansleur nom (format date) un jour (dd) particulier sans tenir compte du
mois
ou de l'année.
'-------------------------------------------------
Sub TrouverMaValeur()
Dim Path As String, file As String
Dim Feuille As String, Ref As String
Dim Jour As Integer, X As Integer
'*******Variables à déterminer********
Jour = 25 ' à déterminer
Path = "C:Excel"
Feuille = "Feuil1"
Ref = Range("A1").Address
'*******Variables à déterminer********
file = Dir(Path & "*.xls")
Do While file <> ""
If Len(file) - Len(Application.Substitute(file, "-", "")) = Jour
Then
If Val(Split(file, "-")(2)) = Jour Then
X = X + 1
'Où la copie aura lieu ... à déterminer
ThisWorkbook.Worksheets("Feuil1").Range("B" & X) = _
GetValue(Path, file, Feuille, Ref)
End If
End If
file = Dir()
Loop
End Sub
'-------------------------------------------------
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
' Create the argument
Arg = "'" & Path & "[" & file & "]" & sheet & "'!" & _
Range(Ref).Range("A1").Address(, , xlR1C1)
'Execute an XLM macro
GetValue = Application.ExecuteExcel4Macro(Arg)
DoEvents
End Function
'-------------------------------------------------
Salutations!
Bonjour William,
Essaie ceci, j'ai seulement modifier un truc pour tenir compte de ta
chaîne de caractères des noms de fichiers.
Sur demande, je t'envoie un exemple...
'-------------------------------------------
Sub TrouverMaValeur()
Dim Path As String, file As String
Dim Feuille As String, Ref As String
Dim Jour As Integer, X As Integer
'*******Variables à déterminer********
Jour = 14 ' à déterminer
Path = "C:Excel" ' à déterminer
Feuille = "Fiche de travail RTB"
Ref = Range("A1").Address
'*******Variables à déterminer********
file = Dir(Path & "*.xls")
Do While file <> ""
If Len(file) - Len(Application.Substitute(file, "-", "")) = 2 Then
If Val(Split(file, "-")(2)) = 14 Then
X = X + 1
'Où la copie aura lieu ... à déterminer
ThisWorkbook.Worksheets("Feuil1").Range("B" & X) = _
GetValue(Path, file, Feuille, Ref)
End If
End If
file = Dir()
Loop
End Sub
'-------------------------------------------------
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
' Create the argument
Arg = "'" & Path & "[" & file & "]" & sheet & "'!" & _
Range(Ref).Range("A1").Address(, , xlR1C1)
'Execute an XLM macro
GetValue = Application.ExecuteExcel4Macro(Arg)
DoEvents
End Function
'-------------------------------------------
Salutations!
"William" <brun_rhodanienne@hotmail.com> a écrit dans le message de
news:OQFcQaNaEHA.2056@TK2MSFTNGP12.phx.gbl...
La procédure que tu m'as donné devrait, en effet, marcher. J'arrive à la
suivre, à la comprendre mais je dois me rater qque part.
à cette fonction, j'ai ajouté la variable JOUR et cela était pour
extraire
seulement certains fichiers qui avaient dans
leur nom (format date) un jour (dd) particulier sans tenir compte du
mois
ou de l'année.
Exactement ce que je voulais.
Il me semble que c'est un problème de syntaxe des éléments que j'ai à
définir.
Concernant la cellule A1, 3 possibilités : groupe 3000, groupe 5000 et
groupe 7000 (donc toujours le mot "groupe")
Concernant l'apparence des noms des feuilles voici un exemple : "Fiche de
travail RTB" les autres noms étant de cet accabit ; auccun mot réccurent
mais les noms sont tous connues et c'est un des éléments qui me permettra
une ségrégation des infos.
Et voici des noms de fichiers :
2004-07-09_17h01m45sGroupe 5000Fiche de travail RTB.xls
2004-07-09_16h56m32sGroupe 3000Fiche de travail RTB.xls
2004-07-09_16h41m04sGroupe 5000Fiche de travail RTB.xls
A noter que j'avais bien remplit les variables à déterminer, comme ceci :
Jour = 09 ' à déterminer
Path = "P:CONTROLESPRODUCTION"
Feuille = "Fiche de travail RTB"
Ref = Range("A1").Address ==> et pas "groupe 5000" comme dans mon
post
précédent où il y a eu un mauvais couper-coller
Oublierais-je des choses à faire dans le reste de la formule?
j'espère que je n'oublie rien
William
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
ue7MYMNaEHA.712@TK2MSFTNGP11.phx.gbl...
Bonjour William,
Ceci détermine le nom de ton classeur :
nom = Format(Now, "yyyy-MM-dd_hh""h""mm""m""ss""s") & _
ActiveSheet.Range("A1").Text & ActiveSheet.Name & ".xls"
Si tu me donnais en clair à quoi ressemble la chaîne de caractères
représentant le nom de 2 ou 3 classeurs, cela
faciliterait la tâche pour savoir comment extraire le nom de la feuille
de
l'ensemble de la chaîne. Que contient la
cellule A1 et quelle apprence ont le noms de tes feuilles ?
En principe c'est "facile" la procédure "TrouverMaValeur" extrait la
valeur d'un fichier à partir des paramêtres de
cette fonction : GetValue(Path, file, Feuille, Ref) , il s'agit donc
que
tu renseignes (définissent) chaque élément de
cette fonctiion avant de l'appeler.
PATH = Chemin et répertoire où se trouve tes fichiers
File = Nom du fichier
Feuille = Nom de la feuille
Ref = référence à une adresse particulière d'une cellule.
à cette fonction, j'ai ajouté la variable JOUR et cela était pour
extraire
seulement certains fichiers qui avaient dans
leur nom (format date) un jour (dd) particulier sans tenir compte du
mois
ou de l'année.
'-------------------------------------------------
Sub TrouverMaValeur()
Dim Path As String, file As String
Dim Feuille As String, Ref As String
Dim Jour As Integer, X As Integer
'*******Variables à déterminer********
Jour = 25 ' à déterminer
Path = "C:Excel"
Feuille = "Feuil1"
Ref = Range("A1").Address
'*******Variables à déterminer********
file = Dir(Path & "*.xls")
Do While file <> ""
If Len(file) - Len(Application.Substitute(file, "-", "")) = Jour
Then
If Val(Split(file, "-")(2)) = Jour Then
X = X + 1
'Où la copie aura lieu ... à déterminer
ThisWorkbook.Worksheets("Feuil1").Range("B" & X) = _
GetValue(Path, file, Feuille, Ref)
End If
End If
file = Dir()
Loop
End Sub
'-------------------------------------------------
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
' Create the argument
Arg = "'" & Path & "[" & file & "]" & sheet & "'!" & _
Range(Ref).Range("A1").Address(, , xlR1C1)
'Execute an XLM macro
GetValue = Application.ExecuteExcel4Macro(Arg)
DoEvents
End Function
'-------------------------------------------------
Salutations!
Bonjour William,
Essaie ceci, j'ai seulement modifier un truc pour tenir compte de ta
chaîne de caractères des noms de fichiers.
Sur demande, je t'envoie un exemple...
'-------------------------------------------
Sub TrouverMaValeur()
Dim Path As String, file As String
Dim Feuille As String, Ref As String
Dim Jour As Integer, X As Integer
'*******Variables à déterminer********
Jour = 14 ' à déterminer
Path = "C:Excel" ' à déterminer
Feuille = "Fiche de travail RTB"
Ref = Range("A1").Address
'*******Variables à déterminer********
file = Dir(Path & "*.xls")
Do While file <> ""
If Len(file) - Len(Application.Substitute(file, "-", "")) = 2 Then
If Val(Split(file, "-")(2)) = 14 Then
X = X + 1
'Où la copie aura lieu ... à déterminer
ThisWorkbook.Worksheets("Feuil1").Range("B" & X) = _
GetValue(Path, file, Feuille, Ref)
End If
End If
file = Dir()
Loop
End Sub
'-------------------------------------------------
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
' Create the argument
Arg = "'" & Path & "[" & file & "]" & sheet & "'!" & _
Range(Ref).Range("A1").Address(, , xlR1C1)
'Execute an XLM macro
GetValue = Application.ExecuteExcel4Macro(Arg)
DoEvents
End Function
'-------------------------------------------
Salutations!
"William" a écrit dans le message de
news:
La procédure que tu m'as donné devrait, en effet, marcher. J'arrive à la
suivre, à la comprendre mais je dois me rater qque part.à cette fonction, j'ai ajouté la variable JOUR et cela était pour
extraire
seulement certains fichiers qui avaient dansleur nom (format date) un jour (dd) particulier sans tenir compte du
mois
ou de l'année.
Exactement ce que je voulais.
Il me semble que c'est un problème de syntaxe des éléments que j'ai à
définir.
Concernant la cellule A1, 3 possibilités : groupe 3000, groupe 5000 et
groupe 7000 (donc toujours le mot "groupe")
Concernant l'apparence des noms des feuilles voici un exemple : "Fiche de
travail RTB" les autres noms étant de cet accabit ; auccun mot réccurent
mais les noms sont tous connues et c'est un des éléments qui me permettra
une ségrégation des infos.
Et voici des noms de fichiers :
2004-07-09_17h01m45sGroupe 5000Fiche de travail RTB.xls
2004-07-09_16h56m32sGroupe 3000Fiche de travail RTB.xls
2004-07-09_16h41m04sGroupe 5000Fiche de travail RTB.xls
A noter que j'avais bien remplit les variables à déterminer, comme ceci :
Jour = 09 ' à déterminer
Path = "P:CONTROLESPRODUCTION"
Feuille = "Fiche de travail RTB"
Ref = Range("A1").Address ==> et pas "groupe 5000" comme dans mon
post
précédent où il y a eu un mauvais couper-coller
Oublierais-je des choses à faire dans le reste de la formule?
j'espère que je n'oublie rien
William
"michdenis" a écrit dans le message de news:Bonjour William,
Ceci détermine le nom de ton classeur :
nom = Format(Now, "yyyy-MM-dd_hh""h""mm""m""ss""s") & _
ActiveSheet.Range("A1").Text & ActiveSheet.Name & ".xls"
Si tu me donnais en clair à quoi ressemble la chaîne de caractères
représentant le nom de 2 ou 3 classeurs, celafaciliterait la tâche pour savoir comment extraire le nom de la feuille
de
l'ensemble de la chaîne. Que contient lacellule A1 et quelle apprence ont le noms de tes feuilles ?
En principe c'est "facile" la procédure "TrouverMaValeur" extrait la
valeur d'un fichier à partir des paramêtres decette fonction : GetValue(Path, file, Feuille, Ref) , il s'agit donc
que
tu renseignes (définissent) chaque élément decette fonctiion avant de l'appeler.
PATH = Chemin et répertoire où se trouve tes fichiers
File = Nom du fichier
Feuille = Nom de la feuille
Ref = référence à une adresse particulière d'une cellule.
à cette fonction, j'ai ajouté la variable JOUR et cela était pour
extraire
seulement certains fichiers qui avaient dansleur nom (format date) un jour (dd) particulier sans tenir compte du
mois
ou de l'année.
'-------------------------------------------------
Sub TrouverMaValeur()
Dim Path As String, file As String
Dim Feuille As String, Ref As String
Dim Jour As Integer, X As Integer
'*******Variables à déterminer********
Jour = 25 ' à déterminer
Path = "C:Excel"
Feuille = "Feuil1"
Ref = Range("A1").Address
'*******Variables à déterminer********
file = Dir(Path & "*.xls")
Do While file <> ""
If Len(file) - Len(Application.Substitute(file, "-", "")) = Jour
Then
If Val(Split(file, "-")(2)) = Jour Then
X = X + 1
'Où la copie aura lieu ... à déterminer
ThisWorkbook.Worksheets("Feuil1").Range("B" & X) = _
GetValue(Path, file, Feuille, Ref)
End If
End If
file = Dir()
Loop
End Sub
'-------------------------------------------------
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
' Create the argument
Arg = "'" & Path & "[" & file & "]" & sheet & "'!" & _
Range(Ref).Range("A1").Address(, , xlR1C1)
'Execute an XLM macro
GetValue = Application.ExecuteExcel4Macro(Arg)
DoEvents
End Function
'-------------------------------------------------
Salutations!
Fichier exemple envoyé.
Salutations!
"William" a écrit dans le message de
news:
Bonjour Michel,
je serais bien tenté par ta proposition de m'envoyer un exemple.
Je comprends pas ce qui cloche :
Je colle bien ton Sub et ta Public fonction, je renseigne les variables
entre les 2 lignes de ******* et j'exécute la macro TrouverMaValeur(),
mais
il ne marque rien!!! même pas un petit message d'erreur (qui sont
d'habitude si crispant)
Ne devrais-je pas changer les "sheet" de la Public Fonction ??
Est-ce que j'exécute mal le module ??
En espérant ne pas t'exaspérer...
William
"michdenis" a écrit dans le message de news:Bonjour William,
Essaie ceci, j'ai seulement modifier un truc pour tenir compte de ta
chaîne de caractères des noms de fichiers.
Sur demande, je t'envoie un exemple...
'-------------------------------------------
Sub TrouverMaValeur()
Dim Path As String, file As String
Dim Feuille As String, Ref As String
Dim Jour As Integer, X As Integer
'*******Variables à déterminer********
Jour = 14 ' à déterminer
Path = "C:Excel" ' à déterminer
Feuille = "Fiche de travail RTB"
Ref = Range("A1").Address
'*******Variables à déterminer********
file = Dir(Path & "*.xls")
Do While file <> ""
If Len(file) - Len(Application.Substitute(file, "-", "")) = 2 Then
If Val(Split(file, "-")(2)) = 14 Then
X = X + 1
'Où la copie aura lieu ... à déterminer
ThisWorkbook.Worksheets("Feuil1").Range("B" & X) = _
GetValue(Path, file, Feuille, Ref)
End If
End If
file = Dir()
Loop
End Sub
'-------------------------------------------------
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
' Create the argument
Arg = "'" & Path & "[" & file & "]" & sheet & "'!" & _
Range(Ref).Range("A1").Address(, , xlR1C1)
'Execute an XLM macro
GetValue = Application.ExecuteExcel4Macro(Arg)
DoEvents
End Function
'-------------------------------------------
Salutations!
"William" a écrit dans le message de
news:La procédure que tu m'as donné devrait, en effet, marcher. J'arrive à la
suivre, à la comprendre mais je dois me rater qque part.à cette fonction, j'ai ajouté la variable JOUR et cela était pour
extraireseulement certains fichiers qui avaient dansleur nom (format date) un jour (dd) particulier sans tenir compte du
moisou de l'année.
Exactement ce que je voulais.
Il me semble que c'est un problème de syntaxe des éléments que j'ai à
définir.
Concernant la cellule A1, 3 possibilités : groupe 3000, groupe 5000 et
groupe 7000 (donc toujours le mot "groupe")
Concernant l'apparence des noms des feuilles voici un exemple : "Fiche
de
travail RTB" les autres noms étant de cet accabit ; auccun mot
réccurent
mais les noms sont tous connues et c'est un des éléments qui me
permettra
une ségrégation des infos.
Et voici des noms de fichiers :
2004-07-09_17h01m45sGroupe 5000Fiche de travail RTB.xls
2004-07-09_16h56m32sGroupe 3000Fiche de travail RTB.xls
2004-07-09_16h41m04sGroupe 5000Fiche de travail RTB.xls
A noter que j'avais bien remplit les variables à déterminer, comme ceci
:
Jour = 09 ' à déterminer
Path = "P:CONTROLESPRODUCTION"
Feuille = "Fiche de travail RTB"
Ref = Range("A1").Address ==> et pas "groupe 5000" comme dans mon
postprécédent où il y a eu un mauvais couper-coller
Oublierais-je des choses à faire dans le reste de la formule?
j'espère que je n'oublie rien
William
"michdenis" a écrit dans le message de news:Bonjour William,
Ceci détermine le nom de ton classeur :
nom = Format(Now, "yyyy-MM-dd_hh""h""mm""m""ss""s") & _
ActiveSheet.Range("A1").Text & ActiveSheet.Name & ".xls"
Si tu me donnais en clair à quoi ressemble la chaîne de caractères
représentant le nom de 2 ou 3 classeurs, celafaciliterait la tâche pour savoir comment extraire le nom de la
feuille
del'ensemble de la chaîne. Que contient lacellule A1 et quelle apprence ont le noms de tes feuilles ?
En principe c'est "facile" la procédure "TrouverMaValeur" extrait la
valeur d'un fichier à partir des paramêtres decette fonction : GetValue(Path, file, Feuille, Ref) , il s'agit donc
quetu renseignes (définissent) chaque élément decette fonctiion avant de l'appeler.
PATH = Chemin et répertoire où se trouve tes fichiers
File = Nom du fichier
Feuille = Nom de la feuille
Ref = référence à une adresse particulière d'une cellule.
à cette fonction, j'ai ajouté la variable JOUR et cela était pour
extraireseulement certains fichiers qui avaient dansleur nom (format date) un jour (dd) particulier sans tenir compte du
moisou de l'année.
'-------------------------------------------------
Sub TrouverMaValeur()
Dim Path As String, file As String
Dim Feuille As String, Ref As String
Dim Jour As Integer, X As Integer
'*******Variables à déterminer********
Jour = 25 ' à déterminer
Path = "C:Excel"
Feuille = "Feuil1"
Ref = Range("A1").Address
'*******Variables à déterminer********
file = Dir(Path & "*.xls")
Do While file <> ""
If Len(file) - Len(Application.Substitute(file, "-", "")) = Jour
ThenIf Val(Split(file, "-")(2)) = Jour Then
X = X + 1
'Où la copie aura lieu ... à déterminer
ThisWorkbook.Worksheets("Feuil1").Range("B" & X) = _
GetValue(Path, file, Feuille, Ref)
End If
End If
file = Dir()
Loop
End Sub
'-------------------------------------------------
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
' Create the argument
Arg = "'" & Path & "[" & file & "]" & sheet & "'!" & _
Range(Ref).Range("A1").Address(, , xlR1C1)
'Execute an XLM macro
GetValue = Application.ExecuteExcel4Macro(Arg)
DoEvents
End Function
'-------------------------------------------------
Salutations!
Fichier exemple envoyé.
Salutations!
"William" <brun_rhodanienne@hotmail.com> a écrit dans le message de
news:OHDZKQOaEHA.4068@TK2MSFTNGP10.phx.gbl...
Bonjour Michel,
je serais bien tenté par ta proposition de m'envoyer un exemple.
Je comprends pas ce qui cloche :
Je colle bien ton Sub et ta Public fonction, je renseigne les variables
entre les 2 lignes de ******* et j'exécute la macro TrouverMaValeur(),
mais
il ne marque rien!!! même pas un petit message d'erreur (qui sont
d'habitude si crispant)
Ne devrais-je pas changer les "sheet" de la Public Fonction ??
Est-ce que j'exécute mal le module ??
En espérant ne pas t'exaspérer...
William
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
esH715NaEHA.4092@TK2MSFTNGP11.phx.gbl...
Bonjour William,
Essaie ceci, j'ai seulement modifier un truc pour tenir compte de ta
chaîne de caractères des noms de fichiers.
Sur demande, je t'envoie un exemple...
'-------------------------------------------
Sub TrouverMaValeur()
Dim Path As String, file As String
Dim Feuille As String, Ref As String
Dim Jour As Integer, X As Integer
'*******Variables à déterminer********
Jour = 14 ' à déterminer
Path = "C:Excel" ' à déterminer
Feuille = "Fiche de travail RTB"
Ref = Range("A1").Address
'*******Variables à déterminer********
file = Dir(Path & "*.xls")
Do While file <> ""
If Len(file) - Len(Application.Substitute(file, "-", "")) = 2 Then
If Val(Split(file, "-")(2)) = 14 Then
X = X + 1
'Où la copie aura lieu ... à déterminer
ThisWorkbook.Worksheets("Feuil1").Range("B" & X) = _
GetValue(Path, file, Feuille, Ref)
End If
End If
file = Dir()
Loop
End Sub
'-------------------------------------------------
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
' Create the argument
Arg = "'" & Path & "[" & file & "]" & sheet & "'!" & _
Range(Ref).Range("A1").Address(, , xlR1C1)
'Execute an XLM macro
GetValue = Application.ExecuteExcel4Macro(Arg)
DoEvents
End Function
'-------------------------------------------
Salutations!
"William" <brun_rhodanienne@hotmail.com> a écrit dans le message de
news:OQFcQaNaEHA.2056@TK2MSFTNGP12.phx.gbl...
La procédure que tu m'as donné devrait, en effet, marcher. J'arrive à la
suivre, à la comprendre mais je dois me rater qque part.
à cette fonction, j'ai ajouté la variable JOUR et cela était pour
extraire
seulement certains fichiers qui avaient dans
leur nom (format date) un jour (dd) particulier sans tenir compte du
mois
ou de l'année.
Exactement ce que je voulais.
Il me semble que c'est un problème de syntaxe des éléments que j'ai à
définir.
Concernant la cellule A1, 3 possibilités : groupe 3000, groupe 5000 et
groupe 7000 (donc toujours le mot "groupe")
Concernant l'apparence des noms des feuilles voici un exemple : "Fiche
de
travail RTB" les autres noms étant de cet accabit ; auccun mot
réccurent
mais les noms sont tous connues et c'est un des éléments qui me
permettra
une ségrégation des infos.
Et voici des noms de fichiers :
2004-07-09_17h01m45sGroupe 5000Fiche de travail RTB.xls
2004-07-09_16h56m32sGroupe 3000Fiche de travail RTB.xls
2004-07-09_16h41m04sGroupe 5000Fiche de travail RTB.xls
A noter que j'avais bien remplit les variables à déterminer, comme ceci
:
Jour = 09 ' à déterminer
Path = "P:CONTROLESPRODUCTION"
Feuille = "Fiche de travail RTB"
Ref = Range("A1").Address ==> et pas "groupe 5000" comme dans mon
post
précédent où il y a eu un mauvais couper-coller
Oublierais-je des choses à faire dans le reste de la formule?
j'espère que je n'oublie rien
William
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
ue7MYMNaEHA.712@TK2MSFTNGP11.phx.gbl...
Bonjour William,
Ceci détermine le nom de ton classeur :
nom = Format(Now, "yyyy-MM-dd_hh""h""mm""m""ss""s") & _
ActiveSheet.Range("A1").Text & ActiveSheet.Name & ".xls"
Si tu me donnais en clair à quoi ressemble la chaîne de caractères
représentant le nom de 2 ou 3 classeurs, cela
faciliterait la tâche pour savoir comment extraire le nom de la
feuille
de
l'ensemble de la chaîne. Que contient la
cellule A1 et quelle apprence ont le noms de tes feuilles ?
En principe c'est "facile" la procédure "TrouverMaValeur" extrait la
valeur d'un fichier à partir des paramêtres de
cette fonction : GetValue(Path, file, Feuille, Ref) , il s'agit donc
que
tu renseignes (définissent) chaque élément de
cette fonctiion avant de l'appeler.
PATH = Chemin et répertoire où se trouve tes fichiers
File = Nom du fichier
Feuille = Nom de la feuille
Ref = référence à une adresse particulière d'une cellule.
à cette fonction, j'ai ajouté la variable JOUR et cela était pour
extraire
seulement certains fichiers qui avaient dans
leur nom (format date) un jour (dd) particulier sans tenir compte du
mois
ou de l'année.
'-------------------------------------------------
Sub TrouverMaValeur()
Dim Path As String, file As String
Dim Feuille As String, Ref As String
Dim Jour As Integer, X As Integer
'*******Variables à déterminer********
Jour = 25 ' à déterminer
Path = "C:Excel"
Feuille = "Feuil1"
Ref = Range("A1").Address
'*******Variables à déterminer********
file = Dir(Path & "*.xls")
Do While file <> ""
If Len(file) - Len(Application.Substitute(file, "-", "")) = Jour
Then
If Val(Split(file, "-")(2)) = Jour Then
X = X + 1
'Où la copie aura lieu ... à déterminer
ThisWorkbook.Worksheets("Feuil1").Range("B" & X) = _
GetValue(Path, file, Feuille, Ref)
End If
End If
file = Dir()
Loop
End Sub
'-------------------------------------------------
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
' Create the argument
Arg = "'" & Path & "[" & file & "]" & sheet & "'!" & _
Range(Ref).Range("A1").Address(, , xlR1C1)
'Execute an XLM macro
GetValue = Application.ExecuteExcel4Macro(Arg)
DoEvents
End Function
'-------------------------------------------------
Salutations!
Fichier exemple envoyé.
Salutations!
"William" a écrit dans le message de
news:
Bonjour Michel,
je serais bien tenté par ta proposition de m'envoyer un exemple.
Je comprends pas ce qui cloche :
Je colle bien ton Sub et ta Public fonction, je renseigne les variables
entre les 2 lignes de ******* et j'exécute la macro TrouverMaValeur(),
mais
il ne marque rien!!! même pas un petit message d'erreur (qui sont
d'habitude si crispant)
Ne devrais-je pas changer les "sheet" de la Public Fonction ??
Est-ce que j'exécute mal le module ??
En espérant ne pas t'exaspérer...
William
"michdenis" a écrit dans le message de news:Bonjour William,
Essaie ceci, j'ai seulement modifier un truc pour tenir compte de ta
chaîne de caractères des noms de fichiers.
Sur demande, je t'envoie un exemple...
'-------------------------------------------
Sub TrouverMaValeur()
Dim Path As String, file As String
Dim Feuille As String, Ref As String
Dim Jour As Integer, X As Integer
'*******Variables à déterminer********
Jour = 14 ' à déterminer
Path = "C:Excel" ' à déterminer
Feuille = "Fiche de travail RTB"
Ref = Range("A1").Address
'*******Variables à déterminer********
file = Dir(Path & "*.xls")
Do While file <> ""
If Len(file) - Len(Application.Substitute(file, "-", "")) = 2 Then
If Val(Split(file, "-")(2)) = 14 Then
X = X + 1
'Où la copie aura lieu ... à déterminer
ThisWorkbook.Worksheets("Feuil1").Range("B" & X) = _
GetValue(Path, file, Feuille, Ref)
End If
End If
file = Dir()
Loop
End Sub
'-------------------------------------------------
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
' Create the argument
Arg = "'" & Path & "[" & file & "]" & sheet & "'!" & _
Range(Ref).Range("A1").Address(, , xlR1C1)
'Execute an XLM macro
GetValue = Application.ExecuteExcel4Macro(Arg)
DoEvents
End Function
'-------------------------------------------
Salutations!
"William" a écrit dans le message de
news:La procédure que tu m'as donné devrait, en effet, marcher. J'arrive à la
suivre, à la comprendre mais je dois me rater qque part.à cette fonction, j'ai ajouté la variable JOUR et cela était pour
extraireseulement certains fichiers qui avaient dansleur nom (format date) un jour (dd) particulier sans tenir compte du
moisou de l'année.
Exactement ce que je voulais.
Il me semble que c'est un problème de syntaxe des éléments que j'ai à
définir.
Concernant la cellule A1, 3 possibilités : groupe 3000, groupe 5000 et
groupe 7000 (donc toujours le mot "groupe")
Concernant l'apparence des noms des feuilles voici un exemple : "Fiche
de
travail RTB" les autres noms étant de cet accabit ; auccun mot
réccurent
mais les noms sont tous connues et c'est un des éléments qui me
permettra
une ségrégation des infos.
Et voici des noms de fichiers :
2004-07-09_17h01m45sGroupe 5000Fiche de travail RTB.xls
2004-07-09_16h56m32sGroupe 3000Fiche de travail RTB.xls
2004-07-09_16h41m04sGroupe 5000Fiche de travail RTB.xls
A noter que j'avais bien remplit les variables à déterminer, comme ceci
:
Jour = 09 ' à déterminer
Path = "P:CONTROLESPRODUCTION"
Feuille = "Fiche de travail RTB"
Ref = Range("A1").Address ==> et pas "groupe 5000" comme dans mon
postprécédent où il y a eu un mauvais couper-coller
Oublierais-je des choses à faire dans le reste de la formule?
j'espère que je n'oublie rien
William
"michdenis" a écrit dans le message de news:Bonjour William,
Ceci détermine le nom de ton classeur :
nom = Format(Now, "yyyy-MM-dd_hh""h""mm""m""ss""s") & _
ActiveSheet.Range("A1").Text & ActiveSheet.Name & ".xls"
Si tu me donnais en clair à quoi ressemble la chaîne de caractères
représentant le nom de 2 ou 3 classeurs, celafaciliterait la tâche pour savoir comment extraire le nom de la
feuille
del'ensemble de la chaîne. Que contient lacellule A1 et quelle apprence ont le noms de tes feuilles ?
En principe c'est "facile" la procédure "TrouverMaValeur" extrait la
valeur d'un fichier à partir des paramêtres decette fonction : GetValue(Path, file, Feuille, Ref) , il s'agit donc
quetu renseignes (définissent) chaque élément decette fonctiion avant de l'appeler.
PATH = Chemin et répertoire où se trouve tes fichiers
File = Nom du fichier
Feuille = Nom de la feuille
Ref = référence à une adresse particulière d'une cellule.
à cette fonction, j'ai ajouté la variable JOUR et cela était pour
extraireseulement certains fichiers qui avaient dansleur nom (format date) un jour (dd) particulier sans tenir compte du
moisou de l'année.
'-------------------------------------------------
Sub TrouverMaValeur()
Dim Path As String, file As String
Dim Feuille As String, Ref As String
Dim Jour As Integer, X As Integer
'*******Variables à déterminer********
Jour = 25 ' à déterminer
Path = "C:Excel"
Feuille = "Feuil1"
Ref = Range("A1").Address
'*******Variables à déterminer********
file = Dir(Path & "*.xls")
Do While file <> ""
If Len(file) - Len(Application.Substitute(file, "-", "")) = Jour
ThenIf Val(Split(file, "-")(2)) = Jour Then
X = X + 1
'Où la copie aura lieu ... à déterminer
ThisWorkbook.Worksheets("Feuil1").Range("B" & X) = _
GetValue(Path, file, Feuille, Ref)
End If
End If
file = Dir()
Loop
End Sub
'-------------------------------------------------
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
' Create the argument
Arg = "'" & Path & "[" & file & "]" & sheet & "'!" & _
Range(Ref).Range("A1").Address(, , xlR1C1)
'Execute an XLM macro
GetValue = Application.ExecuteExcel4Macro(Arg)
DoEvents
End Function
'-------------------------------------------------
Salutations!
Fichier exemple bien reçu
Bon, j'en connais un qui va s'arracher les cheveux
Mais avant de te dire le problème (je sens le stress qui monte...), je
suppose que la macro qu'il y a sur le fichier 2004-01-14....xls n'est pas
pour moi ?
En fait, ton exemple a bien marcher....(il y a un "mais" qui arrive)
Mais (j'avais raison!!!!) tu as pris comme variable le chiffre 14 présent
dans le fichier 2004-01-14...., j'ai donc voulu essayé avec un autre
fichier
sans le nombre 14 mais 2004-07-13.....
==> il me sors le nombre qui est en A1 de TON fichier càd 2004-01-14...
En fait, ca a très bien marché dès lors que j'ai vu qu'il fallait aussi
changé le 2ème "14" qui était passé inaperçu
En conclusion de ce premier problème, le fait de changer "Jour" par le
nombre recherché, a très bien fonctionné.
En revanche, le "loop" n'a pas fonctionné càd qu'il ne me marque qu'une
valeur en B1 et rien d'autre (pas les valeurs de A1 se situant dans les
autres fichiers contenant le nombre "13") ; je pense que ça vient du X+1
William
PS: pour ceux qui suivent la discussion, voici donc le code de michdenis
qui
a marché
'-------------------------------------------
Sub TrouverMaValeur()
Dim Path As String, file As String
Dim Feuille As String, Ref As String
Dim Jour As Integer, X As Integer
'*******Variables à déterminer********
Jour = 13 ' à déterminer
Path = "P:test" ' à déterminer
Feuille = "Fiche de travail RTB"
Ref = Range("A1").Address
'*******Variables à déterminer********
'merci à michdenis
file = Dir(Path & "*.xls")
Do While file <> ""
If Len(file) - Len(Application.Substitute(file, "-", "")) = 2 Then
If Val(Split(file, "-")(2)) = 13 Then
X = X + 1
'Où la copie aura lieu ... à déterminer
ThisWorkbook.Worksheets("Feuil1").Range("C" & X) = _
GetValue(Path, file, Feuille, Ref)
End If
End If
file = Dir()
Loop
End Sub
'-------------------------------------------------
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
' Create the argument
Arg = "'" & Path & "[" & file & "]" & sheet & "'!" & _
Range(Ref).Range("A1").Address(, , xlR1C1)
'Execute an XLM macro
GetValue = Application.ExecuteExcel4Macro(Arg)
DoEvents
End Function
'-------------------------------------------
"michdenis" a écrit dans le message de news:
Fichier exemple envoyé.
Salutations!
"William" a écrit dans le message de
news:Bonjour Michel,
je serais bien tenté par ta proposition de m'envoyer un exemple.
Je comprends pas ce qui cloche :
Je colle bien ton Sub et ta Public fonction, je renseigne les variables
entre les 2 lignes de ******* et j'exécute la macro TrouverMaValeur(),
maisil ne marque rien!!! même pas un petit message d'erreur (qui sont
d'habitude si crispant)
Ne devrais-je pas changer les "sheet" de la Public Fonction ??
Est-ce que j'exécute mal le module ??
En espérant ne pas t'exaspérer...
William
"michdenis" a écrit dans le message de news:Bonjour William,
Essaie ceci, j'ai seulement modifier un truc pour tenir compte de ta
chaîne de caractères des noms de fichiers.
Sur demande, je t'envoie un exemple...
'-------------------------------------------
Sub TrouverMaValeur()
Dim Path As String, file As String
Dim Feuille As String, Ref As String
Dim Jour As Integer, X As Integer
'*******Variables à déterminer********
Jour = 14 ' à déterminer
Path = "C:Excel" ' à déterminer
Feuille = "Fiche de travail RTB"
Ref = Range("A1").Address
'*******Variables à déterminer********
file = Dir(Path & "*.xls")
Do While file <> ""
If Len(file) - Len(Application.Substitute(file, "-", "")) = 2 Then
If Val(Split(file, "-")(2)) = 14 Then
X = X + 1
'Où la copie aura lieu ... à déterminer
ThisWorkbook.Worksheets("Feuil1").Range("B" & X) = _
GetValue(Path, file, Feuille, Ref)
End If
End If
file = Dir()
Loop
End Sub
'-------------------------------------------------
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
' Create the argument
Arg = "'" & Path & "[" & file & "]" & sheet & "'!" & _
Range(Ref).Range("A1").Address(, , xlR1C1)
'Execute an XLM macro
GetValue = Application.ExecuteExcel4Macro(Arg)
DoEvents
End Function
'-------------------------------------------
Salutations!
"William" a écrit dans le message de
news:La procédure que tu m'as donné devrait, en effet, marcher. J'arrive à
la
suivre, à la comprendre mais je dois me rater qque part.à cette fonction, j'ai ajouté la variable JOUR et cela était pour
extraireseulement certains fichiers qui avaient dansleur nom (format date) un jour (dd) particulier sans tenir compte du
moisou de l'année.
Exactement ce que je voulais.
Il me semble que c'est un problème de syntaxe des éléments que j'ai à
définir.
Concernant la cellule A1, 3 possibilités : groupe 3000, groupe 5000 et
groupe 7000 (donc toujours le mot "groupe")
Concernant l'apparence des noms des feuilles voici un exemple : "Fiche
detravail RTB" les autres noms étant de cet accabit ; auccun mot
réccurentmais les noms sont tous connues et c'est un des éléments qui me
permettraune ségrégation des infos.
Et voici des noms de fichiers :
2004-07-09_17h01m45sGroupe 5000Fiche de travail RTB.xls
2004-07-09_16h56m32sGroupe 3000Fiche de travail RTB.xls
2004-07-09_16h41m04sGroupe 5000Fiche de travail RTB.xls
A noter que j'avais bien remplit les variables à déterminer, comme
ceci
:Jour = 09 ' à déterminer
Path = "P:CONTROLESPRODUCTION"
Feuille = "Fiche de travail RTB"
Ref = Range("A1").Address ==> et pas "groupe 5000" comme dans
mon
postprécédent où il y a eu un mauvais couper-coller
Oublierais-je des choses à faire dans le reste de la formule?
j'espère que je n'oublie rien
William
"michdenis" a écrit dans le message de news:Bonjour William,
Ceci détermine le nom de ton classeur :
nom = Format(Now, "yyyy-MM-dd_hh""h""mm""m""ss""s") & _
ActiveSheet.Range("A1").Text & ActiveSheet.Name & ".xls"
Si tu me donnais en clair à quoi ressemble la chaîne de caractères
représentant le nom de 2 ou 3 classeurs, celafaciliterait la tâche pour savoir comment extraire le nom de la
feuilledel'ensemble de la chaîne. Que contient lacellule A1 et quelle apprence ont le noms de tes feuilles ?
En principe c'est "facile" la procédure "TrouverMaValeur" extrait la
valeur d'un fichier à partir des paramêtres decette fonction : GetValue(Path, file, Feuille, Ref) , il s'agit
donc
quetu renseignes (définissent) chaque élément decette fonctiion avant de l'appeler.
PATH = Chemin et répertoire où se trouve tes fichiers
File = Nom du fichier
Feuille = Nom de la feuille
Ref = référence à une adresse particulière d'une cellule.
à cette fonction, j'ai ajouté la variable JOUR et cela était pour
extraireseulement certains fichiers qui avaient dansleur nom (format date) un jour (dd) particulier sans tenir compte du
moisou de l'année.
'-------------------------------------------------
Sub TrouverMaValeur()
Dim Path As String, file As String
Dim Feuille As String, Ref As String
Dim Jour As Integer, X As Integer
'*******Variables à déterminer********
Jour = 25 ' à déterminer
Path = "C:Excel"
Feuille = "Feuil1"
Ref = Range("A1").Address
'*******Variables à déterminer********
file = Dir(Path & "*.xls")
Do While file <> ""
If Len(file) - Len(Application.Substitute(file, "-", "")) = Jour
ThenIf Val(Split(file, "-")(2)) = Jour Then
X = X + 1
'Où la copie aura lieu ... à déterminer
ThisWorkbook.Worksheets("Feuil1").Range("B" & X) = _
GetValue(Path, file, Feuille, Ref)
End If
End If
file = Dir()
Loop
End Sub
'-------------------------------------------------
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
' Create the argument
Arg = "'" & Path & "[" & file & "]" & sheet & "'!" & _
Range(Ref).Range("A1").Address(, , xlR1C1)
'Execute an XLM macro
GetValue = Application.ExecuteExcel4Macro(Arg)
DoEvents
End Function
'-------------------------------------------------
Salutations!
Fichier exemple bien reçu
Bon, j'en connais un qui va s'arracher les cheveux
Mais avant de te dire le problème (je sens le stress qui monte...), je
suppose que la macro qu'il y a sur le fichier 2004-01-14....xls n'est pas
pour moi ?
En fait, ton exemple a bien marcher....(il y a un "mais" qui arrive)
Mais (j'avais raison!!!!) tu as pris comme variable le chiffre 14 présent
dans le fichier 2004-01-14...., j'ai donc voulu essayé avec un autre
fichier
sans le nombre 14 mais 2004-07-13.....
==> il me sors le nombre qui est en A1 de TON fichier càd 2004-01-14...
En fait, ca a très bien marché dès lors que j'ai vu qu'il fallait aussi
changé le 2ème "14" qui était passé inaperçu
En conclusion de ce premier problème, le fait de changer "Jour" par le
nombre recherché, a très bien fonctionné.
En revanche, le "loop" n'a pas fonctionné càd qu'il ne me marque qu'une
valeur en B1 et rien d'autre (pas les valeurs de A1 se situant dans les
autres fichiers contenant le nombre "13") ; je pense que ça vient du X+1
William
PS: pour ceux qui suivent la discussion, voici donc le code de michdenis
qui
a marché
'-------------------------------------------
Sub TrouverMaValeur()
Dim Path As String, file As String
Dim Feuille As String, Ref As String
Dim Jour As Integer, X As Integer
'*******Variables à déterminer********
Jour = 13 ' à déterminer
Path = "P:test" ' à déterminer
Feuille = "Fiche de travail RTB"
Ref = Range("A1").Address
'*******Variables à déterminer********
'merci à michdenis
file = Dir(Path & "*.xls")
Do While file <> ""
If Len(file) - Len(Application.Substitute(file, "-", "")) = 2 Then
If Val(Split(file, "-")(2)) = 13 Then
X = X + 1
'Où la copie aura lieu ... à déterminer
ThisWorkbook.Worksheets("Feuil1").Range("C" & X) = _
GetValue(Path, file, Feuille, Ref)
End If
End If
file = Dir()
Loop
End Sub
'-------------------------------------------------
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
' Create the argument
Arg = "'" & Path & "[" & file & "]" & sheet & "'!" & _
Range(Ref).Range("A1").Address(, , xlR1C1)
'Execute an XLM macro
GetValue = Application.ExecuteExcel4Macro(Arg)
DoEvents
End Function
'-------------------------------------------
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
e0fwUWOaEHA.556@tk2msftngp13.phx.gbl...
Fichier exemple envoyé.
Salutations!
"William" <brun_rhodanienne@hotmail.com> a écrit dans le message de
news:OHDZKQOaEHA.4068@TK2MSFTNGP10.phx.gbl...
Bonjour Michel,
je serais bien tenté par ta proposition de m'envoyer un exemple.
Je comprends pas ce qui cloche :
Je colle bien ton Sub et ta Public fonction, je renseigne les variables
entre les 2 lignes de ******* et j'exécute la macro TrouverMaValeur(),
mais
il ne marque rien!!! même pas un petit message d'erreur (qui sont
d'habitude si crispant)
Ne devrais-je pas changer les "sheet" de la Public Fonction ??
Est-ce que j'exécute mal le module ??
En espérant ne pas t'exaspérer...
William
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
esH715NaEHA.4092@TK2MSFTNGP11.phx.gbl...
Bonjour William,
Essaie ceci, j'ai seulement modifier un truc pour tenir compte de ta
chaîne de caractères des noms de fichiers.
Sur demande, je t'envoie un exemple...
'-------------------------------------------
Sub TrouverMaValeur()
Dim Path As String, file As String
Dim Feuille As String, Ref As String
Dim Jour As Integer, X As Integer
'*******Variables à déterminer********
Jour = 14 ' à déterminer
Path = "C:Excel" ' à déterminer
Feuille = "Fiche de travail RTB"
Ref = Range("A1").Address
'*******Variables à déterminer********
file = Dir(Path & "*.xls")
Do While file <> ""
If Len(file) - Len(Application.Substitute(file, "-", "")) = 2 Then
If Val(Split(file, "-")(2)) = 14 Then
X = X + 1
'Où la copie aura lieu ... à déterminer
ThisWorkbook.Worksheets("Feuil1").Range("B" & X) = _
GetValue(Path, file, Feuille, Ref)
End If
End If
file = Dir()
Loop
End Sub
'-------------------------------------------------
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
' Create the argument
Arg = "'" & Path & "[" & file & "]" & sheet & "'!" & _
Range(Ref).Range("A1").Address(, , xlR1C1)
'Execute an XLM macro
GetValue = Application.ExecuteExcel4Macro(Arg)
DoEvents
End Function
'-------------------------------------------
Salutations!
"William" <brun_rhodanienne@hotmail.com> a écrit dans le message de
news:OQFcQaNaEHA.2056@TK2MSFTNGP12.phx.gbl...
La procédure que tu m'as donné devrait, en effet, marcher. J'arrive à
la
suivre, à la comprendre mais je dois me rater qque part.
à cette fonction, j'ai ajouté la variable JOUR et cela était pour
extraire
seulement certains fichiers qui avaient dans
leur nom (format date) un jour (dd) particulier sans tenir compte du
mois
ou de l'année.
Exactement ce que je voulais.
Il me semble que c'est un problème de syntaxe des éléments que j'ai à
définir.
Concernant la cellule A1, 3 possibilités : groupe 3000, groupe 5000 et
groupe 7000 (donc toujours le mot "groupe")
Concernant l'apparence des noms des feuilles voici un exemple : "Fiche
de
travail RTB" les autres noms étant de cet accabit ; auccun mot
réccurent
mais les noms sont tous connues et c'est un des éléments qui me
permettra
une ségrégation des infos.
Et voici des noms de fichiers :
2004-07-09_17h01m45sGroupe 5000Fiche de travail RTB.xls
2004-07-09_16h56m32sGroupe 3000Fiche de travail RTB.xls
2004-07-09_16h41m04sGroupe 5000Fiche de travail RTB.xls
A noter que j'avais bien remplit les variables à déterminer, comme
ceci
:
Jour = 09 ' à déterminer
Path = "P:CONTROLESPRODUCTION"
Feuille = "Fiche de travail RTB"
Ref = Range("A1").Address ==> et pas "groupe 5000" comme dans
mon
post
précédent où il y a eu un mauvais couper-coller
Oublierais-je des choses à faire dans le reste de la formule?
j'espère que je n'oublie rien
William
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
ue7MYMNaEHA.712@TK2MSFTNGP11.phx.gbl...
Bonjour William,
Ceci détermine le nom de ton classeur :
nom = Format(Now, "yyyy-MM-dd_hh""h""mm""m""ss""s") & _
ActiveSheet.Range("A1").Text & ActiveSheet.Name & ".xls"
Si tu me donnais en clair à quoi ressemble la chaîne de caractères
représentant le nom de 2 ou 3 classeurs, cela
faciliterait la tâche pour savoir comment extraire le nom de la
feuille
de
l'ensemble de la chaîne. Que contient la
cellule A1 et quelle apprence ont le noms de tes feuilles ?
En principe c'est "facile" la procédure "TrouverMaValeur" extrait la
valeur d'un fichier à partir des paramêtres de
cette fonction : GetValue(Path, file, Feuille, Ref) , il s'agit
donc
que
tu renseignes (définissent) chaque élément de
cette fonctiion avant de l'appeler.
PATH = Chemin et répertoire où se trouve tes fichiers
File = Nom du fichier
Feuille = Nom de la feuille
Ref = référence à une adresse particulière d'une cellule.
à cette fonction, j'ai ajouté la variable JOUR et cela était pour
extraire
seulement certains fichiers qui avaient dans
leur nom (format date) un jour (dd) particulier sans tenir compte du
mois
ou de l'année.
'-------------------------------------------------
Sub TrouverMaValeur()
Dim Path As String, file As String
Dim Feuille As String, Ref As String
Dim Jour As Integer, X As Integer
'*******Variables à déterminer********
Jour = 25 ' à déterminer
Path = "C:Excel"
Feuille = "Feuil1"
Ref = Range("A1").Address
'*******Variables à déterminer********
file = Dir(Path & "*.xls")
Do While file <> ""
If Len(file) - Len(Application.Substitute(file, "-", "")) = Jour
Then
If Val(Split(file, "-")(2)) = Jour Then
X = X + 1
'Où la copie aura lieu ... à déterminer
ThisWorkbook.Worksheets("Feuil1").Range("B" & X) = _
GetValue(Path, file, Feuille, Ref)
End If
End If
file = Dir()
Loop
End Sub
'-------------------------------------------------
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
' Create the argument
Arg = "'" & Path & "[" & file & "]" & sheet & "'!" & _
Range(Ref).Range("A1").Address(, , xlR1C1)
'Execute an XLM macro
GetValue = Application.ExecuteExcel4Macro(Arg)
DoEvents
End Function
'-------------------------------------------------
Salutations!
Fichier exemple bien reçu
Bon, j'en connais un qui va s'arracher les cheveux
Mais avant de te dire le problème (je sens le stress qui monte...), je
suppose que la macro qu'il y a sur le fichier 2004-01-14....xls n'est pas
pour moi ?
En fait, ton exemple a bien marcher....(il y a un "mais" qui arrive)
Mais (j'avais raison!!!!) tu as pris comme variable le chiffre 14 présent
dans le fichier 2004-01-14...., j'ai donc voulu essayé avec un autre
fichier
sans le nombre 14 mais 2004-07-13.....
==> il me sors le nombre qui est en A1 de TON fichier càd 2004-01-14...
En fait, ca a très bien marché dès lors que j'ai vu qu'il fallait aussi
changé le 2ème "14" qui était passé inaperçu
En conclusion de ce premier problème, le fait de changer "Jour" par le
nombre recherché, a très bien fonctionné.
En revanche, le "loop" n'a pas fonctionné càd qu'il ne me marque qu'une
valeur en B1 et rien d'autre (pas les valeurs de A1 se situant dans les
autres fichiers contenant le nombre "13") ; je pense que ça vient du X+1
William
PS: pour ceux qui suivent la discussion, voici donc le code de michdenis
qui
a marché
'-------------------------------------------
Sub TrouverMaValeur()
Dim Path As String, file As String
Dim Feuille As String, Ref As String
Dim Jour As Integer, X As Integer
'*******Variables à déterminer********
Jour = 13 ' à déterminer
Path = "P:test" ' à déterminer
Feuille = "Fiche de travail RTB"
Ref = Range("A1").Address
'*******Variables à déterminer********
'merci à michdenis
file = Dir(Path & "*.xls")
Do While file <> ""
If Len(file) - Len(Application.Substitute(file, "-", "")) = 2 Then
If Val(Split(file, "-")(2)) = 13 Then
X = X + 1
'Où la copie aura lieu ... à déterminer
ThisWorkbook.Worksheets("Feuil1").Range("C" & X) = _
GetValue(Path, file, Feuille, Ref)
End If
End If
file = Dir()
Loop
End Sub
'-------------------------------------------------
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
' Create the argument
Arg = "'" & Path & "[" & file & "]" & sheet & "'!" & _
Range(Ref).Range("A1").Address(, , xlR1C1)
'Execute an XLM macro
GetValue = Application.ExecuteExcel4Macro(Arg)
DoEvents
End Function
'-------------------------------------------
"michdenis" a écrit dans le message de news:
Fichier exemple envoyé.
Salutations!
"William" a écrit dans le message de
news:Bonjour Michel,
je serais bien tenté par ta proposition de m'envoyer un exemple.
Je comprends pas ce qui cloche :
Je colle bien ton Sub et ta Public fonction, je renseigne les variables
entre les 2 lignes de ******* et j'exécute la macro TrouverMaValeur(),
maisil ne marque rien!!! même pas un petit message d'erreur (qui sont
d'habitude si crispant)
Ne devrais-je pas changer les "sheet" de la Public Fonction ??
Est-ce que j'exécute mal le module ??
En espérant ne pas t'exaspérer...
William
"michdenis" a écrit dans le message de news:Bonjour William,
Essaie ceci, j'ai seulement modifier un truc pour tenir compte de ta
chaîne de caractères des noms de fichiers.
Sur demande, je t'envoie un exemple...
'-------------------------------------------
Sub TrouverMaValeur()
Dim Path As String, file As String
Dim Feuille As String, Ref As String
Dim Jour As Integer, X As Integer
'*******Variables à déterminer********
Jour = 14 ' à déterminer
Path = "C:Excel" ' à déterminer
Feuille = "Fiche de travail RTB"
Ref = Range("A1").Address
'*******Variables à déterminer********
file = Dir(Path & "*.xls")
Do While file <> ""
If Len(file) - Len(Application.Substitute(file, "-", "")) = 2 Then
If Val(Split(file, "-")(2)) = 14 Then
X = X + 1
'Où la copie aura lieu ... à déterminer
ThisWorkbook.Worksheets("Feuil1").Range("B" & X) = _
GetValue(Path, file, Feuille, Ref)
End If
End If
file = Dir()
Loop
End Sub
'-------------------------------------------------
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
' Create the argument
Arg = "'" & Path & "[" & file & "]" & sheet & "'!" & _
Range(Ref).Range("A1").Address(, , xlR1C1)
'Execute an XLM macro
GetValue = Application.ExecuteExcel4Macro(Arg)
DoEvents
End Function
'-------------------------------------------
Salutations!
"William" a écrit dans le message de
news:La procédure que tu m'as donné devrait, en effet, marcher. J'arrive à
la
suivre, à la comprendre mais je dois me rater qque part.à cette fonction, j'ai ajouté la variable JOUR et cela était pour
extraireseulement certains fichiers qui avaient dansleur nom (format date) un jour (dd) particulier sans tenir compte du
moisou de l'année.
Exactement ce que je voulais.
Il me semble que c'est un problème de syntaxe des éléments que j'ai à
définir.
Concernant la cellule A1, 3 possibilités : groupe 3000, groupe 5000 et
groupe 7000 (donc toujours le mot "groupe")
Concernant l'apparence des noms des feuilles voici un exemple : "Fiche
detravail RTB" les autres noms étant de cet accabit ; auccun mot
réccurentmais les noms sont tous connues et c'est un des éléments qui me
permettraune ségrégation des infos.
Et voici des noms de fichiers :
2004-07-09_17h01m45sGroupe 5000Fiche de travail RTB.xls
2004-07-09_16h56m32sGroupe 3000Fiche de travail RTB.xls
2004-07-09_16h41m04sGroupe 5000Fiche de travail RTB.xls
A noter que j'avais bien remplit les variables à déterminer, comme
ceci
:Jour = 09 ' à déterminer
Path = "P:CONTROLESPRODUCTION"
Feuille = "Fiche de travail RTB"
Ref = Range("A1").Address ==> et pas "groupe 5000" comme dans
mon
postprécédent où il y a eu un mauvais couper-coller
Oublierais-je des choses à faire dans le reste de la formule?
j'espère que je n'oublie rien
William
"michdenis" a écrit dans le message de news:Bonjour William,
Ceci détermine le nom de ton classeur :
nom = Format(Now, "yyyy-MM-dd_hh""h""mm""m""ss""s") & _
ActiveSheet.Range("A1").Text & ActiveSheet.Name & ".xls"
Si tu me donnais en clair à quoi ressemble la chaîne de caractères
représentant le nom de 2 ou 3 classeurs, celafaciliterait la tâche pour savoir comment extraire le nom de la
feuilledel'ensemble de la chaîne. Que contient lacellule A1 et quelle apprence ont le noms de tes feuilles ?
En principe c'est "facile" la procédure "TrouverMaValeur" extrait la
valeur d'un fichier à partir des paramêtres decette fonction : GetValue(Path, file, Feuille, Ref) , il s'agit
donc
quetu renseignes (définissent) chaque élément decette fonctiion avant de l'appeler.
PATH = Chemin et répertoire où se trouve tes fichiers
File = Nom du fichier
Feuille = Nom de la feuille
Ref = référence à une adresse particulière d'une cellule.
à cette fonction, j'ai ajouté la variable JOUR et cela était pour
extraireseulement certains fichiers qui avaient dansleur nom (format date) un jour (dd) particulier sans tenir compte du
moisou de l'année.
'-------------------------------------------------
Sub TrouverMaValeur()
Dim Path As String, file As String
Dim Feuille As String, Ref As String
Dim Jour As Integer, X As Integer
'*******Variables à déterminer********
Jour = 25 ' à déterminer
Path = "C:Excel"
Feuille = "Feuil1"
Ref = Range("A1").Address
'*******Variables à déterminer********
file = Dir(Path & "*.xls")
Do While file <> ""
If Len(file) - Len(Application.Substitute(file, "-", "")) = Jour
ThenIf Val(Split(file, "-")(2)) = Jour Then
X = X + 1
'Où la copie aura lieu ... à déterminer
ThisWorkbook.Worksheets("Feuil1").Range("B" & X) = _
GetValue(Path, file, Feuille, Ref)
End If
End If
file = Dir()
Loop
End Sub
'-------------------------------------------------
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
' Create the argument
Arg = "'" & Path & "[" & file & "]" & sheet & "'!" & _
Range(Ref).Range("A1").Address(, , xlR1C1)
'Execute an XLM macro
GetValue = Application.ExecuteExcel4Macro(Arg)
DoEvents
End Function
'-------------------------------------------------
Salutations!