Bonjour à vous tous.
Voici mon problème:
J'ai un dossier sur le C:\Clients\numéro11
Dans ce dossier, j'ai (présentement) 4 fichiers:
Classeur 1
Classeur 2
Classeur 3
Total
Dans chaque fichier (Classeur 1, 2,et 3) j'ai une feuille qui se nomme Mois
Dans le fichier Total, sur la feuille 1 j'aimerais avoir à partir de la cellule B6:
B6= le premier nom du fichier dans ce répertoire (Classeur 1) C6= le montant de la feuille Mois, cellule A1
B7= le deuxième nom du fichier dans ce répertoire (Classeur 2) C6= le montant de la feuille Mois, cellule A1
etc, etc.
Ce que j'aimerais, c'est qu'à chaque fois que j'ajoute un fichier dans ce répertoire, le fichier total se mette à jour
automatiquement.
Est-ce que que quelqu'un peut m'aider.
Merci de votre aide à l'avance
Marc
oups, il faudra adapter le nom du répertoire et le nom de la feuille,
isabelle
isabelle a écrit :
bonjour Marc,
si c'est possible, tu pourrais renommer les fichiers en enlevant l'apostrophe :
Sub test1() Dim fso As Object, Dossier As Object, NomDossier Dim Files As Object, File As Object, i As Integer Set fso = CreateObject("Scripting.FileSystemObject") NomDossier = "c:zazaza" '"C:Clientsnuméro11" Set Dossier = fso.GetFolder(NomDossier) Set Files = Dossier.Files If Files.Count <> 0 Then For Each File In Files If File.Name <> "Total.xls" Then If Not IsError(Application.Search("'", File.Name)) Then NewName = Application.Substitute(File.Name, "'", "") OldName = File.Name Name OldName As NewName Else NewName = File.Name End If y = y + 1 Cells(6, y + 1) = NewName Cells(7, y + 1) = ExecuteExcel4Macro("'" & NomDossier & "[" & NewName & "]Feuil1'!R1C1") End If Next End If End Sub
isabelle
marc a écrit :
Bonjour Isabelle Je me révise, cela fonctionne parfaitement c'est juste que si un fichier comporte un apostrophe, il me fait une erreur 400. mais pour le reste, cela fonctionne bien Merci encore
"isabelle" a écrit dans le message de news:
bonjour Marc,
Cherche la clé HKEY_CLASSES_ROOTExcel.Sheet.8shellOpencommand elle doit être comme ceci : "C:Program FilesMicrosoft OfficeOfficeEXCEL.EXE" "%1"
isabelle
marc a écrit :
Bonjour Isabelle C'est ce que j'ai comme option déjà et ça ne fonctionne pas..... Merci de toujours m'aider. Marc
"isabelle" a écrit dans le message de news: ef$
bonjour Marc,
j'ai retrouvé cette réponse de geedee à propos de ce sujet : _____________________________________________________________
Voir sous Windows au niveau de l'explorateur, Menu Outils > option des dossiers... Onglet types de fichiers Selectionner l'extension XLS Bouton Avancé Modification du type de fichier Action : Ouvrir Modifier le message DDE doit etre : [open("%1")]
Valider OK
nb : les doubles-quotes sont ici essentielles _____________________________________________________________
isabelle
marc a écrit :
Bonjour Isabelle Concernant le nom des fichiers. Si le dossier est sur le C, les fichiers peuvent contenir des espaces dans le nom. par contre, dès que j'adapte pour un "drive sur le réseau", il fait une erreur avec les mêmes fichiers qui sur le C fonctionnait. Est-ce qu'il y quelque chose que je peux faire. Merci de ton aide. Marc
"isabelle" a écrit dans le message de news:
bonjour Marc,
je corrige mon erreur, si tu veut laisser le fichier Total dans le même répertoire, remplace : If File.Name <> "Total" Then par: If File.Name <> "Total.xls" Then
isabelle
marc a écrit :
Bonjour Isabelle J'ai mis le fichier "ailleurs" que dans le répertoire et l'erreur est disparu. Un gros merci pour ton aide, ça fonctionne parfaitement. Merci et bonne fin de journée Marc "isabelle" a écrit dans le message de news: %
marc a écrit :
Isabelle ça fonctionne. Mais j'ai deux questions. 1. Présentement, le premier fichier s'écrit dans la cellule B6 avec le résultat en B7. Le deuxième nom en C6 et le résultat en C7. Si je veux : le premier fichier en B6 et son résultat en C6 et le deuxième en B7 et son résultat en C7, que dois je modifier au code? 2. Après l'avoir exécuté, la macro indique une erreur 400. Est-ce que c'est parce que mon fichier total est dans le même répertoire?
est ce que tu sais sur quel ligne il se produit l'erreur ? (appuyer sur debug et noter la ligne en jaune)
isabelle
oups, il faudra adapter le nom du répertoire et le nom de la feuille,
isabelle
isabelle a écrit :
bonjour Marc,
si c'est possible, tu pourrais renommer les fichiers en enlevant
l'apostrophe :
Sub test1()
Dim fso As Object, Dossier As Object, NomDossier
Dim Files As Object, File As Object, i As Integer
Set fso = CreateObject("Scripting.FileSystemObject")
NomDossier = "c:zazaza" '"C:Clientsnuméro11"
Set Dossier = fso.GetFolder(NomDossier)
Set Files = Dossier.Files
If Files.Count <> 0 Then
For Each File In Files
If File.Name <> "Total.xls" Then
If Not IsError(Application.Search("'", File.Name)) Then
NewName = Application.Substitute(File.Name, "'", "")
OldName = File.Name
Name OldName As NewName
Else
NewName = File.Name
End If
y = y + 1
Cells(6, y + 1) = NewName
Cells(7, y + 1) = ExecuteExcel4Macro("'" & NomDossier & "[" &
NewName & "]Feuil1'!R1C1")
End If
Next
End If
End Sub
isabelle
marc a écrit :
Bonjour Isabelle
Je me révise, cela fonctionne parfaitement
c'est juste que si un fichier comporte un apostrophe, il me fait une
erreur 400.
mais pour le reste, cela fonctionne bien
Merci encore
"isabelle" <i@v> a écrit dans le message de news:
O4opXZ92JHA.4880@TK2MSFTNGP03.phx.gbl...
bonjour Marc,
Cherche la clé HKEY_CLASSES_ROOTExcel.Sheet.8shellOpencommand
elle doit être comme ceci :
"C:Program FilesMicrosoft OfficeOfficeEXCEL.EXE" "%1"
isabelle
marc a écrit :
Bonjour Isabelle
C'est ce que j'ai comme option déjà et ça ne fonctionne pas.....
Merci de toujours m'aider.
Marc
"isabelle" <i@v> a écrit dans le message de news:
ef$CLlv2JHA.4412@TK2MSFTNGP06.phx.gbl...
bonjour Marc,
j'ai retrouvé cette réponse de geedee à propos de ce sujet :
_____________________________________________________________
Voir sous Windows au niveau de l'explorateur,
Menu Outils > option des dossiers...
Onglet types de fichiers
Selectionner l'extension XLS
Bouton Avancé
Modification du type de fichier
Action : Ouvrir
Modifier
le message DDE doit etre :
[open("%1")]
Valider OK
nb : les doubles-quotes sont ici essentielles
_____________________________________________________________
isabelle
marc a écrit :
Bonjour Isabelle
Concernant le nom des fichiers. Si le dossier est sur le C, les
fichiers peuvent contenir des espaces dans le nom. par contre,
dès que j'adapte pour un "drive sur le réseau", il fait une
erreur avec les mêmes fichiers qui sur le C fonctionnait. Est-ce
qu'il y quelque chose que je peux faire.
Merci de ton aide.
Marc
"isabelle" <i@v> a écrit dans le message de news:
OjuIPbk2JHA.4368@TK2MSFTNGP05.phx.gbl...
bonjour Marc,
je corrige mon erreur,
si tu veut laisser le fichier Total dans le même répertoire,
remplace :
If File.Name <> "Total" Then
par:
If File.Name <> "Total.xls" Then
isabelle
marc a écrit :
Bonjour Isabelle
J'ai mis le fichier "ailleurs" que dans le répertoire et
l'erreur est disparu.
Un gros merci pour ton aide, ça fonctionne parfaitement.
Merci et bonne fin de journée
Marc
"isabelle" <i@v> a écrit dans le message de news:
%23LCxY0j2JHA.5772@TK2MSFTNGP02.phx.gbl...
marc a écrit :
Isabelle
ça fonctionne. Mais j'ai deux questions.
1. Présentement, le premier fichier s'écrit dans la cellule
B6 avec le résultat en B7. Le deuxième nom en C6 et le
résultat en C7.
Si je veux : le premier fichier en B6 et son résultat en C6
et le deuxième en B7 et son résultat en C7, que dois je
modifier au code?
2. Après l'avoir exécuté, la macro indique une erreur 400.
Est-ce que c'est parce que mon fichier total est dans le même
répertoire?
est ce que tu sais sur quel ligne il se produit l'erreur ?
(appuyer sur debug et noter la ligne en jaune)
oups, il faudra adapter le nom du répertoire et le nom de la feuille,
isabelle
isabelle a écrit :
bonjour Marc,
si c'est possible, tu pourrais renommer les fichiers en enlevant l'apostrophe :
Sub test1() Dim fso As Object, Dossier As Object, NomDossier Dim Files As Object, File As Object, i As Integer Set fso = CreateObject("Scripting.FileSystemObject") NomDossier = "c:zazaza" '"C:Clientsnuméro11" Set Dossier = fso.GetFolder(NomDossier) Set Files = Dossier.Files If Files.Count <> 0 Then For Each File In Files If File.Name <> "Total.xls" Then If Not IsError(Application.Search("'", File.Name)) Then NewName = Application.Substitute(File.Name, "'", "") OldName = File.Name Name OldName As NewName Else NewName = File.Name End If y = y + 1 Cells(6, y + 1) = NewName Cells(7, y + 1) = ExecuteExcel4Macro("'" & NomDossier & "[" & NewName & "]Feuil1'!R1C1") End If Next End If End Sub
isabelle
marc a écrit :
Bonjour Isabelle Je me révise, cela fonctionne parfaitement c'est juste que si un fichier comporte un apostrophe, il me fait une erreur 400. mais pour le reste, cela fonctionne bien Merci encore
"isabelle" a écrit dans le message de news:
bonjour Marc,
Cherche la clé HKEY_CLASSES_ROOTExcel.Sheet.8shellOpencommand elle doit être comme ceci : "C:Program FilesMicrosoft OfficeOfficeEXCEL.EXE" "%1"
isabelle
marc a écrit :
Bonjour Isabelle C'est ce que j'ai comme option déjà et ça ne fonctionne pas..... Merci de toujours m'aider. Marc
"isabelle" a écrit dans le message de news: ef$
bonjour Marc,
j'ai retrouvé cette réponse de geedee à propos de ce sujet : _____________________________________________________________
Voir sous Windows au niveau de l'explorateur, Menu Outils > option des dossiers... Onglet types de fichiers Selectionner l'extension XLS Bouton Avancé Modification du type de fichier Action : Ouvrir Modifier le message DDE doit etre : [open("%1")]
Valider OK
nb : les doubles-quotes sont ici essentielles _____________________________________________________________
isabelle
marc a écrit :
Bonjour Isabelle Concernant le nom des fichiers. Si le dossier est sur le C, les fichiers peuvent contenir des espaces dans le nom. par contre, dès que j'adapte pour un "drive sur le réseau", il fait une erreur avec les mêmes fichiers qui sur le C fonctionnait. Est-ce qu'il y quelque chose que je peux faire. Merci de ton aide. Marc
"isabelle" a écrit dans le message de news:
bonjour Marc,
je corrige mon erreur, si tu veut laisser le fichier Total dans le même répertoire, remplace : If File.Name <> "Total" Then par: If File.Name <> "Total.xls" Then
isabelle
marc a écrit :
Bonjour Isabelle J'ai mis le fichier "ailleurs" que dans le répertoire et l'erreur est disparu. Un gros merci pour ton aide, ça fonctionne parfaitement. Merci et bonne fin de journée Marc "isabelle" a écrit dans le message de news: %
marc a écrit :
Isabelle ça fonctionne. Mais j'ai deux questions. 1. Présentement, le premier fichier s'écrit dans la cellule B6 avec le résultat en B7. Le deuxième nom en C6 et le résultat en C7. Si je veux : le premier fichier en B6 et son résultat en C6 et le deuxième en B7 et son résultat en C7, que dois je modifier au code? 2. Après l'avoir exécuté, la macro indique une erreur 400. Est-ce que c'est parce que mon fichier total est dans le même répertoire?
est ce que tu sais sur quel ligne il se produit l'erreur ? (appuyer sur debug et noter la ligne en jaune)