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 :

Fermer les conditions IF VBA [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2016
    Messages : 54
    Points : 24
    Points
    24
    Par défaut Fermer les conditions IF VBA
    Bonjour,

    Existe t'il un moyen d'afficher un "menu déroulant" pour "fermer" chaque condition if ?
    Je fais un code assez long composé de pleiiiiin de condition et donc de boucle if. Pour éviter de me perdre j'aimerai "fermer" les if au fur et a mesure. Un peu comme sur NotePad ++

    Est-ce que c'est possible sur vba ?

    Merci d'avance,

  2. #2
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut
    Bonjour,

    s'il est question de la rédaction d'un code VBA, alors la réponse est tellement évidente !
    Il suffit lors de la création de la ligne If de créer de suite la ligne End If évitant ainsi un oubli …
    Idem pour tous les autres blocs d'instructions.
    Et évidemment si le code eut été indenté (décalage du texte via la touche de tabulation)
    cette question n'aurait pas eu lieu d'être car c'est alors juste visuel !
    Bref, avec juste un peu de bon sens …     Donc le VBE ne fait pas comme NotePad++ …

    ___________________________________________________________________________________________________________
    Je suis Paris, Egypte, Nigeria, New-York, Mogadicio, Barcelone, London, Manchester, Stockholm, Istanbul, Berlin, Nice, Bruxelles, Charlie, …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2016
    Messages : 54
    Points : 24
    Points
    24
    Par défaut
    C'est exactement ce que je fais mais je risque d'avoir 45-50 if imbriqués d'où ma question.

    C'était simplement pour mieux voir l’enchaînement de mes commentaires et l’enchaînement des boucles afin de vérifier que je n'ai rien oublié.

    Donc ce n'est pas possible?

  4. #4
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    50 If imbriqués ?

    Quand on en arrive à ce niveau d'imbrication, il est parfois possible de revoir la conception du code pour l'éviter .... mais pas toujours je te l'accord (quoique...)

  5. #5
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut
    Citation Envoyé par Eskalibur Voir le message
    Donc ce n'est pas possible?
    Non, le VBE a au moins vingt ans …     Mais tu peux coller depuis NotePad++ !

    A la place de If voir aussi l'instruction   Select Case   …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  6. #6
    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 Eskalibur Voir le message
    Un peu comme sur NotePad ++
    Rien ne t'interdit d'écrire ton code avec NotePad++ et de le transférer ensuite dans VBE.
    Perso, je procédais comme ça (avec Edit Plus) avec un autre langage qui avait un éditeur beaucoup plus "basique" que VBE.

    D'ailleurs, Notepad++ propose les éléments de VB en standard.

    PS : 45-50 If imbriqués, ça me semble énorme. Tu es sûr qu'il n'y a pas possibilité de simplifier (ElseIf, Select Case, boucles, sous-routines, etc.) ?
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  7. #7
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour
    C'était simplement pour mieux voir l’enchaînement de mes commentaires et l’enchaînement des boucles afin de vérifier que je n'ai rien oublié.
    Je rejoins la réponse que t'a faite plus haut Marc-L, que je salue, au sujet de l'indentation.
    Une indentation orthodoxe permet de voir immédiatement ce que l'on aurait pu oublier (qu'il s'agisse d'un "End If", d'un "Next", d'un "End With", d'un "Wend", d'un "Loop", d'un "End Select", etc ...).
    Je n'ai personnellement jamais eu besoin d'autre chose pour y voir parfaitement clair.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    imbriquer 50 if au niveau maintenance c'est utopiste!

    factorise avec des méthodes et avec un peut de chance ton code dispose de quelques redondances que la factorisation supprimerait!

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2016
    Messages : 54
    Points : 24
    Points
    24
    Par défaut
    D'accord merci à toutes vos réponses.

    Je vais regarder si je ne dois pas pouvoir simplifier le truc.

    Mon code est un peu comme un organigramme, on part de 2-3 trucs et toutes les sous parties ont d'autres conditions afin d'obtenir un résultat final. D'où le truc galère. Je peux surement faire plus simple mais étant un amateur je fais un code assez dégueu et basique (je pense)

    En tout cas merci !

  10. #10
    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
    Pour moi, 50 niveaux de If qui ne soit pas simplifiable, c'est véritablement improbable.
    Mais n'en sachant pas plus, difficile de t'orienter vers une méthode pour obtenir cette simplification.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

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

Discussions similaires

  1. [VBA Excel] Aide concernant les conditions
    Par Kivabien dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 15/11/2016, 14h00
  2. [VBA-E] Empécher l'ouverture ou fermer les classeur de macros personnalisé
    Par LitteulKevin dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 07/03/2007, 20h37
  3. [VBA-E]fermer les fichier exel en cour lors d'une ouverture
    Par fournier dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 22/02/2006, 09h54
  4. évaluer une chaîne comme critère de condition en VBA (excel)
    Par fabien.toune dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 01/09/2005, 14h50
  5. enlever la croi pour fermer un formulaire en vba?
    Par xtaze dans le forum Access
    Réponses: 6
    Dernier message: 15/06/2005, 17h16

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