Précédent   Forum du club des développeurs et IT Pro > Logiciels > Autres Logiciels > OpenOffice & LibreOffice
OpenOffice & LibreOffice Forum d'entraide sur OpenOffice.org et LibreOffice. Avant de poster : La F.A.Q OpenOffice
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 22/11/2012, 11h34   #1
Carlito08
Candidat au titre de Membre du Club
 
Homme Valentin Carl
Etudiant à Exia
Inscription : février 2012
Messages : 56
Détails du profil
Informations personnelles :
Nom : Homme Valentin Carl
Âge : 20
Localisation : France, Ardennes (Champagne Ardenne)

Informations professionnelles :
Activité : Etudiant à Exia
Secteur : Enseignement

Informations forums :
Inscription : février 2012
Messages : 56
Points : 13
Points : 13
Envoyer un message via Skype™ à Carlito08
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
Carlito08 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2012, 13h08   #2
zoom61
Responsable OpenOffice & LibreOffice

 
Avatar de zoom61
 
Homme Vincent VIALE
Support MOA & DWH
Inscription : janvier 2005
Messages : 3 438
Détails du profil
Informations personnelles :
Nom : Homme Vincent VIALE
Âge : 40
Localisation : France, Haute Vienne (Limousin)

Informations professionnelles :
Activité : Support MOA & DWH
Secteur : Industrie

Informations forums :
Inscription : janvier 2005
Messages : 3 438
Points : 22 197
Points : 22 197
Envoyer un message via Skype™ à zoom61
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 :
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 ou cela permet de mieux cibler la recherche.

Téléchargez LibreOffice ou Apache OpenOffice
Consulter la rubrique OpenOffice & LibreOffice - Les cours - La FAQ - Le Forum

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

zoom61 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 22/11/2012, 14h20   #3
Carlito08
Candidat au titre de Membre du Club
 
Homme Valentin Carl
Etudiant à Exia
Inscription : février 2012
Messages : 56
Détails du profil
Informations personnelles :
Nom : Homme Valentin Carl
Âge : 20
Localisation : France, Ardennes (Champagne Ardenne)

Informations professionnelles :
Activité : Etudiant à Exia
Secteur : Enseignement

Informations forums :
Inscription : février 2012
Messages : 56
Points : 13
Points : 13
Envoyer un message via Skype™ à Carlito08
Merci pour ta réponse même si je n'est pas tout compris, mais comment l'utiliser ?
Carlito08 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2012, 14h30   #4
zoom61
Responsable OpenOffice & LibreOffice

 
Avatar de zoom61
 
Homme Vincent VIALE
Support MOA & DWH
Inscription : janvier 2005
Messages : 3 438
Détails du profil
Informations personnelles :
Nom : Homme Vincent VIALE
Âge : 40
Localisation : France, Haute Vienne (Limousin)

Informations professionnelles :
Activité : Support MOA & DWH
Secteur : Industrie

Informations forums :
Inscription : janvier 2005
Messages : 3 438
Points : 22 197
Points : 22 197
Envoyer un message via Skype™ à zoom61
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 ou cela permet de mieux cibler la recherche.

Téléchargez LibreOffice ou Apache OpenOffice
Consulter la rubrique OpenOffice & LibreOffice - Les cours - La FAQ - Le Forum

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

zoom61 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 22/11/2012, 14h38   #5
Carlito08
Candidat au titre de Membre du Club
 
Homme Valentin Carl
Etudiant à Exia
Inscription : février 2012
Messages : 56
Détails du profil
Informations personnelles :
Nom : Homme Valentin Carl
Âge : 20
Localisation : France, Ardennes (Champagne Ardenne)

Informations professionnelles :
Activité : Etudiant à Exia
Secteur : Enseignement

Informations forums :
Inscription : février 2012
Messages : 56
Points : 13
Points : 13
Envoyer un message via Skype™ à Carlito08
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 :
oPos  = oDestination.getCellRangeByName("A" & i )
Carlito08 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2012, 14h41   #6
zoom61
Responsable OpenOffice & LibreOffice

 
Avatar de zoom61
 
