Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

total de plusieurs fichier avec vba

21 réponses
Avatar
marc
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

10 réponses

1 2 3
Avatar
MichDenis
| ok, je m'en vais voir le vrai galarneau

Attend encore un peu, il y a toujours de la glace à la hauteur de Québec
sur le fleuve !!!
;-)))
Avatar
isabelle
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








Avatar
marc
Merci pour le suivi
bonne fin de journée
"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









Avatar
marc
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









Avatar
isabelle
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














Avatar
marc
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
















Avatar
isabelle
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




















Avatar
marc
Salut Isabelle
Désolé pour le délais de la réponse
Malheureusement, cela ne fonctionne pas mieux.
Je ne sais plus quoi faire.
Merci de toujours m'aider
Marc

"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






















Avatar
marc
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






















Avatar
isabelle
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

























1 2 3