Sur le site de F=E9d=E9ric Sigonneau, il y a un code permettant d'importer
des donn=E9es d'un autre fichier excel. Voici le code que j'ai modifi=E9
pour ma cause:
Sub LoopThruFiles()
Dim place As String
Dim FilesArray() As String, FileCounter As Integer
Dim FName As String, LoopCounter As Integer
FName =3D Dir("c:\Data\Heather's Team\Denys.xls") ' j'ai mis
l'adresse du fichier
Do While Len(FName) > 0
FileCounter =3D FileCounter + 1
ReDim Preserve FilesArray(1 To FileCounter)
FilesArray(FileCounter) =3D FName
FName =3D Dir()
Loop
If FileCounter > 0 Then
Application.ScreenUpdating =3D False
For LoopCounter =3D 1 To FileCounter
x =3D LoopCounter
'calcul de la plage de destination
'place =3D Range(Cells((((x - 1) * 10) + 2), 1), Cells(((x * 10)),
3)).Address
place =3D Range(Cells((((x - 1) * 1000) + 2), 1), Cells(((x *
1000)), 7)).Address
GetValues "c:", FilesArray(LoopCounter), "Daily Tasks",
"a2:g10000", place
Next
Application.ScreenUpdating =3D True
End If
End Sub
Sub GetValues(fPath As String, FName As String, sName, _
cellRange As String, place As String)
'recopie une plage des valeurs externes dans une plage de
'la feuille active sous forme d'une formule matricielle
With ActiveSheet.Range(place)
.FormulaArray =3D "=3D'" & fPath & "\[" & FName & "]" & sName & "'!" &
cellRange 'voir plus bas
.Value =3D .Value
End With
End Sub
=C0 cet endroit (FormulaArray) une fen=EAtre s'ouvre me demandant de
choisir le fichier Excel, alors que le nom du fichier Denys est
clairement indiqu=E9 dans l'adresse....
Le reste du code fonctionne tr=E8s bien (apr=E8s avoir cliqu=E9 sur le
fichier Denys)
Que dois-je faire pour ne pas voir cette boite de dialogue s'ouvrir ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
cousinhub
Bonsoir, A tout hasard, en mettant ton répertoire entre des quotes, peut-être? Comme il y a un espace.... FName = Dir("c:'DataHeather's Team'Denys.xls") Bon courage
Bonjour à tous,
Sur le site de Fédéric Sigonneau, il y a un code permettant d'importer des données d'un autre fichier excel. Voici le code que j'ai modifié pour ma cause:
Sub LoopThruFiles() Dim place As String Dim FilesArray() As String, FileCounter As Integer Dim FName As String, LoopCounter As Integer
FName = Dir("c:DataHeather's TeamDenys.xls") ' j'ai mis l'adresse du fichier Do While Len(FName) > 0 FileCounter = FileCounter + 1 ReDim Preserve FilesArray(1 To FileCounter) FilesArray(FileCounter) = FName FName = Dir() Loop If FileCounter > 0 Then Application.ScreenUpdating = False For LoopCounter = 1 To FileCounter
x = LoopCounter 'calcul de la plage de destination 'place = Range(Cells((((x - 1) * 10) + 2), 1), Cells(((x * 10)), 3)).Address place = Range(Cells((((x - 1) * 1000) + 2), 1), Cells(((x * 1000)), 7)).Address GetValues "c:", FilesArray(LoopCounter), "Daily Tasks", "a2:g10000", place Next Application.ScreenUpdating = True End If End Sub
Sub GetValues(fPath As String, FName As String, sName, _ cellRange As String, place As String) 'recopie une plage des valeurs externes dans une plage de 'la feuille active sous forme d'une formule matricielle
With ActiveSheet.Range(place) .FormulaArray = "='" & fPath & "[" & FName & "]" & sName & "'!" & cellRange 'voir plus bas .Value = .Value End With End Sub
À cet endroit (FormulaArray) une fenêtre s'ouvre me demandant de choisir le fichier Excel, alors que le nom du fichier Denys est clairement indiqué dans l'adresse....
Le reste du code fonctionne très bien (après avoir cliqué sur le fichier Denys)
Que dois-je faire pour ne pas voir cette boite de dialogue s'ouvrir ?
Merci
Denys
Bonsoir,
A tout hasard, en mettant ton répertoire entre des quotes, peut-être?
Comme il y a un espace....
FName = Dir("c:'DataHeather's Team'Denys.xls")
Bon courage
Bonjour à tous,
Sur le site de Fédéric Sigonneau, il y a un code permettant d'importer
des données d'un autre fichier excel. Voici le code que j'ai modifié
pour ma cause:
Sub LoopThruFiles()
Dim place As String
Dim FilesArray() As String, FileCounter As Integer
Dim FName As String, LoopCounter As Integer
FName = Dir("c:DataHeather's TeamDenys.xls") ' j'ai mis
l'adresse du fichier
Do While Len(FName) > 0
FileCounter = FileCounter + 1
ReDim Preserve FilesArray(1 To FileCounter)
FilesArray(FileCounter) = FName
FName = Dir()
Loop
If FileCounter > 0 Then
Application.ScreenUpdating = False
For LoopCounter = 1 To FileCounter
x = LoopCounter
'calcul de la plage de destination
'place = Range(Cells((((x - 1) * 10) + 2), 1), Cells(((x * 10)),
3)).Address
place = Range(Cells((((x - 1) * 1000) + 2), 1), Cells(((x *
1000)), 7)).Address
GetValues "c:", FilesArray(LoopCounter), "Daily Tasks",
"a2:g10000", place
Next
Application.ScreenUpdating = True
End If
End Sub
Sub GetValues(fPath As String, FName As String, sName, _
cellRange As String, place As String)
'recopie une plage des valeurs externes dans une plage de
'la feuille active sous forme d'une formule matricielle
With ActiveSheet.Range(place)
.FormulaArray = "='" & fPath & "[" & FName & "]" & sName & "'!" &
cellRange 'voir plus bas
.Value = .Value
End With
End Sub
À cet endroit (FormulaArray) une fenêtre s'ouvre me demandant de
choisir le fichier Excel, alors que le nom du fichier Denys est
clairement indiqué dans l'adresse....
Le reste du code fonctionne très bien (après avoir cliqué sur le
fichier Denys)
Que dois-je faire pour ne pas voir cette boite de dialogue s'ouvrir ?
Bonsoir, A tout hasard, en mettant ton répertoire entre des quotes, peut-être? Comme il y a un espace.... FName = Dir("c:'DataHeather's Team'Denys.xls") Bon courage
Bonjour à tous,
Sur le site de Fédéric Sigonneau, il y a un code permettant d'importer des données d'un autre fichier excel. Voici le code que j'ai modifié pour ma cause:
Sub LoopThruFiles() Dim place As String Dim FilesArray() As String, FileCounter As Integer Dim FName As String, LoopCounter As Integer
FName = Dir("c:DataHeather's TeamDenys.xls") ' j'ai mis l'adresse du fichier Do While Len(FName) > 0 FileCounter = FileCounter + 1 ReDim Preserve FilesArray(1 To FileCounter) FilesArray(FileCounter) = FName FName = Dir() Loop If FileCounter > 0 Then Application.ScreenUpdating = False For LoopCounter = 1 To FileCounter
x = LoopCounter 'calcul de la plage de destination 'place = Range(Cells((((x - 1) * 10) + 2), 1), Cells(((x * 10)), 3)).Address place = Range(Cells((((x - 1) * 1000) + 2), 1), Cells(((x * 1000)), 7)).Address GetValues "c:", FilesArray(LoopCounter), "Daily Tasks", "a2:g10000", place Next Application.ScreenUpdating = True End If End Sub
Sub GetValues(fPath As String, FName As String, sName, _ cellRange As String, place As String) 'recopie une plage des valeurs externes dans une plage de 'la feuille active sous forme d'une formule matricielle
With ActiveSheet.Range(place) .FormulaArray = "='" & fPath & "[" & FName & "]" & sName & "'!" & cellRange 'voir plus bas .Value = .Value End With End Sub
À cet endroit (FormulaArray) une fenêtre s'ouvre me demandant de choisir le fichier Excel, alors que le nom du fichier Denys est clairement indiqué dans l'adresse....
Le reste du code fonctionne très bien (après avoir cliqué sur le fichier Denys)
Que dois-je faire pour ne pas voir cette boite de dialogue s'ouvrir ?
Merci
Denys
Denys
On 10 août, 12:08, cousinhub wrote:
Bonsoir, A tout hasard, en mettant ton répertoire entre des quotes, peut-être? Comme il y a un espace.... FName = Dir("c:'DataHeather's Team'Denys.xls") Bon courage
Bonsoir Cousinhub,
Merci.... malheureusement çà ne fonctionne pas....
Bonne soirée
Denys
On 10 août, 12:08, cousinhub <pmcsnhb_nos...@aol.com> wrote:
Bonsoir,
A tout hasard, en mettant ton répertoire entre des quotes, peut-être?
Comme il y a un espace....
FName = Dir("c:'DataHeather's Team'Denys.xls")
Bon courage
Bonsoir Cousinhub,
Merci.... malheureusement çà ne fonctionne pas....
Bonsoir, A tout hasard, en mettant ton répertoire entre des quotes, peut-être? Comme il y a un espace.... FName = Dir("c:'DataHeather's Team'Denys.xls") Bon courage
Bonsoir Cousinhub,
Merci.... malheureusement çà ne fonctionne pas....
Bonne soirée
Denys
cousinhub
re-, en regardant ton code, et celui de FS, peut-être par là :
GetValues "c:", FilesArray(LoopCounter), "Daily Tasks","a2:g10000", place
remplacer par (en gardant les quotes):
GetValues "c:Data'Heather's Team"', FilesArray(LoopCounter), "Daily Tasks","a2:g10000", place
Peut-être????
On 10 août, 12:08, cousinhub wrote:
Bonsoir, A tout hasard, en mettant ton répertoire entre des quotes, peut-être? Comme il y a un espace.... FName = Dir("c:'DataHeather's Team'Denys.xls") Bon courage
Bonsoir Cousinhub,
Merci.... malheureusement çà ne fonctionne pas....
Bonne soirée
Denys
re-,
en regardant ton code, et celui de FS, peut-être par là :
GetValues "c:", FilesArray(LoopCounter), "Daily Tasks","a2:g10000", place
remplacer par (en gardant les quotes):
GetValues "c:Data'Heather's Team"', FilesArray(LoopCounter), "Daily
Tasks","a2:g10000", place
Peut-être????
On 10 août, 12:08, cousinhub <pmcsnhb_nos...@aol.com> wrote:
Bonsoir,
A tout hasard, en mettant ton répertoire entre des quotes, peut-être?
Comme il y a un espace....
FName = Dir("c:'DataHeather's Team'Denys.xls")
Bon courage
Bonsoir Cousinhub,
Merci.... malheureusement çà ne fonctionne pas....
re-, en regardant ton code, et celui de FS, peut-être par là :
GetValues "c:", FilesArray(LoopCounter), "Daily Tasks","a2:g10000", place
remplacer par (en gardant les quotes):
GetValues "c:Data'Heather's Team"', FilesArray(LoopCounter), "Daily Tasks","a2:g10000", place
Peut-être????
On 10 août, 12:08, cousinhub wrote:
Bonsoir, A tout hasard, en mettant ton répertoire entre des quotes, peut-être? Comme il y a un espace.... FName = Dir("c:'DataHeather's Team'Denys.xls") Bon courage
Bonsoir Cousinhub,
Merci.... malheureusement çà ne fonctionne pas....
Bonne soirée
Denys
MichDenis
A ) Si tu connais le nom du chemin, du classeur et le nom de la feuille tu n'as pas besoin de boucler ou d'utiliser le code au cas où .
B ) La fonction a des arguments, il faut les respecter Sub GetValues(fPath As String, FName As String, sName, _ cellRange As String, place As String)
fPath = Chemin -> toi, tu as donné seulement le lecteur c: et non "c:DataHeather's Team" FName = Nom du fichier => "Denys.xls" sName = Nom de la feuille => Daily Tasks
Tu peux seulement te permettre ceci : '------------------------------- Sub Test() Dim Chemin as string, Fichier as string, Feuille as string Dim Place As string Chemin = "c:DataHeather's Team" Fichier = "Denys.xls" Feuille = "Daily Tasks" Place = Range(Cells((((x - 1) * 1000) + 2), 1), Cells(((x * 1000)), 7)).Address GetValues chemin, fichier,feuille,"a2:g10000", place End Sub '------------------------------- Sub GetValues(fPath As String, FName As String, sName, _ cellRange As String, place As String) 'recopie une plage des valeurs externes dans une plage de 'la feuille active sous forme d'une formule matricielle
With ActiveSheet.Range(place) .FormulaArray = "='" & fPath & "[" & FName & "]" & _ sName & "'!" & cellRange 'voir plus bas .Value = .Value End With End Sub '-------------------------------
"Denys" a écrit dans le message de news:
Bonjour à tous,
Sur le site de Fédéric Sigonneau, il y a un code permettant d'importer des données d'un autre fichier excel. Voici le code que j'ai modifié pour ma cause:
Sub LoopThruFiles() Dim place As String Dim FilesArray() As String, FileCounter As Integer Dim FName As String, LoopCounter As Integer
FName = Dir("c:DataHeather's TeamDenys.xls") ' j'ai mis l'adresse du fichier Do While Len(FName) > 0 FileCounter = FileCounter + 1 ReDim Preserve FilesArray(1 To FileCounter) FilesArray(FileCounter) = FName FName = Dir() Loop If FileCounter > 0 Then Application.ScreenUpdating = False For LoopCounter = 1 To FileCounter
x = LoopCounter 'calcul de la plage de destination 'place = Range(Cells((((x - 1) * 10) + 2), 1), Cells(((x * 10)), 3)).Address place = Range(Cells((((x - 1) * 1000) + 2), 1), Cells(((x * 1000)), 7)).Address GetValues "c:", FilesArray(LoopCounter), "Daily Tasks", "a2:g10000", place Next Application.ScreenUpdating = True End If End Sub
Sub GetValues(fPath As String, FName As String, sName, _ cellRange As String, place As String) 'recopie une plage des valeurs externes dans une plage de 'la feuille active sous forme d'une formule matricielle
With ActiveSheet.Range(place) .FormulaArray = "='" & fPath & "[" & FName & "]" & sName & "'!" & cellRange 'voir plus bas .Value = .Value End With End Sub
À cet endroit (FormulaArray) une fenêtre s'ouvre me demandant de choisir le fichier Excel, alors que le nom du fichier Denys est clairement indiqué dans l'adresse....
Le reste du code fonctionne très bien (après avoir cliqué sur le fichier Denys)
Que dois-je faire pour ne pas voir cette boite de dialogue s'ouvrir ?
Merci
Denys
A ) Si tu connais le nom du chemin, du classeur et le nom de la feuille
tu n'as pas besoin de boucler ou d'utiliser le code au cas où .
B ) La fonction a des arguments, il faut les respecter
Sub GetValues(fPath As String, FName As String, sName, _
cellRange As String, place As String)
fPath = Chemin -> toi, tu as donné seulement le lecteur c: et non
"c:DataHeather's Team"
FName = Nom du fichier => "Denys.xls"
sName = Nom de la feuille => Daily Tasks
Tu peux seulement te permettre ceci :
'-------------------------------
Sub Test()
Dim Chemin as string, Fichier as string, Feuille as string
Dim Place As string
Chemin = "c:DataHeather's Team"
Fichier = "Denys.xls"
Feuille = "Daily Tasks"
Place = Range(Cells((((x - 1) * 1000) + 2), 1), Cells(((x * 1000)), 7)).Address
GetValues chemin, fichier,feuille,"a2:g10000", place
End Sub
'-------------------------------
Sub GetValues(fPath As String, FName As String, sName, _
cellRange As String, place As String)
'recopie une plage des valeurs externes dans une plage de
'la feuille active sous forme d'une formule matricielle
With ActiveSheet.Range(place)
.FormulaArray = "='" & fPath & "[" & FName & "]" & _
sName & "'!" & cellRange 'voir plus bas
.Value = .Value
End With
End Sub
'-------------------------------
"Denys" <denys.perreault@rbc.com> a écrit dans le message de news:
1186760621.398166.289420@j4g2000prf.googlegroups.com...
Bonjour à tous,
Sur le site de Fédéric Sigonneau, il y a un code permettant d'importer
des données d'un autre fichier excel. Voici le code que j'ai modifié
pour ma cause:
Sub LoopThruFiles()
Dim place As String
Dim FilesArray() As String, FileCounter As Integer
Dim FName As String, LoopCounter As Integer
FName = Dir("c:DataHeather's TeamDenys.xls") ' j'ai mis
l'adresse du fichier
Do While Len(FName) > 0
FileCounter = FileCounter + 1
ReDim Preserve FilesArray(1 To FileCounter)
FilesArray(FileCounter) = FName
FName = Dir()
Loop
If FileCounter > 0 Then
Application.ScreenUpdating = False
For LoopCounter = 1 To FileCounter
x = LoopCounter
'calcul de la plage de destination
'place = Range(Cells((((x - 1) * 10) + 2), 1), Cells(((x * 10)),
3)).Address
place = Range(Cells((((x - 1) * 1000) + 2), 1), Cells(((x *
1000)), 7)).Address
GetValues "c:", FilesArray(LoopCounter), "Daily Tasks",
"a2:g10000", place
Next
Application.ScreenUpdating = True
End If
End Sub
Sub GetValues(fPath As String, FName As String, sName, _
cellRange As String, place As String)
'recopie une plage des valeurs externes dans une plage de
'la feuille active sous forme d'une formule matricielle
With ActiveSheet.Range(place)
.FormulaArray = "='" & fPath & "[" & FName & "]" & sName & "'!" &
cellRange 'voir plus bas
.Value = .Value
End With
End Sub
À cet endroit (FormulaArray) une fenêtre s'ouvre me demandant de
choisir le fichier Excel, alors que le nom du fichier Denys est
clairement indiqué dans l'adresse....
Le reste du code fonctionne très bien (après avoir cliqué sur le
fichier Denys)
Que dois-je faire pour ne pas voir cette boite de dialogue s'ouvrir ?
A ) Si tu connais le nom du chemin, du classeur et le nom de la feuille tu n'as pas besoin de boucler ou d'utiliser le code au cas où .
B ) La fonction a des arguments, il faut les respecter Sub GetValues(fPath As String, FName As String, sName, _ cellRange As String, place As String)
fPath = Chemin -> toi, tu as donné seulement le lecteur c: et non "c:DataHeather's Team" FName = Nom du fichier => "Denys.xls" sName = Nom de la feuille => Daily Tasks
Tu peux seulement te permettre ceci : '------------------------------- Sub Test() Dim Chemin as string, Fichier as string, Feuille as string Dim Place As string Chemin = "c:DataHeather's Team" Fichier = "Denys.xls" Feuille = "Daily Tasks" Place = Range(Cells((((x - 1) * 1000) + 2), 1), Cells(((x * 1000)), 7)).Address GetValues chemin, fichier,feuille,"a2:g10000", place End Sub '------------------------------- Sub GetValues(fPath As String, FName As String, sName, _ cellRange As String, place As String) 'recopie une plage des valeurs externes dans une plage de 'la feuille active sous forme d'une formule matricielle
With ActiveSheet.Range(place) .FormulaArray = "='" & fPath & "[" & FName & "]" & _ sName & "'!" & cellRange 'voir plus bas .Value = .Value End With End Sub '-------------------------------
"Denys" a écrit dans le message de news:
Bonjour à tous,
Sur le site de Fédéric Sigonneau, il y a un code permettant d'importer des données d'un autre fichier excel. Voici le code que j'ai modifié pour ma cause:
Sub LoopThruFiles() Dim place As String Dim FilesArray() As String, FileCounter As Integer Dim FName As String, LoopCounter As Integer
FName = Dir("c:DataHeather's TeamDenys.xls") ' j'ai mis l'adresse du fichier Do While Len(FName) > 0 FileCounter = FileCounter + 1 ReDim Preserve FilesArray(1 To FileCounter) FilesArray(FileCounter) = FName FName = Dir() Loop If FileCounter > 0 Then Application.ScreenUpdating = False For LoopCounter = 1 To FileCounter
x = LoopCounter 'calcul de la plage de destination 'place = Range(Cells((((x - 1) * 10) + 2), 1), Cells(((x * 10)), 3)).Address place = Range(Cells((((x - 1) * 1000) + 2), 1), Cells(((x * 1000)), 7)).Address GetValues "c:", FilesArray(LoopCounter), "Daily Tasks", "a2:g10000", place Next Application.ScreenUpdating = True End If End Sub
Sub GetValues(fPath As String, FName As String, sName, _ cellRange As String, place As String) 'recopie une plage des valeurs externes dans une plage de 'la feuille active sous forme d'une formule matricielle
With ActiveSheet.Range(place) .FormulaArray = "='" & fPath & "[" & FName & "]" & sName & "'!" & cellRange 'voir plus bas .Value = .Value End With End Sub
À cet endroit (FormulaArray) une fenêtre s'ouvre me demandant de choisir le fichier Excel, alors que le nom du fichier Denys est clairement indiqué dans l'adresse....
Le reste du code fonctionne très bien (après avoir cliqué sur le fichier Denys)
Que dois-je faire pour ne pas voir cette boite de dialogue s'ouvrir ?
Merci
Denys
JB
Bonsoir,
Voici un code simple pour lire les valeurs d'un champ d'un classeur fermé.
Sub LitClasseurFermé() ChampOuCopier = "A1:A4" Chemin = ThisWorkbook.Path Fichier = "stock.xls" onglet = "Janvier" ChampAlire = "B2:B5" LitChamp ChampOuCopier, Chemin, Fichier, onglet, ChampAlire End Sub
Sub LitChamp(ChampOuCopier, Chemin, Fichier, onglet, ChampAlire) Range(ChampOuCopier).FormulaArray = "='" & Chemin & "[" & Fichier & "]" & onglet & "'!" & ChampAlire Range(ChampOuCopier) = Range(ChampOuCopier).Value End Sub
JB
On 10 août, 18:19, Denys wrote:
On 10 août, 12:08, cousinhub wrote:
Bonsoir, A tout hasard, en mettant ton répertoire entre des quotes, peut-êtr e? Comme il y a un espace.... FName = Dir("c:'DataHeather's Team'Denys.xls") Bon courage
Bonsoir Cousinhub,
Merci.... malheureusement çà ne fonctionne pas....
Bonne soirée
Denys
Bonsoir,
Voici un code simple pour lire les valeurs d'un champ d'un classeur
fermé.
Sub LitClasseurFermé()
ChampOuCopier = "A1:A4"
Chemin = ThisWorkbook.Path
Fichier = "stock.xls"
onglet = "Janvier"
ChampAlire = "B2:B5"
LitChamp ChampOuCopier, Chemin, Fichier, onglet, ChampAlire
End Sub
Sub LitChamp(ChampOuCopier, Chemin, Fichier, onglet, ChampAlire)
Range(ChampOuCopier).FormulaArray = "='" & Chemin & "[" & Fichier &
"]" & onglet & "'!" & ChampAlire
Range(ChampOuCopier) = Range(ChampOuCopier).Value
End Sub
JB
On 10 août, 18:19, Denys <denys.perrea...@rbc.com> wrote:
On 10 août, 12:08, cousinhub <pmcsnhb_nos...@aol.com> wrote:
Bonsoir,
A tout hasard, en mettant ton répertoire entre des quotes, peut-êtr e?
Comme il y a un espace....
FName = Dir("c:'DataHeather's Team'Denys.xls")
Bon courage
Bonsoir Cousinhub,
Merci.... malheureusement çà ne fonctionne pas....
Voici un code simple pour lire les valeurs d'un champ d'un classeur fermé.
Sub LitClasseurFermé() ChampOuCopier = "A1:A4" Chemin = ThisWorkbook.Path Fichier = "stock.xls" onglet = "Janvier" ChampAlire = "B2:B5" LitChamp ChampOuCopier, Chemin, Fichier, onglet, ChampAlire End Sub
Sub LitChamp(ChampOuCopier, Chemin, Fichier, onglet, ChampAlire) Range(ChampOuCopier).FormulaArray = "='" & Chemin & "[" & Fichier & "]" & onglet & "'!" & ChampAlire Range(ChampOuCopier) = Range(ChampOuCopier).Value End Sub
JB
On 10 août, 18:19, Denys wrote:
On 10 août, 12:08, cousinhub wrote:
Bonsoir, A tout hasard, en mettant ton répertoire entre des quotes, peut-êtr e? Comme il y a un espace.... FName = Dir("c:'DataHeather's Team'Denys.xls") Bon courage
Bonsoir Cousinhub,
Merci.... malheureusement çà ne fonctionne pas....
Bonne soirée
Denys
Youky
Salut, La variable cellRange n'est sans doute pas renseignée à tester...... Youky
Salut,
La variable cellRange n'est sans doute pas renseignée
à tester......
Youky
Salut, La variable cellRange n'est sans doute pas renseignée à tester...... Youky
JB
Bonsoir,
Sub LitClasseurFermé() ChampOuCopier = "A1:A4" Chemin = ThisWorkbook.Path Fichier = "stock.xls" onglet = "Janvier" ChampAlire = "B2:B5" LitChamp ChampOuCopier, Chemin, Fichier, onglet, ChampAlire End Sub
Sub LitChamp(ChampOuCopier, Chemin, Fichier, onglet, ChampAlire) Range(ChampOuCopier).FormulaArray = "='" & Chemin & "[" & Fichier & "]" & onglet & "'!" & ChampAlire Range(ChampOuCopier) = Range(ChampOuCopier).Value End Sub
jb
On 10 août, 17:43, Denys wrote:
Bonjour à tous,
Sur le site de Fédéric Sigonneau, il y a un code permettant d'importer des données d'un autre fichier excel. Voici le code que j'ai modifié pour ma cause:
Sub LoopThruFiles() Dim place As String Dim FilesArray() As String, FileCounter As Integer Dim FName As String, LoopCounter As Integer
FName = Dir("c:DataHeather's TeamDenys.xls") ' j'ai mis l'adresse du fichier Do While Len(FName) > 0 FileCounter = FileCounter + 1 ReDim Preserve FilesArray(1 To FileCounter) FilesArray(FileCounter) = FName FName = Dir() Loop If FileCounter > 0 Then Application.ScreenUpdating = False For LoopCounter = 1 To FileCounter
x = LoopCounter 'calcul de la plage de destination 'place = Range(Cells((((x - 1) * 10) + 2), 1), Cells(((x * 10)), 3)).Address place = Range(Cells((((x - 1) * 1000) + 2), 1), Cells(((x * 1000)), 7)).Address GetValues "c:", FilesArray(LoopCounter), "Daily Tasks", "a2:g10000", place Next Application.ScreenUpdating = True End If End Sub
Sub GetValues(fPath As String, FName As String, sName, _ cellRange As String, place As String) 'recopie une plage des valeurs externes dans une plage de 'la feuille active sous forme d'une formule matricielle
With ActiveSheet.Range(place) .FormulaArray = "='" & fPath & "[" & FName & "]" & sName & "'!" & cellRange 'voir plus bas .Value = .Value End With End Sub
À cet endroit (FormulaArray) une fenêtre s'ouvre me demandant de choisir le fichier Excel, alors que le nom du fichier Denys est clairement indiqué dans l'adresse....
Le reste du code fonctionne très bien (après avoir cliqué sur le fichier Denys)
Que dois-je faire pour ne pas voir cette boite de dialogue s'ouvrir ?
Merci
Denys
Bonsoir,
Sub LitClasseurFermé()
ChampOuCopier = "A1:A4"
Chemin = ThisWorkbook.Path
Fichier = "stock.xls"
onglet = "Janvier"
ChampAlire = "B2:B5"
LitChamp ChampOuCopier, Chemin, Fichier, onglet, ChampAlire
End Sub
Sub LitChamp(ChampOuCopier, Chemin, Fichier, onglet, ChampAlire)
Range(ChampOuCopier).FormulaArray = "='" & Chemin & "[" & Fichier &
"]" & onglet & "'!" & ChampAlire
Range(ChampOuCopier) = Range(ChampOuCopier).Value
End Sub
jb
On 10 août, 17:43, Denys <denys.perrea...@rbc.com> wrote:
Bonjour à tous,
Sur le site de Fédéric Sigonneau, il y a un code permettant d'importer
des données d'un autre fichier excel. Voici le code que j'ai modifié
pour ma cause:
Sub LoopThruFiles()
Dim place As String
Dim FilesArray() As String, FileCounter As Integer
Dim FName As String, LoopCounter As Integer
FName = Dir("c:DataHeather's TeamDenys.xls") ' j'ai mis
l'adresse du fichier
Do While Len(FName) > 0
FileCounter = FileCounter + 1
ReDim Preserve FilesArray(1 To FileCounter)
FilesArray(FileCounter) = FName
FName = Dir()
Loop
If FileCounter > 0 Then
Application.ScreenUpdating = False
For LoopCounter = 1 To FileCounter
x = LoopCounter
'calcul de la plage de destination
'place = Range(Cells((((x - 1) * 10) + 2), 1), Cells(((x * 10)),
3)).Address
place = Range(Cells((((x - 1) * 1000) + 2), 1), Cells(((x *
1000)), 7)).Address
GetValues "c:", FilesArray(LoopCounter), "Daily Tasks",
"a2:g10000", place
Next
Application.ScreenUpdating = True
End If
End Sub
Sub GetValues(fPath As String, FName As String, sName, _
cellRange As String, place As String)
'recopie une plage des valeurs externes dans une plage de
'la feuille active sous forme d'une formule matricielle
With ActiveSheet.Range(place)
.FormulaArray = "='" & fPath & "[" & FName & "]" & sName & "'!" &
cellRange 'voir plus bas
.Value = .Value
End With
End Sub
À cet endroit (FormulaArray) une fenêtre s'ouvre me demandant de
choisir le fichier Excel, alors que le nom du fichier Denys est
clairement indiqué dans l'adresse....
Le reste du code fonctionne très bien (après avoir cliqué sur le
fichier Denys)
Que dois-je faire pour ne pas voir cette boite de dialogue s'ouvrir ?
Sub LitClasseurFermé() ChampOuCopier = "A1:A4" Chemin = ThisWorkbook.Path Fichier = "stock.xls" onglet = "Janvier" ChampAlire = "B2:B5" LitChamp ChampOuCopier, Chemin, Fichier, onglet, ChampAlire End Sub
Sub LitChamp(ChampOuCopier, Chemin, Fichier, onglet, ChampAlire) Range(ChampOuCopier).FormulaArray = "='" & Chemin & "[" & Fichier & "]" & onglet & "'!" & ChampAlire Range(ChampOuCopier) = Range(ChampOuCopier).Value End Sub
jb
On 10 août, 17:43, Denys wrote:
Bonjour à tous,
Sur le site de Fédéric Sigonneau, il y a un code permettant d'importer des données d'un autre fichier excel. Voici le code que j'ai modifié pour ma cause:
Sub LoopThruFiles() Dim place As String Dim FilesArray() As String, FileCounter As Integer Dim FName As String, LoopCounter As Integer
FName = Dir("c:DataHeather's TeamDenys.xls") ' j'ai mis l'adresse du fichier Do While Len(FName) > 0 FileCounter = FileCounter + 1 ReDim Preserve FilesArray(1 To FileCounter) FilesArray(FileCounter) = FName FName = Dir() Loop If FileCounter > 0 Then Application.ScreenUpdating = False For LoopCounter = 1 To FileCounter
x = LoopCounter 'calcul de la plage de destination 'place = Range(Cells((((x - 1) * 10) + 2), 1), Cells(((x * 10)), 3)).Address place = Range(Cells((((x - 1) * 1000) + 2), 1), Cells(((x * 1000)), 7)).Address GetValues "c:", FilesArray(LoopCounter), "Daily Tasks", "a2:g10000", place Next Application.ScreenUpdating = True End If End Sub
Sub GetValues(fPath As String, FName As String, sName, _ cellRange As String, place As String) 'recopie une plage des valeurs externes dans une plage de 'la feuille active sous forme d'une formule matricielle
With ActiveSheet.Range(place) .FormulaArray = "='" & fPath & "[" & FName & "]" & sName & "'!" & cellRange 'voir plus bas .Value = .Value End With End Sub
À cet endroit (FormulaArray) une fenêtre s'ouvre me demandant de choisir le fichier Excel, alors que le nom du fichier Denys est clairement indiqué dans l'adresse....
Le reste du code fonctionne très bien (après avoir cliqué sur le fichier Denys)
Que dois-je faire pour ne pas voir cette boite de dialogue s'ouvrir ?
Merci
Denys
Denys
Bonsoir Cousinhub, JB,Youky et bonjour Denis,
Merci à tous, mon problème est réglé.... Vous m'avez sauvé bien du temps
Bonne journée
Denys
A ) Si tu connais le nom du chemin, du classeur et le nom de la feuille tu n'as pas besoin de boucler ou d'utiliser le code au cas où .
B ) La fonction a des arguments, il faut les respecter Sub GetValues(fPath As String, FName As String, sName, _ cellRange As String, place As String)
fPath = Chemin -> toi, tu as donné seulement le lecteur c: et non "c:DataHeather's Team" FName = Nom du fichier => "Denys.xls" sName = Nom de la feuille => Daily Tasks
Tu peux seulement te permettre ceci : '------------------------------- Sub Test() Dim Chemin as string, Fichier as string, Feuille as string Dim Place As string Chemin = "c:DataHeather's Team" Fichier = "Denys.xls" Feuille = "Daily Tasks" Place = Range(Cells((((x - 1) * 1000) + 2), 1), Cells(((x * 1000)), 7)).Address GetValues chemin, fichier,feuille,"a2:g10000", place End Sub '------------------------------- Sub GetValues(fPath As String, FName As String, sName, _ cellRange As String, place As String) 'recopie une plage des valeurs externes dans une plage de 'la feuille active sous forme d'une formule matricielle
With ActiveSheet.Range(place) .FormulaArray = "='" & fPath & "[" & FName & "]" & _ sName & "'!" & cellRange 'voir plus bas .Value = .Value End With End Sub '-------------------------------
"Denys" a écrit dans le message de news:
Bonjour à tous,
Sur le site de Fédéric Sigonneau, il y a un code permettant d'importer des données d'un autre fichier excel. Voici le code que j'ai modifié pour ma cause:
Sub LoopThruFiles() Dim place As String Dim FilesArray() As String, FileCounter As Integer Dim FName As String, LoopCounter As Integer
FName = Dir("c:DataHeather's TeamDenys.xls") ' j'ai mis l'adresse du fichier Do While Len(FName) > 0 FileCounter = FileCounter + 1 ReDim Preserve FilesArray(1 To FileCounter) FilesArray(FileCounter) = FName FName = Dir() Loop If FileCounter > 0 Then Application.ScreenUpdating = False For LoopCounter = 1 To FileCounter
x = LoopCounter 'calcul de la plage de destination 'place = Range(Cells((((x - 1) * 10) + 2), 1), Cells(((x * 10)), 3)).Address place = Range(Cells((((x - 1) * 1000) + 2), 1), Cells(((x * 1000)), 7)).Address GetValues "c:", FilesArray(LoopCounter), "Daily Tasks", "a2:g10000", place Next Application.ScreenUpdating = True End If End Sub
Sub GetValues(fPath As String, FName As String, sName, _ cellRange As String, place As String) 'recopie une plage des valeurs externes dans une plage de 'la feuille active sous forme d'une formule matricielle
With ActiveSheet.Range(place) .FormulaArray = "='" & fPath & "[" & FName & "]" & sName & "'!" & cellRange 'voir plus bas .Value = .Value End With End Sub
À cet endroit (FormulaArray) une fenêtre s'ouvre me demandant de choisir le fichier Excel, alors que le nom du fichier Denys est clairement indiqué dans l'adresse....
Le reste du code fonctionne très bien (après avoir cliqué sur le fichier Denys)
Que dois-je faire pour ne pas voir cette boite de dialogue s'ouvrir ?
Merci
Denys
Bonsoir Cousinhub, JB,Youky et bonjour Denis,
Merci à tous, mon problème est réglé.... Vous m'avez sauvé bien du temps
Bonne journée
Denys
A ) Si tu connais le nom du chemin, du classeur et le nom de la feuille
tu n'as pas besoin de boucler ou d'utiliser le code au cas où .
B ) La fonction a des arguments, il faut les respecter
Sub GetValues(fPath As String, FName As String, sName, _
cellRange As String, place As String)
fPath = Chemin -> toi, tu as donné seulement le lecteur c: et non
"c:DataHeather's Team"
FName = Nom du fichier => "Denys.xls"
sName = Nom de la feuille => Daily Tasks
Tu peux seulement te permettre ceci :
'-------------------------------
Sub Test()
Dim Chemin as string, Fichier as string, Feuille as string
Dim Place As string
Chemin = "c:DataHeather's Team"
Fichier = "Denys.xls"
Feuille = "Daily Tasks"
Place = Range(Cells((((x - 1) * 1000) + 2), 1), Cells(((x * 1000)), 7)).Address
GetValues chemin, fichier,feuille,"a2:g10000", place
End Sub
'-------------------------------
Sub GetValues(fPath As String, FName As String, sName, _
cellRange As String, place As String)
'recopie une plage des valeurs externes dans une plage de
'la feuille active sous forme d'une formule matricielle
With ActiveSheet.Range(place)
.FormulaArray = "='" & fPath & "[" & FName & "]" & _
sName & "'!" & cellRange 'voir plus bas
.Value = .Value
End With
End Sub
'-------------------------------
"Denys" <denys.perreault@rbc.com> a écrit dans le message de news:
1186760621.398166.289420@j4g2000prf.googlegroups.com...
Bonjour à tous,
Sur le site de Fédéric Sigonneau, il y a un code permettant d'importer
des données d'un autre fichier excel. Voici le code que j'ai modifié
pour ma cause:
Sub LoopThruFiles()
Dim place As String
Dim FilesArray() As String, FileCounter As Integer
Dim FName As String, LoopCounter As Integer
FName = Dir("c:DataHeather's TeamDenys.xls") ' j'ai mis
l'adresse du fichier
Do While Len(FName) > 0
FileCounter = FileCounter + 1
ReDim Preserve FilesArray(1 To FileCounter)
FilesArray(FileCounter) = FName
FName = Dir()
Loop
If FileCounter > 0 Then
Application.ScreenUpdating = False
For LoopCounter = 1 To FileCounter
x = LoopCounter
'calcul de la plage de destination
'place = Range(Cells((((x - 1) * 10) + 2), 1), Cells(((x * 10)),
3)).Address
place = Range(Cells((((x - 1) * 1000) + 2), 1), Cells(((x *
1000)), 7)).Address
GetValues "c:", FilesArray(LoopCounter), "Daily Tasks",
"a2:g10000", place
Next
Application.ScreenUpdating = True
End If
End Sub
Sub GetValues(fPath As String, FName As String, sName, _
cellRange As String, place As String)
'recopie une plage des valeurs externes dans une plage de
'la feuille active sous forme d'une formule matricielle
With ActiveSheet.Range(place)
.FormulaArray = "='" & fPath & "[" & FName & "]" & sName & "'!" &
cellRange 'voir plus bas
.Value = .Value
End With
End Sub
À cet endroit (FormulaArray) une fenêtre s'ouvre me demandant de
choisir le fichier Excel, alors que le nom du fichier Denys est
clairement indiqué dans l'adresse....
Le reste du code fonctionne très bien (après avoir cliqué sur le
fichier Denys)
Que dois-je faire pour ne pas voir cette boite de dialogue s'ouvrir ?
Merci à tous, mon problème est réglé.... Vous m'avez sauvé bien du temps
Bonne journée
Denys
A ) Si tu connais le nom du chemin, du classeur et le nom de la feuille tu n'as pas besoin de boucler ou d'utiliser le code au cas où .
B ) La fonction a des arguments, il faut les respecter Sub GetValues(fPath As String, FName As String, sName, _ cellRange As String, place As String)
fPath = Chemin -> toi, tu as donné seulement le lecteur c: et non "c:DataHeather's Team" FName = Nom du fichier => "Denys.xls" sName = Nom de la feuille => Daily Tasks
Tu peux seulement te permettre ceci : '------------------------------- Sub Test() Dim Chemin as string, Fichier as string, Feuille as string Dim Place As string Chemin = "c:DataHeather's Team" Fichier = "Denys.xls" Feuille = "Daily Tasks" Place = Range(Cells((((x - 1) * 1000) + 2), 1), Cells(((x * 1000)), 7)).Address GetValues chemin, fichier,feuille,"a2:g10000", place End Sub '------------------------------- Sub GetValues(fPath As String, FName As String, sName, _ cellRange As String, place As String) 'recopie une plage des valeurs externes dans une plage de 'la feuille active sous forme d'une formule matricielle
With ActiveSheet.Range(place) .FormulaArray = "='" & fPath & "[" & FName & "]" & _ sName & "'!" & cellRange 'voir plus bas .Value = .Value End With End Sub '-------------------------------
"Denys" a écrit dans le message de news:
Bonjour à tous,
Sur le site de Fédéric Sigonneau, il y a un code permettant d'importer des données d'un autre fichier excel. Voici le code que j'ai modifié pour ma cause:
Sub LoopThruFiles() Dim place As String Dim FilesArray() As String, FileCounter As Integer Dim FName As String, LoopCounter As Integer
FName = Dir("c:DataHeather's TeamDenys.xls") ' j'ai mis l'adresse du fichier Do While Len(FName) > 0 FileCounter = FileCounter + 1 ReDim Preserve FilesArray(1 To FileCounter) FilesArray(FileCounter) = FName FName = Dir() Loop If FileCounter > 0 Then Application.ScreenUpdating = False For LoopCounter = 1 To FileCounter
x = LoopCounter 'calcul de la plage de destination 'place = Range(Cells((((x - 1) * 10) + 2), 1), Cells(((x * 10)), 3)).Address place = Range(Cells((((x - 1) * 1000) + 2), 1), Cells(((x * 1000)), 7)).Address GetValues "c:", FilesArray(LoopCounter), "Daily Tasks", "a2:g10000", place Next Application.ScreenUpdating = True End If End Sub
Sub GetValues(fPath As String, FName As String, sName, _ cellRange As String, place As String) 'recopie une plage des valeurs externes dans une plage de 'la feuille active sous forme d'une formule matricielle
With ActiveSheet.Range(place) .FormulaArray = "='" & fPath & "[" & FName & "]" & sName & "'!" & cellRange 'voir plus bas .Value = .Value End With End Sub
À cet endroit (FormulaArray) une fenêtre s'ouvre me demandant de choisir le fichier Excel, alors que le nom du fichier Denys est clairement indiqué dans l'adresse....
Le reste du code fonctionne très bien (après avoir cliqué sur le fichier Denys)
Que dois-je faire pour ne pas voir cette boite de dialogue s'ouvrir ?