Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Macro de lecture et fusion

  • Initiateur de la discussion Initiateur de la discussion heavens
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

heavens

XLDnaute Nouveau
Bonjour à tous,
je suis en recherche d'aide pour une macro qui me fait devenir dingue !!
je vous explique

- je vais envoyer un *.ods à environ 600 personnes qui vont enregistrer ce fichier dans un dossier partagé.
- je dois trouver une macro qui va ouvrir les réponses *.ods, les lire, enregistrer les données voulues et refermer le fichier.
- naturellement, je voudrais que cette macro puisse lire mes réponses et les enregistrer les unes après les autres.

j'en suis là : mais je ne suis vraiment pas certain de mes lignes de commandes !


Sub fusionfichiers()
'
' fusion Macro
'
Dim NomFich As String, NomRep As String
NomRep = "G:\Dossiers Partagés\Audit Impression"
NomFich = Dir(NomRep & "*.ods")
Do While NomFich <> ""
nomfile = NomRep & NomFich
Workbooks.Open nomfile

'**** Traitement de la fusion
Windows(nomfile).Activate
Range("A1").Select
' selection et copie
i = ActiveCell.SpecialCells(xlCellTypeLastCell).Row
j = ActiveCell.SpecialCells(xlCellTypeLastCell).Column
Range(Cells(1, 1), Cells(4, j)).Select
Selection.Copy

'ThisWorkbook.ActiveSheet.Range ("A1")
Windows("testfusionfichiers.xls").Activate
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=Fals
'vidage du presse papier pour ne pas avoir le message
Application.CutCopyMode = False

' ThisWorkbook.ActiveSheet.Range("A1") = _
' ThisWorkbook.ActiveSheet.Range("A1") + _
' ActiveWorkbook.ActiveSheet.Range("A1")

' fin du traitement de la fusion

ActiveWorkbook.Close no
NomFich = Dir
Loop
End Sub


je ne sais pas comment lui dire exactement ce qu'elle doit copier 😡

merci pour votre aide
 
Re : Macro de lecture et fusion

Bonjour,
Le lien ne te donne pas une solution sur un plateau, mais en réfléchissant, tu verras qu'il te fournit les briques pour y parvenir.
Par exemple, j'en ai déduit le code ci-dessous qui ouvre un fichier "dOOocument.ods" et le copie au format .xls
A partir de là tu peux programmer de façon classique avec des fichiers Excel : faire une boucle sur les fichiers OOo pour faire une copie temporaire .xls et en extraire les infos.
VB:
Sub CopieOOoToXls() 'Le fichier dOOocument.ods est copié au format .xls
    Dim Args(), Args2(0)
    Dim serviceManager As Object, Desktop As Object, Document As Object
    Dim Donnees As String
    Dim i As Byte
    
    'Création d'une instance Open Office
    Set serviceManager = CreateObject("com.sun.star.ServiceManager")
    Set Desktop = serviceManager.createInstance("com.sun.star.frame.Desktop")
    
    'Appel fonction de conversion du chemin
    Fichier = ConvertToURL(ThisWorkbook.Path & "\dOOocument.ods")

    'Ouverture du fichier Ooo
    Set Document = Desktop.loadComponentFromURL(Fichier, "_blank", 0, Args)
    
    'Crée une copie du fichier OOo au format Excel
    FichierCopie = ConvertToURL(ThisWorkbook.Path & "\CopiedOOocument.xls")
    Set Args2(0) = serviceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue")
    Args2(0).Name = "FilterName"
    Args2(0).Value = "MS Excel 97"
    Document.StoreToURL FichierCopie, Args2
    DoEvents

    'Fermeture du document OOo sans sauvegarder
    Document.Close (False)
End Sub


Function ConvertToURL(Fichier As String)
'fonction de conversion  au format URL
Dim Cible As String
    Cible = Fichier
    Cible = Replace(Cible, "\", "/")
    ConvertToURL = "file:///" & Cible
End Function
A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
1
Affichages
877
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…