Voici mon probl=E8me:
Je veux faire une boucle sur tous les fichiers d'un r=E9pertoire (nomm=E9
dossier), et les fermer au fur et =E0 mesure. Mais je n'arrive pas =E0 les
fermer!
Qu'est-ce qui cloche dans mon code?
Merci
Dim Fichier
With Application.FileSearch
.NewSearch
.LookIn =3D "C:\dossier\"
.Filename =3D "*.xls"
.Execute
For Each Fichier In .FoundFiles
Workbooks.Open Fichier
Range("A23").End(xlDown).Select
Range(ActiveCell, "H23").Copy
Windows("classeur").Activate
If Range("A1").Value =3D "" Then
Range("A1").Select
Else: Range("A1").End(xlDown).Select
ActiveCell.Offset(1, 0).Select
End If
ActiveSheet.Paste
Windows(Fichier).Close
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
Mgr Banni
ActiveWorkbook.Close ne serait-il pas suffisant...mais nécessaire? Mgr T.B.
"steph05" a écrit dans le message de news:
Bonjour,
Voici mon problème: Je veux faire une boucle sur tous les fichiers d'un répertoire (nommé dossier), et les fermer au fur et à mesure. Mais je n'arrive pas à les fermer! Qu'est-ce qui cloche dans mon code?
Merci
Dim Fichier With Application.FileSearch .NewSearch .LookIn = "C:dossier" .Filename = "*.xls" .Execute
For Each Fichier In .FoundFiles
Workbooks.Open Fichier Range("A23").End(xlDown).Select Range(ActiveCell, "H23").Copy Windows("classeur").Activate If Range("A1").Value = "" Then Range("A1").Select Else: Range("A1").End(xlDown).Select ActiveCell.Offset(1, 0).Select End If ActiveSheet.Paste Windows(Fichier).Close
Next Fichier
End With
ActiveWorkbook.Close ne serait-il pas suffisant...mais nécessaire?
Mgr T.B.
"steph05" <thibault.stephanie@neuf.fr> a écrit dans le message de news:
484ec954-66f5-43c2-a55b-2111416a9abf@a70g2000hsh.googlegroups.com...
Bonjour,
Voici mon problème:
Je veux faire une boucle sur tous les fichiers d'un répertoire (nommé
dossier), et les fermer au fur et à mesure. Mais je n'arrive pas à les
fermer!
Qu'est-ce qui cloche dans mon code?
Merci
Dim Fichier
With Application.FileSearch
.NewSearch
.LookIn = "C:dossier"
.Filename = "*.xls"
.Execute
For Each Fichier In .FoundFiles
Workbooks.Open Fichier
Range("A23").End(xlDown).Select
Range(ActiveCell, "H23").Copy
Windows("classeur").Activate
If Range("A1").Value = "" Then
Range("A1").Select
Else: Range("A1").End(xlDown).Select
ActiveCell.Offset(1, 0).Select
End If
ActiveSheet.Paste
Windows(Fichier).Close
ActiveWorkbook.Close ne serait-il pas suffisant...mais nécessaire? Mgr T.B.
"steph05" a écrit dans le message de news:
Bonjour,
Voici mon problème: Je veux faire une boucle sur tous les fichiers d'un répertoire (nommé dossier), et les fermer au fur et à mesure. Mais je n'arrive pas à les fermer! Qu'est-ce qui cloche dans mon code?
Merci
Dim Fichier With Application.FileSearch .NewSearch .LookIn = "C:dossier" .Filename = "*.xls" .Execute
For Each Fichier In .FoundFiles
Workbooks.Open Fichier Range("A23").End(xlDown).Select Range(ActiveCell, "H23").Copy Windows("classeur").Activate If Range("A1").Value = "" Then Range("A1").Select Else: Range("A1").End(xlDown).Select ActiveCell.Offset(1, 0).Select End If ActiveSheet.Paste Windows(Fichier).Close
Next Fichier
End With
steph05
On 6 sep, 16:16, "Mgr Banni" wrote:
ActiveWorkbook.Close ne serait-il pas suffisant...mais nécessaire? Mgr T.B.
"steph05" a écrit dans le message de news:
Bonjour,
Voici mon problème: Je veux faire une boucle sur tous les fichiers d'un répertoire (nommé dossier), et les fermer au fur et à mesure. Mais je n'arrive pas à le s fermer! Qu'est-ce qui cloche dans mon code?
Merci
Dim Fichier With Application.FileSearch .NewSearch .LookIn = "C:dossier" .Filename = "*.xls" .Execute
For Each Fichier In .FoundFiles
Workbooks.Open Fichier Range("A23").End(xlDown).Select Range(ActiveCell, "H23").Copy Windows("classeur").Activate If Range("A1").Value = "" Then Range("A1").Select Else: Range("A1").End(xlDown).Select ActiveCell.Offset(1, 0).Select End If ActiveSheet.Paste Windows(Fichier).Close
Next Fichier
End With
Oui mais ça ne ferme pas le bon fichier. J'ai en fait 2 fichiers: - Fichier - Classeur J'ouvre Fichier, j'en copie une partie que je colle dans Classeur. Donc à ce moment là, c'est Classeur qui est actif et je veux fermer Fichier!
Merci quand même !
On 6 sep, 16:16, "Mgr Banni" <ba...@lacurie.va> wrote:
ActiveWorkbook.Close ne serait-il pas suffisant...mais nécessaire?
Mgr T.B.
"steph05" <thibault.stepha...@neuf.fr> a écrit dans le message de news:
484ec954-66f5-43c2-a55b-2111416a9...@a70g2000hsh.googlegroups.com...
Bonjour,
Voici mon problème:
Je veux faire une boucle sur tous les fichiers d'un répertoire (nommé
dossier), et les fermer au fur et à mesure. Mais je n'arrive pas à le s
fermer!
Qu'est-ce qui cloche dans mon code?
Merci
Dim Fichier
With Application.FileSearch
.NewSearch
.LookIn = "C:dossier"
.Filename = "*.xls"
.Execute
For Each Fichier In .FoundFiles
Workbooks.Open Fichier
Range("A23").End(xlDown).Select
Range(ActiveCell, "H23").Copy
Windows("classeur").Activate
If Range("A1").Value = "" Then
Range("A1").Select
Else: Range("A1").End(xlDown).Select
ActiveCell.Offset(1, 0).Select
End If
ActiveSheet.Paste
Windows(Fichier).Close
Next Fichier
End With
Oui mais ça ne ferme pas le bon fichier. J'ai en fait 2 fichiers:
- Fichier
- Classeur
J'ouvre Fichier, j'en copie une partie que je colle dans Classeur.
Donc à ce moment là, c'est Classeur qui est actif et je veux fermer
Fichier!
ActiveWorkbook.Close ne serait-il pas suffisant...mais nécessaire? Mgr T.B.
"steph05" a écrit dans le message de news:
Bonjour,
Voici mon problème: Je veux faire une boucle sur tous les fichiers d'un répertoire (nommé dossier), et les fermer au fur et à mesure. Mais je n'arrive pas à le s fermer! Qu'est-ce qui cloche dans mon code?
Merci
Dim Fichier With Application.FileSearch .NewSearch .LookIn = "C:dossier" .Filename = "*.xls" .Execute
For Each Fichier In .FoundFiles
Workbooks.Open Fichier Range("A23").End(xlDown).Select Range(ActiveCell, "H23").Copy Windows("classeur").Activate If Range("A1").Value = "" Then Range("A1").Select Else: Range("A1").End(xlDown).Select ActiveCell.Offset(1, 0).Select End If ActiveSheet.Paste Windows(Fichier).Close
Next Fichier
End With
Oui mais ça ne ferme pas le bon fichier. J'ai en fait 2 fichiers: - Fichier - Classeur J'ouvre Fichier, j'en copie une partie que je colle dans Classeur. Donc à ce moment là, c'est Classeur qui est actif et je veux fermer Fichier!
Merci quand même !
michdenis
Essaie ceci :
Attention, comme tu n'as pas mentionné le nom des feuilles (classeur source et de destination) j'ai supposé que dans les 2 cas c'était la prèmière feuille du classeur.
'------------------------------------------ Sub test()
Dim Repertoire As String Dim Wk As Workbook, Wk1 As Workbook Dim Fichier As String, DerLig As Long
Repertoire = "c:Exceltoday"
Fichier = Dir(Repertoire & "*.xls") Set Wk = ThisWorkbook
Application.ScreenUpdating = False Do Until Fichier = "" Set Wk1 = Workbooks.Open(Repertoire & Fichier) With Wk1.Worksheets(1) x = .Range(.Range("A23").End(xlDown).Address, "H23") End With With Wk.Worksheets(1) If .Range("A1") = "" Then DerLig = .Range("A1").Row Else DerLig = .Range("A65536").End(xlUp)(2).Row End If .Range("A" & DerLig).Resize(UBound(x, 1), UBound(x, 2)) = x End With Wk1.Close False Loop
End Sub '------------------------------------------
"steph05" a écrit dans le message de news:
Bonjour,
Voici mon problème: Je veux faire une boucle sur tous les fichiers d'un répertoire (nommé dossier), et les fermer au fur et à mesure. Mais je n'arrive pas à les fermer! Qu'est-ce qui cloche dans mon code?
Merci
Dim Fichier With Application.FileSearch .NewSearch .LookIn = "C:dossier" .Filename = "*.xls" .Execute
For Each Fichier In .FoundFiles
Workbooks.Open Fichier Range("A23").End(xlDown).Select Range(ActiveCell, "H23").Copy Windows("classeur").Activate If Range("A1").Value = "" Then Range("A1").Select Else: Range("A1").End(xlDown).Select ActiveCell.Offset(1, 0).Select End If ActiveSheet.Paste Windows(Fichier).Close
Next Fichier
End With
Essaie ceci :
Attention, comme tu n'as pas mentionné le
nom des feuilles (classeur source et de destination)
j'ai supposé que dans les 2 cas c'était la prèmière
feuille du classeur.
'------------------------------------------
Sub test()
Dim Repertoire As String
Dim Wk As Workbook, Wk1 As Workbook
Dim Fichier As String, DerLig As Long
Repertoire = "c:Exceltoday"
Fichier = Dir(Repertoire & "*.xls")
Set Wk = ThisWorkbook
Application.ScreenUpdating = False
Do Until Fichier = ""
Set Wk1 = Workbooks.Open(Repertoire & Fichier)
With Wk1.Worksheets(1)
x = .Range(.Range("A23").End(xlDown).Address, "H23")
End With
With Wk.Worksheets(1)
If .Range("A1") = "" Then
DerLig = .Range("A1").Row
Else
DerLig = .Range("A65536").End(xlUp)(2).Row
End If
.Range("A" & DerLig).Resize(UBound(x, 1), UBound(x, 2)) = x
End With
Wk1.Close False
Loop
End Sub
'------------------------------------------
"steph05" <thibault.stephanie@neuf.fr> a écrit dans le message de news:
484ec954-66f5-43c2-a55b-2111416a9abf@a70g2000hsh.googlegroups.com...
Bonjour,
Voici mon problème:
Je veux faire une boucle sur tous les fichiers d'un répertoire (nommé
dossier), et les fermer au fur et à mesure. Mais je n'arrive pas à les
fermer!
Qu'est-ce qui cloche dans mon code?
Merci
Dim Fichier
With Application.FileSearch
.NewSearch
.LookIn = "C:dossier"
.Filename = "*.xls"
.Execute
For Each Fichier In .FoundFiles
Workbooks.Open Fichier
Range("A23").End(xlDown).Select
Range(ActiveCell, "H23").Copy
Windows("classeur").Activate
If Range("A1").Value = "" Then
Range("A1").Select
Else: Range("A1").End(xlDown).Select
ActiveCell.Offset(1, 0).Select
End If
ActiveSheet.Paste
Windows(Fichier).Close
Attention, comme tu n'as pas mentionné le nom des feuilles (classeur source et de destination) j'ai supposé que dans les 2 cas c'était la prèmière feuille du classeur.
'------------------------------------------ Sub test()
Dim Repertoire As String Dim Wk As Workbook, Wk1 As Workbook Dim Fichier As String, DerLig As Long
Repertoire = "c:Exceltoday"
Fichier = Dir(Repertoire & "*.xls") Set Wk = ThisWorkbook
Application.ScreenUpdating = False Do Until Fichier = "" Set Wk1 = Workbooks.Open(Repertoire & Fichier) With Wk1.Worksheets(1) x = .Range(.Range("A23").End(xlDown).Address, "H23") End With With Wk.Worksheets(1) If .Range("A1") = "" Then DerLig = .Range("A1").Row Else DerLig = .Range("A65536").End(xlUp)(2).Row End If .Range("A" & DerLig).Resize(UBound(x, 1), UBound(x, 2)) = x End With Wk1.Close False Loop
End Sub '------------------------------------------
"steph05" a écrit dans le message de news:
Bonjour,
Voici mon problème: Je veux faire une boucle sur tous les fichiers d'un répertoire (nommé dossier), et les fermer au fur et à mesure. Mais je n'arrive pas à les fermer! Qu'est-ce qui cloche dans mon code?
Merci
Dim Fichier With Application.FileSearch .NewSearch .LookIn = "C:dossier" .Filename = "*.xls" .Execute
For Each Fichier In .FoundFiles
Workbooks.Open Fichier Range("A23").End(xlDown).Select Range(ActiveCell, "H23").Copy Windows("classeur").Activate If Range("A1").Value = "" Then Range("A1").Select Else: Range("A1").End(xlDown).Select ActiveCell.Offset(1, 0).Select End If ActiveSheet.Paste Windows(Fichier).Close
Next Fichier
End With
michdenis
Il manque une ligne de code importante : après celle-cii : Wk1.Close False Ajoute ceci : fichier = dir()
"michdenis" a écrit dans le message de news: % Essaie ceci :
Attention, comme tu n'as pas mentionné le nom des feuilles (classeur source et de destination) j'ai supposé que dans les 2 cas c'était la prèmière feuille du classeur.
'------------------------------------------ Sub test()
Dim Repertoire As String Dim Wk As Workbook, Wk1 As Workbook Dim Fichier As String, DerLig As Long
Repertoire = "c:Exceltoday"
Fichier = Dir(Repertoire & "*.xls") Set Wk = ThisWorkbook
Application.ScreenUpdating = False Do Until Fichier = "" Set Wk1 = Workbooks.Open(Repertoire & Fichier) With Wk1.Worksheets(1) x = .Range(.Range("A23").End(xlDown).Address, "H23") End With With Wk.Worksheets(1) If .Range("A1") = "" Then DerLig = .Range("A1").Row Else DerLig = .Range("A65536").End(xlUp)(2).Row End If .Range("A" & DerLig).Resize(UBound(x, 1), UBound(x, 2)) = x End With Wk1.Close False Loop
End Sub '------------------------------------------
"steph05" a écrit dans le message de news:
Bonjour,
Voici mon problème: Je veux faire une boucle sur tous les fichiers d'un répertoire (nommé dossier), et les fermer au fur et à mesure. Mais je n'arrive pas à les fermer! Qu'est-ce qui cloche dans mon code?
Merci
Dim Fichier With Application.FileSearch .NewSearch .LookIn = "C:dossier" .Filename = "*.xls" .Execute
For Each Fichier In .FoundFiles
Workbooks.Open Fichier Range("A23").End(xlDown).Select Range(ActiveCell, "H23").Copy Windows("classeur").Activate If Range("A1").Value = "" Then Range("A1").Select Else: Range("A1").End(xlDown).Select ActiveCell.Offset(1, 0).Select End If ActiveSheet.Paste Windows(Fichier).Close
Next Fichier
End With
Il manque une ligne de code importante :
après celle-cii :
Wk1.Close False
Ajoute ceci :
fichier = dir()
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
%230RaaJDEJHA.4488@TK2MSFTNGP04.phx.gbl...
Essaie ceci :
Attention, comme tu n'as pas mentionné le
nom des feuilles (classeur source et de destination)
j'ai supposé que dans les 2 cas c'était la prèmière
feuille du classeur.
'------------------------------------------
Sub test()
Dim Repertoire As String
Dim Wk As Workbook, Wk1 As Workbook
Dim Fichier As String, DerLig As Long
Repertoire = "c:Exceltoday"
Fichier = Dir(Repertoire & "*.xls")
Set Wk = ThisWorkbook
Application.ScreenUpdating = False
Do Until Fichier = ""
Set Wk1 = Workbooks.Open(Repertoire & Fichier)
With Wk1.Worksheets(1)
x = .Range(.Range("A23").End(xlDown).Address, "H23")
End With
With Wk.Worksheets(1)
If .Range("A1") = "" Then
DerLig = .Range("A1").Row
Else
DerLig = .Range("A65536").End(xlUp)(2).Row
End If
.Range("A" & DerLig).Resize(UBound(x, 1), UBound(x, 2)) = x
End With
Wk1.Close False
Loop
End Sub
'------------------------------------------
"steph05" <thibault.stephanie@neuf.fr> a écrit dans le message de news:
484ec954-66f5-43c2-a55b-2111416a9abf@a70g2000hsh.googlegroups.com...
Bonjour,
Voici mon problème:
Je veux faire une boucle sur tous les fichiers d'un répertoire (nommé
dossier), et les fermer au fur et à mesure. Mais je n'arrive pas à les
fermer!
Qu'est-ce qui cloche dans mon code?
Merci
Dim Fichier
With Application.FileSearch
.NewSearch
.LookIn = "C:dossier"
.Filename = "*.xls"
.Execute
For Each Fichier In .FoundFiles
Workbooks.Open Fichier
Range("A23").End(xlDown).Select
Range(ActiveCell, "H23").Copy
Windows("classeur").Activate
If Range("A1").Value = "" Then
Range("A1").Select
Else: Range("A1").End(xlDown).Select
ActiveCell.Offset(1, 0).Select
End If
ActiveSheet.Paste
Windows(Fichier).Close
Il manque une ligne de code importante : après celle-cii : Wk1.Close False Ajoute ceci : fichier = dir()
"michdenis" a écrit dans le message de news: % Essaie ceci :
Attention, comme tu n'as pas mentionné le nom des feuilles (classeur source et de destination) j'ai supposé que dans les 2 cas c'était la prèmière feuille du classeur.
'------------------------------------------ Sub test()
Dim Repertoire As String Dim Wk As Workbook, Wk1 As Workbook Dim Fichier As String, DerLig As Long
Repertoire = "c:Exceltoday"
Fichier = Dir(Repertoire & "*.xls") Set Wk = ThisWorkbook
Application.ScreenUpdating = False Do Until Fichier = "" Set Wk1 = Workbooks.Open(Repertoire & Fichier) With Wk1.Worksheets(1) x = .Range(.Range("A23").End(xlDown).Address, "H23") End With With Wk.Worksheets(1) If .Range("A1") = "" Then DerLig = .Range("A1").Row Else DerLig = .Range("A65536").End(xlUp)(2).Row End If .Range("A" & DerLig).Resize(UBound(x, 1), UBound(x, 2)) = x End With Wk1.Close False Loop
End Sub '------------------------------------------
"steph05" a écrit dans le message de news:
Bonjour,
Voici mon problème: Je veux faire une boucle sur tous les fichiers d'un répertoire (nommé dossier), et les fermer au fur et à mesure. Mais je n'arrive pas à les fermer! Qu'est-ce qui cloche dans mon code?
Merci
Dim Fichier With Application.FileSearch .NewSearch .LookIn = "C:dossier" .Filename = "*.xls" .Execute
For Each Fichier In .FoundFiles
Workbooks.Open Fichier Range("A23").End(xlDown).Select Range(ActiveCell, "H23").Copy Windows("classeur").Activate If Range("A1").Value = "" Then Range("A1").Select Else: Range("A1").End(xlDown).Select ActiveCell.Offset(1, 0).Select End If ActiveSheet.Paste Windows(Fichier).Close