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 :

Activer une cellule sans la selectionner [LibreOffice][Tableur]


Sujet :

OpenOffice & LibreOffice

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 13
    Points : 11
    Points
    11
    Par défaut Activer une cellule sans la selectionner
    Bonjour,

    Cela fait des heures que je cherche comment déplacer le "curseur utilisateur".
    J'utilise actuellement la fonction select() pour sélectionner la case dans laquelle l'utilisateur doit écrire après exécution de ma macro.
    Mais cette fonction ne se contente pas de déplacer le curseur. Elle sélectionne la cellule et ce n'est pas agréable d'écrire dans une cellule sélectionné.
    On ne peut pas faire TAB pour passer à la case suivante.

    Y a-t-il un moyen de juste déplacer le curseur ?

    Merci d'avance


    EDIT : Voici la solution trouvé à la fin de cette discution
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ThisComponent.CurrentController.select(Sheet.getCellByPosition(1,ligne))
    	'Selection de la case voulue
    ThisComponent.CurrentController.select(ThisComponent.createInstance("com.sun.star.sheet.SheetCellRanges"))
    	'Selection d'une plage vide

  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
    Je ne vois pas trop le problème, si tu dois y mettre une donnée dans cette cellule

    Sinon pourquoi pas utilisé un inputbox
    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
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 13
    Points : 11
    Points
    11
    Par défaut
    Bon, si le problème n'est pas claire, je vais préciser un peu.
    C'est pour un tableau de compte.
    La macro insert une ligne à la bonne position en fonction de la date entrée dans une inputbox puis écrit toute les formules nécessaires une ligne de compte.
    Je voudrais qu'à la fin de la macro le curseur soit positionné sur la première cellule après la date pour que l'utilisateur (moi en fait) puisse remplir la ligne.
    Le problème de select est qu'on ne peut pas passer à la cellule suivante avec TAB et comme j'en ai l'habitude c'est embêtant.
    De plus, je trouve moins convivial d'écrire dans une cellule sélectionnée que dans une cellule qui a juste le focus.

  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
    Ceci pourrait peut-être aller :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub essai()
     
        monDocument = ThisComponent
         lesFeuilles = monDocument.Sheets
        maFeuille = lesFeuilles.getByName("Feuille1")
        maCellule = maFeuille.getCellRangeByName("A10")
           'maCellule.String = "Texte que vous voulez mettre dans la cellule"
     
        monControle = monDocument.CurrentController
        monControle.FirstVisibleColumn = 0
        monControle.FirstVisibleRow = 10 - 1
     
    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
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 13
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par zoom61 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub essai()
     
        monControle = monDocument.CurrentController
        monControle.FirstVisibleColumn = 0
        monControle.FirstVisibleRow = 10 - 1
     
    End Sub
    J'ai recherché ces fonctions mais je n'ai pas trouvé à quoi elles servent.
    Pouvez-vous expliquer un peut plus ces ligne ?

  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
    Cela va positionner l'affichage sur la cellule A10.

    Indique que l'on veut se positionner sur le positionnement en cours, mais les lignes qui suivent vont le modifier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monControle = monDocument.CurrentController
    Indique que l'on veut se mettre sur la colonne 0 qui est la colonne A:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monControle.FirstVisibleColumn = 1 - 1 '0
    Indique que l'on veut se mettre sur la ligne 9 qui est la ligne 10 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monControle.FirstVisibleRow = 10 - 1
    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
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 13
    Points : 11
    Points
    11
    Par défaut
    Je viens de tester cette solution.
    Ça déplace l'affichage mais ne déplace pas le curseur.
    Il faut donc cliquer sur la cellule avant de pouvoir écrire.

    Y a-t-il un moyen de déplacer le curseur ?

  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
    Si tu as inséré une ligne, tu sais à quel endroit, il faut le mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    monControle = monDocument.CurrentController     
    monControle.FirstVisibleColumn = 0     
    monControle.FirstVisibleRow = lig 'lig correspond à l'emplacement de la ligne insérée
    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
    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
    Si tu as inséré une ligne, tu sais à quel endroit, il faut le mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    monControle = monDocument.CurrentController     
    monControle.FirstVisibleColumn = 0     
    monControle.FirstVisibleRow = lig-1 'lig correspond à l'emplacement de la ligne insérée
    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

  10. #10
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 13
    Points : 11
    Points
    11
    Par défaut
    Je sais bien qu'il existe plein de moyen d'indiquer où il faut écrire.
    Ce que je voudrais c'est pouvoir écrire directement car c'est un tableau où je peux parfois entrer un grand nombre de ligne et j'aimerais que ce soit le plus rapide possible.
    C'est dans cette optique que j'ai créé ma macro.
    Il me faut donc une fonction qui déplace le curseur de sorte que je puisse taper des truc des que j'ai entré la date dans l'inputbox et appuyé sur entrée.
    Je ne veux pas avoir à cliquer.

  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 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Si tu insères une ligne, elle est insérée soit à la fin, au milieu, etc. Tu as donc bien une information de ligne, il te suffit juste de le mettre avec la commande monControle.FirstVisibleRow, et cela positionnera le curseur à l'emplacement souhaité.
    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
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 13
    Points : 11
    Points
    11
    Par défaut
    Et bien non justement.
    Cette fonction place la ligne indiqué en haut de la page mais ne déplace pas le curseur.

    J'en profite pour vous remercier de prendre du temps sur mon problème car même si je n'ai pas encore ma solution j’apprécie que quelqu'un y réfléchisse.

  13. #13
    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
    Comment fais-tu l'insertion d'une ligne ? Peux-tu donner le code ?
    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

  14. #14
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 13
    Points : 11
    Points
    11
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheet.Rows.insertByIndex(ligne,1)

  15. #15
    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
    Cela devrait être quelque chose comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sheet.Rows.insertByIndex(ligne,1)
    ... 'code si des opérations sont nécessaires, mais ne pas modifier la valeur ligne
    monControle = monDocument.CurrentController     
    monControle.FirstVisibleColumn = 0     
    monControle.FirstVisibleRow = ligne
    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

  16. #16
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 13
    Points : 11
    Points
    11
    Par défaut
    Je suis désolé mais je n'ai pas l'impression que vous avez lu tous mes messages.

    Je n'ai aucun problème avec l'utilisation de FirstVisibleRow.
    Cette fonction ne convient pas à ce que je veux faire.

    N'y a-t-il aucune fonction pour activer une cellule sans la sélectionner ?

  17. #17
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 953
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 953
    Points : 9 283
    Points
    9 283
    Par défaut
    hello,
    le code de l'excellent Villeroy du forum de openoffice.org répond peut-être à tes attentes :
    And this is how you can select (highlight) a cell and then release the selection so there is only the active input cell:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub activateCell(oCell)
    view = ThisComponent.getCurrentController()
    view.select(oCell)
    f = view.getFrame()
    f.activate()
    n = ThisComponent.createInstance("com.sun.star.sheet.SheetCellRanges")
    view.select(n)
    End Sub

    à appeler par exemple par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      monDocument = ThisComponent
      lesFeuilles = monDocument.Sheets
      maFeuille = lesFeuilles.getByName("Feuille1")
      maCellule = maFeuille.getCellRangeByName("B2")
      activateCell(maCellule)
    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  18. #18
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 13
    Points : 11
    Points
    11
    Par défaut
    Bonjour,

    Merci pour ton aide jurassic pork.
    Finalement je m'en sort avec ses 2 lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ThisComponent.CurrentController.select(Sheet.getCellByPosition(1,ligne))
    ThisComponent.CurrentController.select(ThisComponent.createInstance("com.sun.star.sheet.SheetCellRanges"))

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

Discussions similaires

  1. JTable : mettre à jour une cellule sans taper "enter"
    Par Copps dans le forum Composants
    Réponses: 9
    Dernier message: 21/08/2007, 17h34
  2. Réponses: 1
    Dernier message: 31/07/2007, 09h19
  3. [VBA-E] Ecrire dans une cellule sans écraser son contenu
    Par skystef dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/02/2007, 15h43
  4. Une cellule sans contenu mais affichée quand même?
    Par petozak dans le forum Balisage (X)HTML et validation W3C
    Réponses: 30
    Dernier message: 30/08/2006, 18h19
  5. vba excel - Comment saisir une cellule sans faire entrer
    Par brethomeau dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 15/11/2005, 17h50

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