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 :

Macro Renommer Plage de cellules active [LibreOffice][Tableur]


Sujet :

OpenOffice & LibreOffice

  1. #1
    Candidat au Club
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Octobre 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Octobre 2016
    Messages : 6
    Points : 2
    Points
    2
    Par défaut Macro Renommer Plage de cellules active
    Bonsoir,
    Je souhaite renommer une plage de cellules à l'aide d'une macro Ooo Basic.
    Vous trouverez en pièce jointe le fichier où je fais des essais (Macro RenommePlage2)
    Résumé :
    1 - Dans la feuille Prestations, j'ai une plage nommée Prestations correspondant à A3:C7
    2 - Une première macro me permet de supprimer le nom prestations s'il existe (Macro SupprimeNomPrestations)
    3 - Une deuxième macro me permet de sélectionner à partir de la cellule A3, la plage des prestations avec CTRL + * (Macro RenommePlage2)
    4 - Je n'arrive pas à indiquer que c'est cette plage active que je veux nommer prestations.
    Dans le code j'ai à la fin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     oNom.addNewByName( "prestations" , "$prestations.$A3:$C7" , oCellAdress , 0 )
    Ce que je veux c'est remplacer $prestations.$A3:$C7 par ma plage de cellules active.
    Je vous remercie de votre aide, j'ai eu beau chercher, je bute sur cette dernière étape.
    Cordialement,
    Philippe
    Fichiers attachés Fichiers attachés

  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 609
    Points
    58 609
    Billets dans le blog
    11
    Par défaut
    Bonjour,

    Les macros ne sont pas dans le fichier que tu as joins !
    Voir ici pour savoir où mettre les macros.

    Cdlt.
    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
    Candidat au Club
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Octobre 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Octobre 2016
    Messages : 6
    Points : 2
    Points
    2
    Par défaut Macros dans la pièce jointe
    Zoom 61,
    Merci de votre réponse. J'ai ajouté les macros dans le fichier.
    Cordialement,
    Philippe
    Fichiers attachés Fichiers attachés

  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 609
    Points
    58 609
    Billets dans le blog
    11
    Par défaut
    Salut,

    Ce qui pourrait donner :
    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
    Sub RenommePlage2
        Dim monDocument As Object
        Dim lesFeuilles as Object
        Dim maFeuille As Object
        Dim maCellule As Object
        Dim oNom As Object  
        Dim oCellAdress As New com.sun.star.table.CellAddress
     
        'Définir la dernière cellule active
        monDocument = ThisComponent
        lesFeuilles = monDocument.Sheets
        maFeuille = lesFeuilles.getByName("prestations")
        maPosition = maFeuille.createCursor
        maPosition.gotoEndOfUsedArea(False)
     
        'Renommer la plage
        oNom = ThisComponent.NamedRanges 
        oNom.addNewByName( "prestations" , "$prestations.$A3:$C" &  maPosition.RangeAddress.EndRow+1 , oCellAdress , 0 )  
    End Sub
    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
    Candidat au Club
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Octobre 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Octobre 2016
    Messages : 6
    Points : 2
    Points
    2
    Par défaut Message d'erreur
    Bonjour Zoom61,
    Merci de ta réponse. J'ai le message d'erreur ci-dessous qui s'affiche à l'exécution de la macro :
    Nom : macro_renommer.PNG
Affichages : 593
Taille : 27,0 Ko
    Ai-je raté quelque chose ?
    Merci de ton aide,
    Philippe

  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 609
    Points
    58 609
    Billets dans le blog
    11
    Par défaut
    Si tu rajoutes cette commande avant le renommage, elle doit quoi comme valeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox maPosition.gotoEndOfUsedArea(False)
    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
    Candidat au Club
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Octobre 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Octobre 2016
    Messages : 6
    Points : 2
    Points
    2
    Par défaut Introduction de la nouvelle ligne
    Bonjour Zoom61,
    Voici le message obtenu lors de l'exécution dans l'éditeur de macros :
    Nom : macro_renommer2.PNG
Affichages : 626
Taille : 27,4 Ko
    Et quand je l'exécute dans la feuille :
    Nom : macro_renommer3.PNG
Affichages : 573
Taille : 13,7 Ko
    Merci,
    Philippe

  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 609
    Points
    58 609
    Billets dans le blog
    11
    Par défaut
    Je viens de voir que j'ai fait une erreur, modifie la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim maCellule As Object
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim maPosition As Object
    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
    Candidat au Club
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Octobre 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Octobre 2016
    Messages : 6
    Points : 2
    Points
    2
    Par défaut Message d'erreur
    Bonsoir Zoom61,
    J'ai le message d'erreur ci-dessous :
    Nom : macro_renommer4.PNG
Affichages : 561
Taille : 27,5 Ko
    Merci,
    Philippe

  10. #10
    Membre du Club
    Homme Profil pro
    Chef d'entreprise
    Inscrit en
    Octobre 2016
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef d'entreprise

    Informations forums :
    Inscription : Octobre 2016
    Messages : 41
    Points : 64
    Points
    64
    Par défaut
    Bonjour,

    Un petit morceau de code qui supprime la zone nommée si elle existe, et nome la sélection faite sur la feuille active :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Option Explicit
     
    Sub Main
    Dim oDoc As Object, celluleRef As Object 
    Dim selection As Object, zonesNommees As Object
    oDoc = Thiscomponent
    celluleRef = oDoc.CurrentController.ActiveSheet.GetcellRangeByName("A1")
    selection = oDoc.CurrentSelection
    zonesNommees = oDoc.NamedRanges
    If zonesNommees.hasByName("Prestations") then
    	zonesNommees.removeByName("Prestations")
    end If  
    zonesNommees.addNewByName("Prestations",selection.AbsoluteName ,celluleRef.CellAddress,0)
    End Sub
    A+

  11. #11
    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 609
    Points
    58 609
    Billets dans le blog
    11
    Par défaut
    As-tu refait un MsgBox maPosition.gotoEndOfUsedArea(False) ? Et que donne le résultat ?
    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

  12. #12
    Candidat au Club
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Octobre 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Octobre 2016
    Messages : 6
    Points : 2
    Points
    2
    Par défaut Macro
    à l'attention de Z_662,
    Merci, la macro fonctionne parfaitement !
    Merci à tous les deux (Zoom61) de votre aide.
    Cordialement,
    Philippe

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 09/07/2014, 17h51
  2. [OpenOffice][Tableur] [tableur] macro copie colle de plage de cellule active
    Par nhan57 dans le forum OpenOffice & LibreOffice
    Réponses: 2
    Dernier message: 26/01/2013, 23h22
  3. [XL-2003] macro copier plage une de cellules et l'insérer dans la cellule active
    Par grimou dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 07/05/2009, 00h42
  4. [VBA-E] sommer une plage de cellules actives apres un filtre
    Par rond24 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 06/04/2007, 13h07
  5. Macro en fonction d'une sélection de plage de cellules.
    Par Labiche dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/08/2006, 11h23

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