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

Macros et VBA Excel Discussion :

Logique de goto


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 23
    Points : 26
    Points
    26
    Par défaut Logique de goto
    Bonjour tout le monde,

    je dois reprendre un code vba blindé de Goto !

    J'ai besoin de vos lumières sur ce code :

    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
     
    Line1:
        If Cells(a, 1) <> "" Then
            If Cells(a, 18) = Base18 Then
                If Cells(a, 23) = "" Then
    ........ code
                    GoTo Line1
                Else
    ........ code
                    GoTo Line1 '---------------------------------------------------------------------------------------
                End If
            Else
                a = a + 1
                GoTo Line1 '-------------------------------------------------------------------------------------------
            End If
        End If
    Merci pour votre aide

  2. #2
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 661
    Points : 5 785
    Points
    5 785
    Par défaut
    A priori ça peut se simplifier avec une boucle while
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     do while  Cells(a, 1) <> "" 
            If Cells(a, 18) = Base18 then
                if Cells(a, 23) = "" then
    ........ code
                Else
    ........ code
                end if
            end if
    a = a + 1
    loop
    J'aimerais bien aller vivre en Théorie, car en Théorie tout se passe bien.

  3. #3
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par jerem488 Voir le message
    je dois reprendre un code vba blindé de Goto !
    Bon courage.

    J'ai besoin de vos lumières sur ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        Do until Cells(a, 1) = ""
            If Cells(a, 18) = Base18 Then
                If Cells(a, 23) = "" Then
    ........ code
                Else
    ........ code
                End If
            Else
                a = a + 1
            End If
        Loop
    Cependant, si je comprends bien, il s'agit de tourner tant qu'une cellule n'est pas vide.
    Dans ce cas, il serait plus propre de commencer par repérer la fin de liste avec une propriété End(xlDown) et faire une boucle For To de la première à la dernière ligne, en supprimant le premier niveau de If.

    Edit : Grillé par halaster08
    Ca m'apprendra à faire autre chose pendant que je réponds.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

Discussions similaires

  1. Pourquoi "goto" est déconseillé ?
    Par Melchisedec dans le forum Débuter
    Réponses: 20
    Dernier message: 30/05/2020, 16h24
  2. [DOS] goto inattendu
    Par isidore dans le forum Scripts/Batch
    Réponses: 6
    Dernier message: 26/11/2009, 00h06
  3. Evalutation d'expression logique/booleenne
    Par eesteban dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 16/06/2004, 14h58
  4. Port parallèle et ou logique
    Par declencher dans le forum Langage
    Réponses: 2
    Dernier message: 05/06/2004, 19h02
  5. Un lecteur logique caché!!!
    Par Cyberman dans le forum Composants
    Réponses: 3
    Dernier message: 05/10/2003, 23h16

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