Date: prev next · Thread: first prev next last
2014 Archives by date, by thread · List index



Bonjour Lucien, bonjour à tous,

Merci pour tes tests, le repas n'est pas terminé ;-) Je ne souhaite pas tester le type mais 2 cellules entre elles. Je confirme que le .string permet en effet de tester le contenu. Merci Lucien.
Je pense donc que mon problème vient de la définition des variables.

Reprenant le code de Lucien, je peux en effet tester les cellules. J'ai adapté à mon cas plus précis.

Mais la problématique est qu'il s'agit de boucler dans un tableau.
Donc, je n'utilise pas une cellule précise  comme
 v_feuille.getCellRangeByName("B2")
mais la position x,y de la cellule
    v_cellNum=Mafeuille.getCellByPosition(1,j)
Et c'est là que cela ne marche plus.
J'ai avancé toutefois. La cellule me renvoie maintenant #NOM au lieu de 0. Promis, j'ai vérifié les casses et réalisé des copier-coller de tous mes noms.

Au cas où le sujet intéresserait...

Fichier ici. (celui de Lucien avec le cas boucle et le cas qui marche sans boucle)
http://cjoint.com/?DKlloMIg2hx
J'ai créé quasi le cas qui me concerne. Un feuille contenant des données. Une autre feuille qui sélectionne une personne. La macro doit récupérer les lignes de la base qui correspondent au nom sélectionné dans la liste et boucler sur toutes les lignes. Le but final étant un copier collage spéciale des valeurs. Mais ceci sera l'objet d'un autre fil car je n'ai rien trouvé sur le collage spécial ;-)

Merci de votre aide.

Marie-Jo



Le 11/11/2014 00:15, lutch a écrit :
Avant de me coucher…

Le problème m'ayant aiguisé l'appétit, j'ai continué un peu pour aboutir à quelque chose de plus propre

Code Basic

Sub LireCellBis
'=======variables========
dim v_2doc as object, v_2feuille as object, v_2cellTest as object
Dim v_2cellString as string, v_2valueT as variant, v_2cellType as variant
v_2doc=ThisComponent
v_2feuille=v_2doc.sheets.getbyname("Feuille1")
v_2cellTest=v_2feuille.getCellRangeByName("B2")
v_2valueT=v_2CellTest.Value
v_2cellType=v_2CellTest.Type 'pour voir
v_2cellString=v_2CellTest.String
'========================
Select Case v_2valueT
Case 1
msgbox "La cellule contient un nombre"
Case 2
msgbox "La cellule contient du texte"
Case 0
msgbox "La cellule contient l'expression : " +""""+v_2CellTest.string+""""
End Select
End Sub

Fichier exemple
http://cjoint.com/?0KlaqNFmZDP

Lucien

Le 10/11/14 21:28, lutch a écrit :
Bonsoir,

je me suis piqué au jeu de trouver une réponse, pour m'exercer.

Le code ci-dessous est-il correct dans un cas analogue à celui de Marie-Jo ?

Sub lirecell
dim v_doc as object, v_feuille as object, v_cellTest as object, v_cellNum as object, v_valueT as variant, v_valueN as variant
v_doc=ThisComponent
v_feuille=v_doc.sheets.getbyname("Feuille1")
v_cellTest=v_feuille.getCellRangeByName("B2")
v_valueT=v_CellTest.Type
if v_valueT=1 then
msgbox "La cellule contient un nombre"
elseif v_valueT=2 then
msgbox "La cellule contient du texte"
else
v_valueT=v_cellTest.value 'ligne de contrôle de la variable
msgbox "La cellule ne contient rien"
end if
End Sub

Ne sachant pas encore coder les "Case" en LibreOffice Basic, la méthode est assez rustique.

Lucien

Le 10/11/14 18:56, Marie jo Libo a écrit :
Bonsoir,

Merci pour cette confirmation. Je vais donc voir où est le problème.
Pas dans la casse malheureusement ;-)
La récupération du .string me renvoie inlassablement 0 :-(

Marie-Jo

Le 10/11/2014 16:43, pierre-yves samyn a écrit :
Bonjour Marie-Jo

Si tu veux tester le texte affiché par une cellule calculée, c'est bien
la propriété string qu'il faut utiliser.

Si cela ne fonctionne pas dans ton cas c'est peut-être parce que
tu fais ce que tu écris :


Marie jo Libo wrote
Concrètement : Critere = Toto
Si cellule="toto" alors traitement
toto est différent de Toto

Tu peux par exemple convertir en minuscule de cette façon :

if lcase(maCelluleTest.string) = "toto" then

Cordialement
Pierre-Yves








-----
Aucun virus trouvé dans ce message.
Analyse effectuée par AVG - www.avg.fr
Version: 2015.0.5315 / Base de données virale: 4189/8549 - Date: 10/11/2014



--
Marie jo KOPP CASTINEL

Société OpenGo
http://www.opengo.fr

Soutenez la bureautique libre
http://www.lamouette.org

--
Envoyez un mail à users+unsubscribe@fr.libreoffice.org pour savoir comment vous désinscrire
Les archives de la liste sont disponibles à http://listarchives.libreoffice.org/fr/users/
Tous les messages envoyés sur cette liste seront archivés publiquement et ne pourront pas être 
supprimés

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.