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 :

Connaitre la longueur d une chaine


Sujet :

OpenOffice & LibreOffice

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 10
    Par défaut Connaitre la longueur d une chaine
    Bonjour
    Dans une page j ai cree une zone de texte
    Je dois savoir quand je rentre un caractère sir ma chaine ne fait pas plus de 17 caractères

    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
    Sub TestLongueur
    Dim MonDocument As Object, LesFeuilles As Object
    Dim MaFeuille As Object
    Dim reponse As String
    Dim LongChaine as Integer
    Dim NumSerie as Object
     
    MonDocument = ThisComponent
    LesFeuilles = MonDocument.Sheets
    MaFeuille = LesFeuilles.getByName("Feuille1")
    NumSerie = maFeuille.drawPage.Forms.GetByName("NumSerie")
     
    LongChaine = Len(MaFeuille.NumSerie.String)
    if Len(LongChaine) > 17 then
        reponse = MsgBox("Votre numéro de série a plus de 17 caractères. Recommencez", vbOKOnly, "Erreur", "", 0)
        NumSerie.String = ""
    End If
    End Sub
    Mais j ai a chaque fois des erreur
    Mon code n est surement pas bon mais je ne vois pas ou
    Merci de votre aide

  2. #2
    Membre émérite

    Homme Profil pro
    linux, pascal, HTML
    Inscrit en
    Mars 2002
    Messages
    649
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Belgique

    Informations professionnelles :
    Activité : linux, pascal, HTML
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2002
    Messages : 649
    Billets dans le blog
    1
    Par défaut une petite précision est nécessaire
    Bonjour,
    quand je lis ta question j'ai l'impression que que travailles dans writer mais si je regarde ton code en diagonale, j'y trouve des sheets qui font plutôt penser à Calc.
    En fait, j'ai l'impression qu'il s’agit d'un champ texte dans un formulaire sur une feuille d'un classeur !
    Pourrais-tu être un peu plus précis dans l'énoncé !

  3. #3
    Membre émérite

    Homme Profil pro
    linux, pascal, HTML
    Inscrit en
    Mars 2002
    Messages
    649
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Belgique

    Informations professionnelles :
    Activité : linux, pascal, HTML
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2002
    Messages : 649
    Billets dans le blog
    1
    Par défaut Un debut de solution
    En fait, il y a quelques problèmes de définitions d'objets
    Avec ce code au début, cela devrait aller mieux
    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
     
     Sub TestLongueur
            Dim MonDocument As Object, LesFeuilles As Object, monFormulaire As Object
            Dim MaFeuille As Object
            Dim reponse As String
            Dim LongChaine as Integer
            Dim NumSerie as Object
     
            MonDocument = ThisComponent
            LesFeuilles = MonDocument.Sheets
            MaFeuille = LesFeuilles.getByName("Feuille1")
            monFormulaire=MaFeuille.DrawPage.Forms.GetByIndex(0)
            NumSerie = monFormulaire.GetByName("NumSerie")
     
            LongChaine = Len(NumSerie.String)
    Ces deux lignes ne peuvent pas fonctionner
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    LongChaine = Len(MaFeuille.NumSerie.String)
    if Len(LongChaine) > 17 then
    Ce serait plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     LongChaine = Len(NumSerie.Text)
           
            if LongChaine > 17 then
    J'ai essayé string mais cela bloque et .Text fonctionne. Attention à une erreur de logique (distraction) dans le test

  4. #4
    Membre émérite

    Homme Profil pro
    linux, pascal, HTML
    Inscrit en
    Mars 2002
    Messages
    649
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Belgique

    Informations professionnelles :
    Activité : linux, pascal, HTML
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2002
    Messages : 649
    Billets dans le blog
    1
    Par défaut complément
    En regardant ce code, je me suis souvenu qu'on peut bloquer la longueur d'un champ à17 caractères maximum en jouant sur ses propriétés

  5. #5
    Membre émérite

    Homme Profil pro
    linux, pascal, HTML
    Inscrit en
    Mars 2002
    Messages
    649
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Belgique

    Informations professionnelles :
    Activité : linux, pascal, HTML
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2002
    Messages : 649
    Billets dans le blog
    1
    Par défaut Une solution !
    Bonjour ryan44x
    voila un code qui fonctionne !
    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
     
    Sub TestLongueur
            Dim MonDocument As Object, LesFeuilles As Object, monFormulaire As Object
            Dim MaFeuille As Object
            Dim reponse As String
            Dim LongChaine as Integer
            Dim NumSerie as Object
     
            MonDocument = ThisComponent
            LesFeuilles = MonDocument.Sheets
            MaFeuille = LesFeuilles.getByName("Feuille1")
            monFormulaire=MaFeuille.DrawPage.Forms.GetByIndex(0)
            NumSerie = monFormulaire.GetByName("NumSerie")
            LongChaine = Len(NumSerie.Text)
     
            if LongChaine > 17 then
            MsgBox("Votre numéro de série a plus de 17 caractères. Recommencez", vbOKOnly, "Erreur", "", 0)
        	NumSerie.Text = ""
    		End If
     
    End Sub
    remarque : cela fonctionne aussi avec le nom du formulaire( GetByName("formulaire") ) plutôt que l'index (GetByIndex(0))
    L'avantage de l'index,c'est que je ne dois pas connaitre le nom de ton formulaire !

    Bon amusement!

Discussions similaires

  1. connaitre la longueur d'une chaine
    Par befast dans le forum C++
    Réponses: 2
    Dernier message: 25/09/2007, 14h53
  2. Tester la longueur d'une chaine de caractères
    Par greg64 dans le forum IHM
    Réponses: 9
    Dernier message: 12/06/2006, 15h54
  3. longueur d'une chaine ...
    Par adrien954 dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/06/2005, 12h56
  4. [langage] longueur d'une chaine lue ds un fichier
    Par perlaud dans le forum Langage
    Réponses: 6
    Dernier message: 30/06/2004, 22h36
  5. Réponses: 2
    Dernier message: 30/03/2004, 11h31

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