IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenOffice & LibreOffice Discussion :

Fusion de feuilles [OpenOffice][Tableur]


Sujet :

OpenOffice & LibreOffice

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2012
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 66
    Points : 37
    Points
    37
    Par défaut Fusion de feuilles
    Bonjour,

    Je voudrais fusionner des feuilles d'un classeur. Je m'explique, j'ai plusieurs feuilles qui ont toute au moins une colone en commun, je voudrais rassembler toutes ces feuilles sur une seul. Je ne sais pas si j'ai été très claire, si ce n'est pas le cas dites le moi et je ré-expliquerai.

    Merci

  2. #2
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Oups ! J'avais pas vu que c'était sur Calc, avec ce bout de code tu dois pouvoir y arriver, il faut créer une Feuille Récap au début :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    Function CopierFeuille()
    Dim oFichier As Object
    Dim oFeuil As Object
    Dim oCells As Object
    Dim oSelect As Object
    Dim oDestination As Object
    Dim oDel As Long
    Dim NbFeuil As Integer
    Dim x As Integer
    Dim i As Integer
    Dim oPos As Object
     
        oFichier = thisComponent
        oFeuil = oFichier.sheets
        oDestination = oFeuil.getByName("Recap")
     
        oDel = com.sun.star.sheet.CellFlags.STRING
        'oDel = oDel + com.sun.star.sheet.CellFlags.VALUE
        'oDel = oDel + com.sun.star.sheet.CellFlags.DATETIME
    ' Sélectionner toutes les cellules utilisées    
        oCells = oDestination.createCursorByRange(oDestination.getCellRangeByName("A1")
        oCells.gotoEndOfUsedArea(True) 
        oSelect = oDestination.getCellRangeByName(oCells.absoluteName)
    ' Effacer la feuille "Recap" à partir de la cellule A1.    
        oSelect.clearContents(oDel)
    ' Recopier dans la feuille "Recap" toutes les celules utilisées des "Feuilles"    
        NbFeuil = oFeuil.count
        i = 1  'ligne de départ pour la recopie sur la feuille "Recap"
        for x = 0 to NbFeuil - 1 
            oUneFeuille = oFeuil(x)
            if left(oUneFeuille.Name,7) = "Feuille" then 
                oCells = oUneFeuille.createCursorByRange(oUneFeuille.getCellRangeByName("A1")
                oCells.gotoEndOfUsedArea(True) 
                oSelect = oUneFeuille.getCellRangeByName(oCells.absoluteName)
                oPos  = oDestination.getCellRangeByName("A" & i )
                   oDestination.CopyRange(oPos.cellAddress,oSelect.RangeAddress)
                   i = i + (oSelect.RangeAddress.EndRow - oSelect.RangeAddress.StartRow + 1)
             end if
        next x
     
    End function
    N'oubliez pas le Tag afin de faciliter la recherche, et en votant cela permet de mieux la cibler.

    Je ne réponds pas aux messages privés s'ils sont liés à une question technique

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2012
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 66
    Points : 37
    Points
    37
    Par défaut
    Merci pour ta réponse même si je n'est pas tout compris, mais comment l'utiliser ?

  4. #4
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Il faut que tu copies ce code dans le module Basic.
    Pour cela tu vas dans "Outils/Macros/Gérer les macros/LibreOfficeBasic" ou "Outils/Macros/Gérer les macros/OpenOfficeBasic", dans le masque qui apparaît, tu cliques sur "Editer", tu copies le code, ensuite tu vas dans "Outils/Macros/Exécuter la macro..." et tu suis les étapes.
    Attention que ton niveau de sécurité sur les macros ne soit pas trop haut

    J'espère avoir été assez clair...

    @+.
    N'oubliez pas le Tag afin de faciliter la recherche, et en votant cela permet de mieux la cibler.

    Je ne réponds pas aux messages privés s'ils sont liés à une question technique

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2012
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 66
    Points : 37
    Points
    37
    Par défaut
    Oui c'est très claire merci beaucoup. Mais la fonction ne marche pas, OpenOffice me dit qu'il y a une erreur de syntaxe (une parenthèse) sur cette ligne.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    oPos  = oDestination.getCellRangeByName("A" & i )

  6. #6
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    oPos  = oDestination.getCellRangeByName("A" & i )
    N'oubliez pas le Tag afin de faciliter la recherche, et en votant cela permet de mieux la cibler.

    Je ne réponds pas aux messages privés s'ils sont liés à une question technique

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2012
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 66
    Points : 37
    Points
    37
    Par défaut
    Je suis vraiment désolé je ne connais pas le code donc je ne comprend rien.
    Une exception s'est produite sur cette ligne (ci-dessous), le type est : NoSuchElementException.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    oDestination = oFeuil.getByName("Recap")

  8. #8
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    As-tu bien créé une feuille "Recap"...
    N'oubliez pas le Tag afin de faciliter la recherche, et en votant cela permet de mieux la cibler.

    Je ne réponds pas aux messages privés s'ils sont liés à une question technique

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2012
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 66
    Points : 37
    Points
    37
    Par défaut
    Non je ne l'avais pas fais, je pensais que si elle n'existait pas elle serrait créer. Maintenant quand j'exécute la macro il ne se passe rien.

    Peut être que si je te donne un exemple de mon fichier .ods ce sera plus simple ?

  10. #10
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    On peut toujours essayer.
    N'oubliez pas le Tag afin de faciliter la recherche, et en votant cela permet de mieux la cibler.

    Je ne réponds pas aux messages privés s'ils sont liés à une question technique

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2012
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 66
    Points : 37
    Points
    37
    Par défaut
    Voici un exemple du fichier.

    Je précise que le fichier que je devrai traiter est composé de 11 feuilles.
    Fichiers attachés Fichiers attachés

  12. #12
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Voici le résultat, les modifs que j'ai fait sont les suivantes :
    1. Il fallait créer une feuille "Recap"
    2. Ensuite les données "A1" doivent devenir "A2"
    3. Il fallait changer le filtre sur le nom des feuilles


    @+.
    N'oubliez pas le Tag afin de faciliter la recherche, et en votant cela permet de mieux la cibler.

    Je ne réponds pas aux messages privés s'ils sont liés à une question technique

  13. #13
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2012
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 66
    Points : 37
    Points
    37
    Par défaut
    Merci beaucoup pour ton aide et surtout pour ta patience

    Une dernière question si ca ne te dérange pas, serait il possible de récupérer les titres des colonnes qui ce trouve sur la ligne 1 ? Et de créer "Recap" si il n'existe pas ?

  14. #14
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    En insérant ce code cela devrait aller et en le modifiant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Niveau = 0	
        for x = 0 to NbFeuil - 1 
            oUneFeuille = oFeuil(x)
            if oUneFeuille.Name = "Recap" then 
                Niveau = 1
             end if
        next x
        if Niveau = 0 then
           oFeuil = oFichier.createInstance("com.sun.star.sheet.Spreadsheet")
    	   oFichier.Sheets.insertByName("Recap", oFeuil)
    	   oFichier = thisComponent
           oFeuil = oFichier.sheets
    	   oDestination = oFeuil.getByName("Recap")
    		With oDestination
    			.GetCellRangeByName("A1").string = "Moi"
    			.GetCellRangeByName("A2").string = "Toi"
    		End With
        end if
    N'oubliez pas le Tag afin de faciliter la recherche, et en votant cela permet de mieux la cibler.

    Je ne réponds pas aux messages privés s'ils sont liés à une question technique

  15. #15
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2012
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 66
    Points : 37
    Points
    37
    Par défaut
    Merci beacoup pour ton aide, à bientôt.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [OpenOffice][Tableur] Fusion de feuilles
    Par tapmen5 dans le forum OpenOffice & LibreOffice
    Réponses: 12
    Dernier message: 11/05/2015, 14h35
  2. [XL-2007] Fusion plusieurs feuilles excel dans un seul fichier
    Par meumeu73.1 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 04/06/2013, 09h13
  3. [XL-2007] fusion deux feuille ont un champ identique
    Par abdelaaziz dans le forum Excel
    Réponses: 1
    Dernier message: 10/12/2012, 11h30
  4. fusion des feuilles d'un classeur
    Par Milton_kinende dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/11/2008, 09h55
  5. Fusion de feuilles
    Par pc75 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 06/02/2008, 08h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo