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 :

Copier une ligne sur une autre feuille


Sujet :

OpenOffice & LibreOffice

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2017
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Copier une ligne sur une autre feuille
    Bonjour !
    J'ai passé cette belle après-midi à essayer de me mettre aux macros dans libreoffice...

    J'ai réussi à faire la première (vous verrez le bouton "Effacer" dans le fichier), mais je n'arrive pas la seconde ("Copier la ligne dans l'autre feuille").

    J'ai beaucoup lu sur les forums (et notamment celui-ci !), mais malgré tous les threads évoquant ce sujet précis, je n'arrive toujours pas à le faire marcher... Je me résigne donc à vous poser la question.

    Après avoir longtemps essayé ce que je trouvais sur les forums, j'ai finalement succombé aux sirènes du "enregistrer macro" pour arriver quasiment à mon but, mais son comportement, ensuite, ne fait plus ce que je veux.

    Ce que je veux, c'est donc ça :
    - Sur la première feuille, sélectionner et copier les cellules de I2 à AM2,
    - Sur la deuxième feuille, ajouter une ligne, juste après la première ligne,
    - Aller sur la cellule A2 et y coller ce qui a été copié.

    A la base, je voulais mettre la ligne copiée à la dernière ligne vide, mais ça non plus, je n'y arrive pas... Mais les deux solutions me vont !

    Au final, j'obtiens une copie étrange... J'ai l'impression qu'il copie la deuxième ligne de la deuxième feuille (donc pas la bonne), avant de faire la création de ligne et le collage... mais impossible de savoir comment bien lui dire ce qu'il faut copier... Pourtant le code m'a l'air de faire ça, avec mes (très) maigres connaissances en programmation...

    Quelqu'un pourrait-il m'aider ?
    Fichiers attachés Fichiers attachés

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2017
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Bonjour,
    J'ai continué mes recherches, mais je n'arrive toujours pas à faire une copie, même simplement...

    Sur la même idée (et sans penser au décalage des lignes, pour le moment), j'ai essayé de simplement faire la copie d'une feuille à l'autre, en m'aidant de ce que j'ai pu trouver sur le forum, mais ça ne fonctionne toujours pas et je n'arrive pas à comprendre pourquoi...

    Voilà ce que j'ai tenté :
    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
    sub montestcopie
    rem Les variables---------------------------------------------------------
    Dim monDocument as Object
    Dim mesFeuilles as Object
    Dim feuilleSource as object
    Dim feuilleDestination as object
    Dim celluleSource as object
    Dim celluleDestination as object
     
    rem Sélectionne et copie la ligne de la première feuille
    monDocument = thisComponent
    mesFeuilles = monDocument.Sheets
    feuilleSource = mesFeuilles.getByName("saisie-competence")
    celluleSource = feuilleSource.getCellRangeByName("I3:AM3")
     
    rem Positionne le curseur à l'endroit de la copie
    feuilleDestination = mesFeuilles.getByName("donnees")
    celluleDestination = feuilleDestination.getCellRangeByName("A2")
     
    rem Effectue la copie souhaitée
    feuilleDestination.copyRange(celluleSource.CellAddress, celluleDestination.RangeAddress)
     
     
    'Autre bout de code qui ne marche pas...
    'MaZoneDepart = ThisComponent.Sheets(0).getCellRangeByName("I3:AM3")
    'MaZoneCible = ThisComponent.Sheets(1).getCellRangeByName("A2:AE2")
    'MaZoneDepart.DataArray = MaZoneCible.DataArray
    End Sub
    Apparemment, ça fait une copie de cases vides. S'il y a du contenu dans la feuille donnees, sur la ligne A2, ça le remplace par des cases vides.
    Pas moyen de copier I3:AM3...

    Autre petite question annexe : Quand on passe par l'enregistreur de macro, ça utilise "dispatcher" un peu partout... Pourquoi la plupart des bouts de code que je vois sur les forums et produits par des personnes n'utilise pas ça ?

    Merci pour votre (future ?) aide .

Discussions similaires

  1. Réponses: 3
    Dernier message: 18/01/2015, 18h30
  2. [WD18] Metre une colonne d'une Table sur une ligne d'une autre Table
    Par Totophe2 dans le forum WinDev
    Réponses: 2
    Dernier message: 22/11/2013, 12h58
  3. Réponses: 2
    Dernier message: 18/11/2012, 11h25
  4. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  5. [XL-2003] Affichage date du mois en cours sur une colonne et une ligne sur trois
    Par altra dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 10/08/2009, 07h51

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