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 :

Quel est le remplaçant de InStr ? [LibreOffice][Tableur]


Sujet :

OpenOffice & LibreOffice

  1. #1
    Membre habitué Avatar de DenisHen
    Homme Profil pro
    Dessinateur / projeteur
    Inscrit en
    Novembre 2013
    Messages
    384
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Dessinateur / projeteur
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2013
    Messages : 384
    Points : 198
    Points
    198
    Par défaut Quel est le remplaçant de InStr ?
    Bonjour à la communauté.

    Voilà, je suis passé à Linux et LibreOffice 5.0.6.3. Je reprend donc toutes mes routines faites sous Excel en VBA, mais là, je tombe sur un os, impossible de trouvé quelque-chose qui remplacerait InStr... Pour l'instant, j'ai un dernier PC sous Windows 8 avec MSOffice sur lequel je fais mes "conversion"...

    Si quelqu'un a une astuce, un conseil ou une idée, je suis preneur...
    Windows 7, 8 et 10 / Debian / RaspBian / AutoCAD 3D 2023

    Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
    Davantage d'avantages, avantagent davantage (Bobby Lapointe).
    La connaissance s'accroît quand on la partage (Socrate).
    Tant va la cruche à l'eau que l'habit n'amasse pas mousse. (Moi)
    Un clavier azerty en vaut deux (developpez.net).

  2. #2
    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,
    la fonction InStr existe bien aussi sous LibreOffice ooobasic ( essayé sous UBUNTU LibreOffice 5.1.1.2) et fonctionne. Mets-tu une option particulière au début de ton code (du genre Option VbaSupport 1) ? Peux-tu nous montrer ton code ?

    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  3. #3
    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
    Salut,

    Je confirme ce que dit @jurassic pork la fonction InStr fonctionne de la même façon dans oBasic que dans VBA.

    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

  4. #4
    Membre habitué Avatar de DenisHen
    Homme Profil pro
    Dessinateur / projeteur
    Inscrit en
    Novembre 2013
    Messages
    384
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Dessinateur / projeteur
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2013
    Messages : 384
    Points : 198
    Points
    198
    Par défaut
    Bonjour à tous et merci pour vos réponses.

    Je n'ai rien trouvé dans l'aide de LibO sur InStr, c'est pour cela que je pensais qu'elle n'existait pas.

    Voici mon Code qui colore une cellule selon le code couleur (0 à 255) qu'elle contient. Elle fait référence à une feuille qui comporte toutes les couleurs :
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    Private Sub ChangeCouleur
        'Application.EnableEvents = False
        'Dim FCible As ThisComponent.getSheets, FSource As sheets, Lign As Integer
        Dim Couleur, r, g, b As Integer
        Dim oDoc as object
        Dim oFeuilles as Object    
        Dim FCible As object ' com.sun.star.sheet.
        Dim FSource As object 'com.sun.star.sheet.XSpreadsheet
        Dim Plage as object
     
        oDoc = ThisComponent
        oFeuilles = oDoc.Sheets
        'uneFeuille = lesFeuilles.getByName("Feuille1")
     
     
        FCible =oFeuilles.getByName("Calques")
        FSource = oFeuilles.getByName("CouleurRGB")
        Lign = 2
     
        Do While FCible.getCellByPosition(Lign, 1).getValue() <> ""
            If FCible.getCellByPosition(Lign, 1).getValue()<>FCible.getCellByPosition(Lign, 2).getValue() Then
                If InStr(Cells(Lign, 2), ",") = 0 Then
                    Couleur = FCible.Cells(Lign, 2).Value
                    If Couleur <= 0 Or Couleur > 255 Then Application.EnableEvents = True: Exit Sub
                    r = FSource.Cells(Couleur, 2)
                    g = FSource.Cells(Couleur, 3)
                    b = FSource.Cells(Couleur, 4)
                    FCible.Cells(Lign, 2).Interior.Color = RGB(r, g, b)
                    FCible.Cells(Lign, 3).Value = "&H" & Hex(FCible.Cells(Lign, 2).Interior.Color)
                Else
                    chaine$ = Cells(Lign, 2)
                    r = Left(chaine$, InStr(chaine$, ",") - 1)
                    chaine$ = Right(chaine$, Len(chaine$) - InStr(chaine$, ",")):
                    g = Left(chaine$, InStr(chaine$, ",") - 1)
                    chaine$ = Right(chaine$, Len(chaine$) - InStr(chaine$, ",")):
                    b = chaine$
                    FCible.Cells(Lign, 2).Interior.Color = RGB(r, g, b)
                End If
            End If
            Lign = Lign + 1
        Loop
    End Sub
    Le message s'arrête à la ligne 22 et est :
    Erreur d'exécution BASIC.
    Sous-procédure ou procédure de fonction non définie
    Encore merci à vous...

    PS : après relecture, c'est peut-être le Cells qui "déconne"... Non ?
    Windows 7, 8 et 10 / Debian / RaspBian / AutoCAD 3D 2023

    Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
    Davantage d'avantages, avantagent davantage (Bobby Lapointe).
    La connaissance s'accroît quand on la partage (Socrate).
    Tant va la cruche à l'eau que l'habit n'amasse pas mousse. (Moi)
    Un clavier azerty en vaut deux (developpez.net).

  5. #5
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 730
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 730
    Points : 15 132
    Points
    15 132
    Par défaut
    Citation Envoyé par DenHen Voir le message
    PS : après relecture, c'est peut-être le Cells qui "déconne"... Non ?
    Pitêtre pitêtre... Car en effet, sur ta ligne 22 comment le BASIC peut-il savoir si Cells se rapporte à FCible ou à FSource, mmmh ?
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  6. #6
    Membre habitué Avatar de DenisHen
    Homme Profil pro
    Dessinateur / projeteur
    Inscrit en
    Novembre 2013
    Messages
    384
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Dessinateur / projeteur
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2013
    Messages : 384
    Points : 198
    Points
    198
    Par défaut
    Effectivement, je suis en train de réécrire tout mon code...

    Merci encore à vous...
    Windows 7, 8 et 10 / Debian / RaspBian / AutoCAD 3D 2023

    Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
    Davantage d'avantages, avantagent davantage (Bobby Lapointe).
    La connaissance s'accroît quand on la partage (Socrate).
    Tant va la cruche à l'eau que l'habit n'amasse pas mousse. (Moi)
    Un clavier azerty en vaut deux (developpez.net).

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

Discussions similaires

  1. [EDI] Quel est l'éditeur que vous recommandez pour PHP ?
    Par Lana.Bauer dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 400
    Dernier message: 10/04/2018, 20h08
  2. Quel est le meilleur script PHP de portail (CMS) ?
    Par Lana.Bauer dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 187
    Dernier message: 18/10/2012, 07h45
  3. Réponses: 87
    Dernier message: 06/07/2011, 15h33
  4. Quel est cet objet attendu sur Instr ?
    Par Walterbelo dans le forum VBScript
    Réponses: 5
    Dernier message: 15/06/2009, 21h03
  5. Quel est le meilleur Routeur-adsl ???
    Par loki dans le forum Développement
    Réponses: 4
    Dernier message: 12/11/2002, 18h05

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