Homme Vincent VIALE
Support MOA & DWH
Inscription : janvier 2005
Messages : 3 438
Détails du profil
Informations personnelles :
Nom : Homme Vincent VIALE
Âge : 40
Localisation : France, Haute Vienne (Limousin)

Informations professionnelles :
Activité : Support MOA & DWH
Secteur : Industrie

Informations forums :
Inscription : janvier 2005
Messages : 3 438
Points : 22 197
Points : 22 197
Envoyer un message via Skype™ à zoom61
Code :
oPos  = oDestination.getCellRangeByName("A" & i )
__________________
N'oubliez pas le Tag afin de faciliter la recherche, et en votant ou cela permet de mieux cibler la recherche.

Téléchargez LibreOffice ou Apache OpenOffice
Consulter la rubrique OpenOffice & LibreOffice - Les cours - La FAQ - Le Forum

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

zoom61 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 22/11/2012, 14h53   #7
Carlito08
Candidat au titre de Membre du Club
 
Homme Valentin Carl
Etudiant à Exia
Inscription : février 2012
Messages : 56
Détails du profil
Informations personnelles :
Nom : Homme Valentin Carl
Âge : 20
Localisation : France, Ardennes (Champagne Ardenne)

Informations professionnelles :
Activité : Etudiant à Exia
Secteur : Enseignement

Informations forums :
Inscription : février 2012
Messages : 56
Points : 13
Points : 13
Envoyer un message via Skype™ à Carlito08
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 :
oDestination = oFeuil.getByName("Recap")
Carlito08 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2012, 14h58   #8
zoom61
Responsable OpenOffice & LibreOffice

 
Avatar de zoom61
 
Homme Vincent VIALE
Support MOA & DWH
Inscription : janvier 2005
Messages : 3 438
Détails du profil
Informations personnelles :
Nom : Homme Vincent VIALE
Âge : 40
Localisation : France, Haute Vienne (Limousin)

Informations professionnelles :
Activité : Support MOA & DWH
Secteur : Industrie

Informations forums :
Inscription : janvier 2005
Messages : 3 438
Points : 22 197
Points : 22 197
Envoyer un message via Skype™ à zoom61
As-tu bien créé une feuille "Recap"...
__________________
N'oubliez pas le Tag afin de faciliter la recherche, et en votant ou cela permet de mieux cibler la recherche.

Téléchargez LibreOffice ou Apache OpenOffice
Consulter la rubrique OpenOffice & LibreOffice - Les cours - La FAQ - Le Forum

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

zoom61 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 22/11/2012, 15h08   #9
Carlito08
Candidat au titre de Membre du Club
 
Homme Valentin Carl
Etudiant à Exia
Inscription : février 2012
Messages : 56
Détails du profil
Informations personnelles :
Nom : Homme Valentin Carl
Âge : 20
Localisation : France, Ardennes (Champagne Ardenne)

Informations professionnelles :
Activité : Etudiant à Exia
Secteur : Enseignement

Informations forums :
Inscription : février 2012
Messages : 56
Points : 13
Points : 13
Envoyer un message via Skype™ à Carlito08
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 ?
Carlito08 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2012, 15h19   #10
zoom61
Responsable OpenOffice & LibreOffice

 
Avatar de zoom61
 
Homme Vincent VIALE
Support MOA & DWH
Inscription : janvier 2005
Messages : 3 438
Détails du profil
Informations personnelles :
Nom : Homme Vincent VIALE
Âge : 40
Localisation : France, Haute Vienne (Limousin)

Informations professionnelles :
Activité : Support MOA & DWH
Secteur : Industrie

Informations forums :
Inscription : janvier 2005
Messages : 3 438
Points : 22 197
Points : 22 197
Envoyer un message via Skype™ à zoom61
On peut toujours essayer.
__________________
N'oubliez pas le Tag afin de faciliter la recherche, et en votant ou cela permet de mieux cibler la recherche.

