[Résolu][Calc] Import de feuilles depuis plusieurs classeurs
Modérateur : Vilains modOOs
Règles du forum
Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
-
- Membre lOOyal
- Messages : 37
- Inscription : 06 mai 2015 09:32
[Résolu][Calc] Import de feuilles depuis plusieurs classeurs
Salut,
Je retente donc ma chance ici, parce qu'à priori, je ne devrais pas pouvoir faire l'économie d'une macro
Voici donc ce que je veux faire:
Lorsque j'insère une nouvelle feuille, je choisis l'option "à partir d'un fichier", mais je ne peux effectivement sélectionner qu'un fichier à la fois ce qui va m'obliger à répéter l'action 50 fois
Comment faire pour tout importer d'un coup (chaque fichier ne comportant qu'un seule feuille)
Par exemple, je veux importer (en une seule fois) la feuille de l'élève A et de l'élève B dans mon classeur prof:
Je retente donc ma chance ici, parce qu'à priori, je ne devrais pas pouvoir faire l'économie d'une macro
Voici donc ce que je veux faire:
Lorsque j'insère une nouvelle feuille, je choisis l'option "à partir d'un fichier", mais je ne peux effectivement sélectionner qu'un fichier à la fois ce qui va m'obliger à répéter l'action 50 fois
Comment faire pour tout importer d'un coup (chaque fichier ne comportant qu'un seule feuille)
Par exemple, je veux importer (en une seule fois) la feuille de l'élève A et de l'élève B dans mon classeur prof:
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par micmac le 12 mai 2015 21:14, modifié 2 fois.
Raison : Ajout de la coche
Raison : Ajout de la coche
libreOffice 4.3.6.2 sous Windows7
-
- PassiOOnné
- Messages : 653
- Inscription : 02 déc. 2009 09:43
Re: [Calc] Import de feuilles depuis plusieurs classeurs
Bonjour,
On comprend mieux ce que tu veux avec les fichiers joints (On le dit souvent !). Du coup, une macro n'est peut-être pas nécessaire !
Puisque tu connais la structure de tes fichiers élèves il serait alors plus simple de récupérer leurs réponses avec une liaison de ton classeur 'Prof' vers tes fichiers élèves.
Tu connais le nom de tes élèves, le nom du fichier de leurs réponses est leur nom, donc les liaisons ne devraient pas poser de problème. Sois tu fais une liaison de leurs réponses dans une feuille à leur nom dans ton classeur 'Prof', soit tu fais un récapitulatif de leurs réponses dans une feuille 'Récap'.
Le forum doit bien avoir un sujet sur les liaisons (je n'ai pas cherché). S'il n'y a pas, ouvre un nouveau sujet, on t'aidera.
@+
On comprend mieux ce que tu veux avec les fichiers joints (On le dit souvent !). Du coup, une macro n'est peut-être pas nécessaire !
Puisque tu connais la structure de tes fichiers élèves il serait alors plus simple de récupérer leurs réponses avec une liaison de ton classeur 'Prof' vers tes fichiers élèves.
Tu connais le nom de tes élèves, le nom du fichier de leurs réponses est leur nom, donc les liaisons ne devraient pas poser de problème. Sois tu fais une liaison de leurs réponses dans une feuille à leur nom dans ton classeur 'Prof', soit tu fais un récapitulatif de leurs réponses dans une feuille 'Récap'.
Le forum doit bien avoir un sujet sur les liaisons (je n'ai pas cherché). S'il n'y a pas, ouvre un nouveau sujet, on t'aidera.
@+
LibO 7.4.4.2 - Windows 10 Pro
AOO 4.1.13 - Windows 10 Pro
AOO 4.1.13 - Windows 10 Pro
-
- Membre lOOyal
- Messages : 37
- Inscription : 06 mai 2015 09:32
Re: [Calc] Import de feuilles depuis plusieurs classeurs
Salut,
Merci pour ta proposition, mais avec des élèves de collège, je suis sûr que sur 300 élèves, une bonne 50aine ne respecteront pas le format d'écriture de nom de fichier que j'aurais imposé, donc je ne peux malheureusement pas miser sur cette option.
c'est pourquoi je souhaite passer par l'importation de feuille multiple, même s'il m'en coûte
Merci pour ta proposition, mais avec des élèves de collège, je suis sûr que sur 300 élèves, une bonne 50aine ne respecteront pas le format d'écriture de nom de fichier que j'aurais imposé, donc je ne peux malheureusement pas miser sur cette option.
c'est pourquoi je souhaite passer par l'importation de feuille multiple, même s'il m'en coûte
libreOffice 4.3.6.2 sous Windows7
-
- PassiOOnné
- Messages : 653
- Inscription : 02 déc. 2009 09:43
Re: [Calc] Import de feuilles depuis plusieurs classeurs
Le format d'écriture de nom de fichier peut être "forcé" par macro.coincoin a écrit :...une bonne 50aine ne respecteront pas le format d'écriture de nom de fichier que j'aurais imposé...
Il serait plus simple et moins coûteux en temps de développement de lier tes classeurs et d'obliger tes élèves à respecter le formalisme de sauvegarde par macro.
@+
LibO 7.4.4.2 - Windows 10 Pro
AOO 4.1.13 - Windows 10 Pro
AOO 4.1.13 - Windows 10 Pro
-
- GourOOu
- Messages : 5622
- Inscription : 25 nov. 2011 18:07
- Localisation : Guyane
Re: [Calc] Import de feuilles depuis plusieurs classeurs
Bonjour
Un petit exemple mais qui doit remplir certaines conditions.Pas testé sur 50 fichiers.
A+
Un petit exemple mais qui doit remplir certaines conditions.
- Le fichier Prof et les fichiers élèves doivent être dans le même répertoire.
- Les feuilles à importer doivent avoir le même nom que le classeur sans l'extension.
Code : Tout sélectionner
Option Explicit
Global monTab() as String
Sub ImporterFeuilles
Dim oDoc as Object, mesFeuilles as Object, maFeuille as Object
Dim sURL as String, x as Integer,adrDocSource as String, NomFeuille as String
oDoc = thisComponent
sURL = getDirectory(thisComponent.getURL())
SelectionClasseurs(sURL)
mesFeuilles = oDoc.Sheets
For x = LBound(monTab) To UBound(monTab)
adrDocSource = monTab(x)
NomFeuille = ConvertFromUrl(getFileNameOnly(adrDocSource))
mesFeuilles.insertNewByName(NomFeuille, mesFeuilles.Count)
maFeuille = mesFeuilles.getByName(NomFeuille)
maFeuille.link(adrDocSource, NomFeuille, "", "", com.sun.star.sheet.SheetLinkMode.NORMAL )
maFeuille.setLinkMode(com.sun.star.sheet.SheetLinkMode.NONE)
Next
End Sub
Sub SelectionClasseurs(monURL as String)
Dim FP As Object, lesClasseurs() As String
Dim x As Long
FP = CreateUnoService("com.sun.star.ui.dialogs.FilePicker")
FP.DisplayDirectory = monURL
FP.appendFilter("Documents Calc", "*.ods")
FP.CurrentFilter = "Documents Calc"
FP.MultiSelectionMode = True
FP.Title = "Choisissez le ou les classeurs à importer"
If FP.execute = com.sun.star.ui.dialogs.ExecutableDialogResults.OK Then
lesClasseurs() = FP.Files
If UBound(lesClasseurs) > 0 Then
For x = 1 to UBound(lesClasseurs)
reDim Preserve monTab(x - 1)
monTab(x - 1) = lesClasseurs(x)
Next
Else
reDim monTab(0)
monTab(0) = lesClasseurs(0)
End If
End If
FP.dispose
End Sub
A+
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
-
- Membre lOOyal
- Messages : 37
- Inscription : 06 mai 2015 09:32
Re: [Calc] Import de feuilles depuis plusieurs classeurs
Les conditions ne me posent pas de soucis, j'essaie ça sans tarder merci
libreOffice 4.3.6.2 sous Windows7
-
- Membre lOOyal
- Messages : 37
- Inscription : 06 mai 2015 09:32
Re: [Calc] Import de feuilles depuis plusieurs classeurs
Après plusieurs tentative, j’exécute la macro qui me demande bien de choisir un fichier à importer, mais un seul, et ça ne résout pas mon problème... à moins que je m'y prenne mal?Piaf a écrit :Bonjour
Un petit exemple mais qui doit remplir certaines conditions.
- Le fichier Prof et les fichiers élèves doivent être dans le même répertoire.
- Les feuilles à importer doivent avoir le même nom que le classeur sans l'extension.
Pas testé sur 50 fichiers.Code : Tout sélectionner
Option Explicit Global monTab() as String Sub ImporterFeuilles Dim oDoc as Object, mesFeuilles as Object, maFeuille as Object Dim sURL as String, x as Integer,adrDocSource as String, NomFeuille as String oDoc = thisComponent sURL = getDirectory(thisComponent.getURL()) SelectionClasseurs(sURL) mesFeuilles = oDoc.Sheets For x = LBound(monTab) To UBound(monTab) adrDocSource = monTab(x) NomFeuille = ConvertFromUrl(getFileNameOnly(adrDocSource)) mesFeuilles.insertNewByName(NomFeuille, mesFeuilles.Count) maFeuille = mesFeuilles.getByName(NomFeuille) maFeuille.link(adrDocSource, NomFeuille, "", "", com.sun.star.sheet.SheetLinkMode.NORMAL ) maFeuille.setLinkMode(com.sun.star.sheet.SheetLinkMode.NONE) Next End Sub Sub SelectionClasseurs(monURL as String) Dim FP As Object, lesClasseurs() As String Dim x As Long FP = CreateUnoService("com.sun.star.ui.dialogs.FilePicker") FP.DisplayDirectory = monURL FP.appendFilter("Documents Calc", "*.ods") FP.CurrentFilter = "Documents Calc" FP.MultiSelectionMode = True FP.Title = "Choisissez le ou les classeurs à importer" If FP.execute = com.sun.star.ui.dialogs.ExecutableDialogResults.OK Then lesClasseurs() = FP.Files If UBound(lesClasseurs) > 0 Then For x = 1 to UBound(lesClasseurs) reDim Preserve monTab(x - 1) monTab(x - 1) = lesClasseurs(x) Next Else reDim monTab(0) monTab(0) = lesClasseurs(0) End If End If FP.dispose End Sub
A+
libreOffice 4.3.6.2 sous Windows7
-
- MOOdérateur
- Messages : 1139
- Inscription : 01 oct. 2008 16:54
Re: [Calc] Import de feuilles depuis plusieurs classeurs
Bonjour,
Évitez de citer l'ensemble du message précédent, cela rend la lecture très difficile.
Comment joindre un fichier au format ODF
Penser également à dépersonnaliser le fichier joint.
Évitez de citer l'ensemble du message précédent, cela rend la lecture très difficile.
coincoin a écrit :à moins que je m'y prenne mal?
Comment joindre un fichier au format ODF
Penser également à dépersonnaliser le fichier joint.
Nettoyez votre PC du piratage, utilisez des logiciels libres à chaque lavage.
Une seule dose de OpenOffice suffit à éliminer durablement toute trace de MS-Office.
Une seule dose de OpenOffice suffit à éliminer durablement toute trace de MS-Office.
-
- GourOOu
- Messages : 5622
- Inscription : 25 nov. 2011 18:07
- Localisation : Guyane
Re: [Calc] Import de feuilles depuis plusieurs classeurs
Bonjour
Teste en sélectionnant plusieurs fichiers.
A+
Si tu ne sélectionnes qu'un fichier, la macro n'importera qu'un fichier, le titre de la boite de dialogue de sélection est : Choisissez le ou les classeurs à importer.coincoin a écrit :Après plusieurs tentative, j’exécute la macro qui me demande bien de choisir un fichier à importer, mais un seul
Teste en sélectionnant plusieurs fichiers.
A+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
-
- Membre lOOyal
- Messages : 37
- Inscription : 06 mai 2015 09:32
Re: [Calc] Import de feuilles depuis plusieurs classeurs
oui, c'est bien ce que j'ai voulu faire, mais le browser qui s'ouvre quand j’exécute la macro ne me permet pas de choisir les deux fichiers élèves, c'est soit l'un, soit l'autre
libreOffice 4.3.6.2 sous Windows7
-
- ManitOOu
- Messages : 3031
- Inscription : 02 juil. 2014 17:25
Re: [Calc] Import de feuilles depuis plusieurs classeurs
Bonjour,
A+
Même en appuyant sur la touche Ctrl ? (Désolé je n'ai pas Windows pour tester)coincoin a écrit :mais le browser qui s'ouvre quand j’exécute la macro ne me permet pas de choisir les deux fichiers élèves, c'est soit l'un, soit l'autre
A+
-
- ManitOOu
- Messages : 3223
- Inscription : 13 janv. 2006 16:21
- Localisation : Chasseneuil-du-Poitou / Futuroscope
Re: [Calc] Import de feuilles depuis plusieurs classeurs
Bonsoir,
C'est un principe lié à ton système d'exploitation :
h**p://windows.microsoft.com/fr-fr/windows/select-multiple-files-folders#1TC=windows-7
A+
Le dialogue permet la multi sélection en maintenant la touche Ctrl ou Maj appuyée.coincoin a écrit : mais le browser qui s'ouvre quand j’exécute la macro ne me permet pas de choisir les deux fichiers élèves
C'est un principe lié à ton système d'exploitation :
h**p://windows.microsoft.com/fr-fr/windows/select-multiple-files-folders#1TC=windows-7
A+
OpenOffice 4.1.5 et LibreOffice 5.3.4 (par obligation) sous Windows 7
-
- Membre lOOyal
- Messages : 37
- Inscription : 06 mai 2015 09:32
Re: [Calc] Import de feuilles depuis plusieurs classeurs
oui, merci je connais ce principe ... j'ai également essayer une sélection en encadrant les deux fichiers avec la souris mais je confirme que la sélection est exclusive ...
libreOffice 4.3.6.2 sous Windows7
-
- GourOOu
- Messages : 5622
- Inscription : 25 nov. 2011 18:07
- Localisation : Guyane
Re: [Calc] Import de feuilles depuis plusieurs classeurs
Re
Teste en rempalcant la ligneParA+
Teste en rempalcant la ligne
Code : Tout sélectionner
FP = CreateUnoService("com.sun.star.ui.dialogs.FilePicker")
Code : Tout sélectionner
FP = CreateUnoService("com.sun.star.ui.dialogs.OfficeFilePicker")
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
-
- Membre lOOyal
- Messages : 37
- Inscription : 06 mai 2015 09:32
Re: [Calc] Import de feuilles depuis plusieurs classeurs
bien vu, le browser de sélection n'est plus le même et je peux effectivement importer mes deux fichiers d'un coup.
Merci encore pour votre implication
Merci encore pour votre implication
libreOffice 4.3.6.2 sous Windows7
-
- Membre lOOyal
- Messages : 37
- Inscription : 06 mai 2015 09:32
Re: [Résolu][Calc] Import de feuilles depuis plusieurs class
Bonjour,
Je déterre ce fil où j'avais trouvé mon bonheur il y a quatre ans, car depuis la dernière maj de libreoffice (6.3.1.2 x64), le bouton qui permet d'activer la macro se met à clignoter dès que je double clique sur une cellule, Le fonctionnement du logiciel se trouve alors grandement ralenti, même si toute les fonctionnalités, y compris la macro en question, sont bien là.
J'ai essayé de supprimer le bouton pour en générer un autre, mais le problème semble entier.
Je vous joint l'un de mes fichiers pour illustrer mes dires
Par avance, merci.
Je déterre ce fil où j'avais trouvé mon bonheur il y a quatre ans, car depuis la dernière maj de libreoffice (6.3.1.2 x64), le bouton qui permet d'activer la macro se met à clignoter dès que je double clique sur une cellule, Le fonctionnement du logiciel se trouve alors grandement ralenti, même si toute les fonctionnalités, y compris la macro en question, sont bien là.
J'ai essayé de supprimer le bouton pour en générer un autre, mais le problème semble entier.
Je vous joint l'un de mes fichiers pour illustrer mes dires
Par avance, merci.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
libreOffice 4.3.6.2 sous Windows7
-
- RespOOnsable forum
- Messages : 9254
- Inscription : 28 août 2010 08:45
Re: [Résolu][Calc] Import de feuilles depuis plusieurs class
Déterrage = verrouillage.coin-coin a écrit :Je déterre ce fil
Il appartient à l'auteur de faire un nouveau sujet en rappelant le fil du sujet déterré par un lien vers ce dernier.
Touche Ctrl de Windows = touche cmd⌘ sur Mac
Outils > Options sur Windows = OpenOffice > Préférences sur Mac
Outils > Options sur Windows = OpenOffice > Préférences sur Mac