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

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Logistique
    Inscrit en
    mai 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Logistique

    Informations forums :
    Inscription : mai 2018
    Messages : 2
    Points : 1
    Points
    1

    Par défaut [vbs] sortir d'une boucle suite à une erreur

    Bonjour à tous,

    Celà va faire un moment que je n'ai pas programmé... J'utilise un simple script .vbs pour agir sur une application au travail afin d'automatiser certaines tâches.

    Je suis actuellement bloqué, je lance une exécution sur l'application qui me retourne un résultat sous forme de lignes dans un interface graphique.
    Je cherche à trouver le nombre de lignes que l'application me retourne, la solution que j'envisage et de parcourir chaque ligne jusqu'à ce que le script produits une erreur afin d'établir un compteur et de récupérer la valeur de celui-ci au moment de l'erreur.

    Voici un exemple très simplifié qui représente bien la chose :
    - j'aimerais réussir à sortir de la boucle for au moment de l'erreur et connaître le nombre d'indices de mon tableau.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Dim tableau(3) ' l'application m'a retourné 4 lignes
     
    For i = 0 to 19 ' je cherche à connaître le nombre de ligne
        MsgBox tableau(i)
    Next
    J'ai essayé ça, mais ça n'a pas l'air de fonctionner et de toute façon je viens de me rendre compte que je passe dans le If à chaque erreur donc la variable Compteur n'aura pas la bonne valeur... :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Dim tableau(3)
    Dim compteur
     
    For i = 0 to 19
        MsgBox tableau(i)
        On Error Resume Next
        If Err.Number <> 0 Then
             Compteur = i - 1
        End If
    Next
     
    MsgBox ("il y a "& Compteur &" lignes")
    Merci d'avance

  2. #2
    Rédacteur/Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    décembre 2004
    Messages
    4 628
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : décembre 2004
    Messages : 4 628
    Points : 10 193
    Points
    10 193

    Par défaut

    Salut marcelo44, bienvenue sur DVP

    Tu n'étais pas loin de la solution
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     Dim Msg
    For i = 0 to 19
        On Error Resume Next
        MsgBox tableau(i)
        If Err.Number <> 0 Then
             Compteur = i - 1
             Msg = "Indice maxi = " & Cstr(Compteur)
             Exit For
        End If
    Next
    If Msg <> "" Then
        MsgBox Msg
    End If
    Par contre tu peux obtenir l'indice maxi avec Ubound()
    ProgElecT
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Logistique
    Inscrit en
    mai 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Logistique

    Informations forums :
    Inscription : mai 2018
    Messages : 2
    Points : 1
    Points
    1

    Par défaut

    Salut,

    Désolé je pensais avoir répondu...

    Merci ça fonctionne parfaitement. Je ne peux pas utiliser Ubound car dans le cas réel je suis obligé de parcourir les lignes une par une jusqu'à provoquer une erreur (ligne absente) pour déterminer le nombre de réponses et par la suite remplir mon tableau.

    Encore merci

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

Discussions similaires

  1. Utilisation d'une boucle dans une boucle
    Par caramon _majere dans le forum Langage
    Réponses: 5
    Dernier message: 27/09/2014, 22h37
  2. Passer d'une boucle FOR à une boucle WHILE
    Par mohsenuss91 dans le forum Langage
    Réponses: 6
    Dernier message: 01/05/2011, 15h54
  3. [XL-2003] faire une boucle dans une boucle VBA
    Par the-geut dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/04/2010, 16h06
  4. [PHP 5.0] Manipulation XML une boucle dans une boucle
    Par lepotier dans le forum Syntaxe
    Réponses: 2
    Dernier message: 10/03/2010, 13h15
  5. Réponses: 4
    Dernier message: 30/09/2009, 15h37

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