Téléchargez LibreOffice ou Apache OpenOffice
Consulter la rubrique OpenOffice & LibreOffice - Les cours - La FAQ - Le Forum

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

zoom61 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2012, 15h36   #11
Carlito08
Candidat au titre de Membre du Club
 
Homme Valentin Carl
Etudiant à Exia
Inscription : février 2012
Messages : 56
Détails du profil
Informations personnelles :
Nom : Homme Valentin Carl
Âge : 20
Localisation : France, Ardennes (Champagne Ardenne)

Informations professionnelles :
Activité : Etudiant à Exia
Secteur : Enseignement

Informations forums :
Inscription : février 2012
Messages : 56
Points : 13
Points : 13
Envoyer un message via Skype™ à Carlito08
Voici un exemple du fichier.

Je précise que le fichier que je devrai traiter est composé de 11 feuilles.
Fichiers attachés
Type de fichier : ods Copie.ods (18,3 Ko, 3 affichages)
Carlito08 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2012, 15h47   #12
zoom61
Responsable OpenOffice & LibreOffice

 
Avatar de zoom61
 
Homme Vincent VIALE
Support MOA & DWH
Inscription : janvier 2005
Messages : 3 438
Détails du profil
Informations personnelles :
Nom : Homme Vincent VIALE
Âge : 40
Localisation : France, Haute Vienne (Limousin)

Informations professionnelles :
Activité : Support MOA & DWH
Secteur : Industrie

Informations forums :
Inscription : janvier 2005
Messages : 3 438
Points : 22 197
Points : 22 197
Envoyer un message via Skype™ à zoom61
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 ou cela permet de mieux cibler la recherche.

Téléchargez LibreOffice ou Apache OpenOffice
Consulter la rubrique OpenOffice & LibreOffice - Les cours - La FAQ - Le Forum

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

zoom61 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 22/11/2012, 16h04   #13
Carlito08
Candidat au titre de Membre du Club
 
Homme Valentin Carl
Etudiant à Exia
Inscription : février 2012
Messages : 56
Détails du profil
Informations personnelles :
Nom : Homme Valentin Carl
Âge : 20
Localisation : France, Ardennes (Champagne Ardenne)

Informations professionnelles :
Activité : Etudiant à Exia
Secteur : Enseignement

Informations forums :
Inscription : février 2012
Messages : 56
Points : 13
Points : 13
Envoyer un message via Skype™ à Carlito08
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 ?
Carlito08 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2012, 19h17   #14
zoom61
Responsable OpenOffice & LibreOffice

 
Avatar de zoom61
 
Homme Vincent VIALE
Support MOA & DWH
Inscription : janvier 2005
Messages : 3 438
Détails du profil
Informations personnelles :
Nom : Homme Vincent VIALE
Âge : 40
Localisation : France, Haute Vienne (Limousin)

Informations professionnelles :
Activité : Support MOA & DWH
Secteur : Industrie

Informations forums :
Inscription : janvier 2005
Messages : 3 438
Points : 22 197
Points : 22 197
Envoyer un message via Skype™ à zoom61
En insérant ce code cela devrait aller et en le modifiant :
Code :
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 ou cela permet de mieux cibler la recherche.

Téléchargez LibreOffice ou Apache OpenOffice
Consulter la rubrique OpenOffice & LibreOffice - Les cours - La FAQ - Le Forum

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

zoom61 est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 23/11/2012, 08h14   #15
Carlito08
Candidat au titre de Membre du Club
 
Homme Valentin Carl
Etudiant à Exia
Inscription : février 2012
Messages : 56
Détails du profil
Informations personnelles :
Nom : Homme Valentin Carl
Âge : 20
Localisation : France, Ardennes (Champagne Ardenne)

Informations professionnelles :
Activité : Etudiant à Exia
Secteur : Enseignement

Informations forums :
Inscription : février 2012
Messages : 56
Points : 13
Points : 13
Envoyer un message via Skype™ à Carlito08
Merci beacoup pour ton aide, à bientôt.
Carlito08 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 02h35.


 
 
 
 
Partenaires

Hébergement Web