Excel macro, centralisation des données de plusieurs classeurs
Résolu
Claire
-
Claire -
Claire -
Bonjour,
Je souhaite regrouper les données de plusieurs classeur excel dans un même classeur. Tous les fichiers sont dans le même dossier, ils sont tous fait de la même manière. Je souhaite par exemple recupéré les données des cellules A2 et A5 de tous les fichiers sur la premiére page qui s'appelle "Dashboard to fill".
Je ne sais pas combien il y aura de classeur dans le dossier, nous créons un classeur à chaque fois que nous réalisons une formation. Les classeurs portent le nom "Workshop dashboard puis le nom de la formation et la date". Le nom de la formation et la date changerons donc pour chaque classeurs. Tous les classeurs sont dans le même dossier.
Ce dossier est sur la plateforme Onedrive de l'équipe pour laquelle je travaille. http://.....SharePoint/...
Je sais codé en Macro la boucle qui permet de récuperer les informations de classeur se trouvant sur dans un même dossier sur mon bureau, mais lorsque je l'utilise pour le dossier en ligne cela ne fonctionne pas.
Option Explicit
Sub En_revue()
Dim Fichier_traité As String, k As Integer
Dim Chemin As String, LigneVide As Integer
Application.ScreenUpdating = False
Range("A2:C65000").ClearContents
Chemin = ThisWorkbook.Path & "\"
Fichier_traité = Dir(Chemin & "*.xlsm")
Do While Fichier_traité <> ""
If Fichier_traité = ThisWorkbook.Name Then GoTo Etiquette
Workbooks.Open Chemin & Fichier_traité
LigneVide = ThisWorkbook.Sheets("Sheet1").Range("A65000").End(xlUp).Row+1
ThisWorkbook.Sheets("Sheet1").Range("A" & LigneVide) = Range("A2")
ThisWorkbook.Sheets("Sheet1").Range("B" & LigneVide) = Range("A5")
ThisWorkbook.Sheets("Sheet1").Range("C" & LigneVide) = Range("AE" & Range("AE65000").End(xlUp).Row)
ThisWorkbook.Sheets("Sheet1").Range("C" & LigneVide) = Fichier_traité
Workbooks(Fichier_traité).Close False
Etiquette:
Fichier_traité = Dir
Loop
End Sub
Quand je l'utilise avec un dossier du OneDrive il trouve une erreur dans cette partie, même si je rentre l'adresse IP du site dans Chemin = il ne veut pas.
Fichier_traité = Dir(Chemin & "*.xlsm")
Avez vous une solution? Savez vous si c'est possible?
N'hésitez pas si vous avez des questions.
J'utilise la dernière version de Microsoft.
Merci
Je souhaite regrouper les données de plusieurs classeur excel dans un même classeur. Tous les fichiers sont dans le même dossier, ils sont tous fait de la même manière. Je souhaite par exemple recupéré les données des cellules A2 et A5 de tous les fichiers sur la premiére page qui s'appelle "Dashboard to fill".
Je ne sais pas combien il y aura de classeur dans le dossier, nous créons un classeur à chaque fois que nous réalisons une formation. Les classeurs portent le nom "Workshop dashboard puis le nom de la formation et la date". Le nom de la formation et la date changerons donc pour chaque classeurs. Tous les classeurs sont dans le même dossier.
Ce dossier est sur la plateforme Onedrive de l'équipe pour laquelle je travaille. http://.....SharePoint/...
Je sais codé en Macro la boucle qui permet de récuperer les informations de classeur se trouvant sur dans un même dossier sur mon bureau, mais lorsque je l'utilise pour le dossier en ligne cela ne fonctionne pas.
Option Explicit
Sub En_revue()
Dim Fichier_traité As String, k As Integer
Dim Chemin As String, LigneVide As Integer
Application.ScreenUpdating = False
Range("A2:C65000").ClearContents
Chemin = ThisWorkbook.Path & "\"
Fichier_traité = Dir(Chemin & "*.xlsm")
Do While Fichier_traité <> ""
If Fichier_traité = ThisWorkbook.Name Then GoTo Etiquette
Workbooks.Open Chemin & Fichier_traité
LigneVide = ThisWorkbook.Sheets("Sheet1").Range("A65000").End(xlUp).Row+1
ThisWorkbook.Sheets("Sheet1").Range("A" & LigneVide) = Range("A2")
ThisWorkbook.Sheets("Sheet1").Range("B" & LigneVide) = Range("A5")
ThisWorkbook.Sheets("Sheet1").Range("C" & LigneVide) = Range("AE" & Range("AE65000").End(xlUp).Row)
ThisWorkbook.Sheets("Sheet1").Range("C" & LigneVide) = Fichier_traité
Workbooks(Fichier_traité).Close False
Etiquette:
Fichier_traité = Dir
Loop
End Sub
Quand je l'utilise avec un dossier du OneDrive il trouve une erreur dans cette partie, même si je rentre l'adresse IP du site dans Chemin = il ne veut pas.
Fichier_traité = Dir(Chemin & "*.xlsm")
Avez vous une solution? Savez vous si c'est possible?
N'hésitez pas si vous avez des questions.
J'utilise la dernière version de Microsoft.
Merci
A voir également:
- Excel macro, centralisation des données de plusieurs classeurs
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Trier des données excel - Guide
- Liste déroulante excel - Guide
- Formule moyenne excel plusieurs colonnes - Guide
- Word et excel gratuit - Guide
1 réponse
Bonjour,
cf. https://www.developpez.net/forums/d1439714/dotnet/general-dotnet/developpement-office-system/sharepoint/developpement-sharepoint/verifier-vba-presence-d-fichier-d-dossier-sharepoint/
As-tu essayé de connecter l'espace SharePoint en tant que lecteur réseau (ex : Y: ; un "dir Y:" en invite de commande DOS devrait t'indiquer si c'est faisable ou non) ?
cf. https://www.developpez.net/forums/d1439714/dotnet/general-dotnet/developpement-office-system/sharepoint/developpement-sharepoint/verifier-vba-presence-d-fichier-d-dossier-sharepoint/
As-tu essayé de connecter l'espace SharePoint en tant que lecteur réseau (ex : Y: ; un "dir Y:" en invite de commande DOS devrait t'indiquer si c'est faisable ou non) ?
le code donné dans votre lien ne fonctionne pas avec share point et je suis en train d'apprendre à coder en VBA je ne sais pas comme me servir de la commande DOS.
Pouvez vous me donner des précisions Merci.
Je voulais montrer la différence, pour Excel, entre :
- ton lien SharePoint (http://...) qui ne peut pas être utilisé ;
- et ton lien sur le bureau (C:/...) qui peut l'être
Dir, qu'il soit en commande DOS (Menu démarrer --> Exécuter --> cmd) ou en VBA liste les dossiers et/ou fichiers du répertoire donné en argument.
Je te suggère donc d'avoir tes ressources SharePoint dans l'explorateur en le connectant comme lecteur réseau (ex : Y:/): cf. http://www.vtx.ch/fr/corporate/hosting/hosted-exchange/faq/hosted-exchange-faq4
Si ça marche (je ne sais pas, je n'utilise pas SharePoint), tu peux faire le dir non plus sur la ressource d'origine (http://) mais sur le lecteur Y:/.
https://www.developpez.net/forums/d1213557/logiciels/microsoft-office/general-vba/connecter-lecteur-reseau-vba/
J'ai juste encore une dernière question comment je peux codé une déconnexion du lecteur réseau,
J'ai pas des collégues trés doués en informatique et moins il y a des trucs inconnus sur leur ordi moins c'est dangereux pour la perte et le mélange d'info.
J'ai fait apparaitre mon dossier dans les connexion réseau comment je peux l'enlever? tu comprends ma question?
Merci