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 :

Inhiber une ligne de code sous condition


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Polygos
    Homme Profil pro
    Ma petite entreprise
    Inscrit en
    Avril 2016
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ma petite entreprise
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2016
    Messages : 190
    Par défaut Inhiber une ligne de code sous condition
    Bonjour
    l'idée est simple.
    a cause de la structure de boucles if imbriquées assez complexes, je voudrais EVITER une boucle IF qui décide si oui on non on fait l'opération et la remplacer un inhibiteur qui prend sa valeur dès le départ du code comme un paramètre

    Je m'explique:
    Je crée un fichier pour transférer de ma base de données des données produits prises dans ws1, en voici trois lignes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    'Colonne Nom du produit K = 11
        ws2.Cells(j, 11) = ws1.Cells(i, 40)
     
    'Colonne Description L = 12 
        ws2.Cells(j, 12) = "<p>" & ws1.Cells(i, 43) & "</p>"
     
    'Colonne Meta keywords M = 13
        ws2.Cells(j, 13) = ws1.Cells(i, 64)
    Mais je veux poser une question au début du code, pour savoir si la description est à mettre à jour; la réponse à cette question pourrait valider un paramètre du style p, entier, p = 1 ou 0 selon que l'on veut ou pas, de sorte à neutraliser la ligne comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'Colonne Description L = 12 
    p*ws2.Cells(j, 12) = ("<p>" & ws1.Cells(i, 43) & "</p>")*p
    Ecrit comme ça c'est grossier, j'en convient, mais y aurait il une astuce pour éviter de boucler sur p uniquement pour cette ligne ?

    sinon je me cogne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    'Colonne Description L = 12 
    if p = 1 then
    ws2.Cells(j, 12) = "<p>" & ws1.Cells(i, 43) & "</p>"
    else
    end if
    Ensuite, pour aller un peu plus loin, j'ai en fait deux cas de figure pour cette description,
    => elle est exécutée
    => elle n'est pas exécutée
    => elle est exécutée avec une autre valeur de cellule source, 37 au lieu de 43:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ws2.Cells(j, 12) = "<p>" & ws1.Cells(i, 37) & "</p>
    Je suis sûr que vous allez avoir une idée géniale !

  2. #2
    Expert éminent 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
    Par défaut
    Citation Envoyé par Polygos Voir le message
    sinon je me cogne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    'Colonne Description L = 12 
    if p = 1 then
    ws2.Cells(j, 12) = "<p>" & ws1.Cells(i, 43) & "</p>"
    else
    end if
    Le Else n'est pas obligatoire s'il n'engendre pas d'action.
    De plus, un If avec une seule instruction peut s'écrire sur une seule ligne de code.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if p = 1 then ws2.Cells(j, 12) = "<p>" & ws1.Cells(i, 43) & "</p>"
    Ensuite, pour aller un peu plus loin, j'ai en fait deux cas de figure pour cette description,
    => elle est exécutée
    => elle n'est pas exécutée
    => elle est exécutée avec une autre valeur de cellule source, 37 au lieu de 43:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ws2.Cells(j, 12) = "<p>" & ws1.Cells(i, 37) & "</p>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if p <> 0 then ws2.Cells(j, 12) = "<p>" & ws1.Cells(i, IIf(p = 1, 43, 37)) & "</p>"

Discussions similaires

  1. Réponses: 0
    Dernier message: 17/05/2019, 12h15
  2. [LibreOffice][Tableur] colorer une forme dessin ligne a mainlevee sous condition
    Par bobstgely dans le forum OpenOffice & LibreOffice
    Réponses: 1
    Dernier message: 25/04/2016, 23h27
  3. Réponses: 1
    Dernier message: 30/08/2010, 09h20
  4. Combien de condition "And" peut on mettre dans une ligne de code
    Par MichaSarah dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 06/04/2010, 15h39
  5. [Debutant(e)]ligne de code sous eclipse
    Par skywalker3 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 05/01/2005, 17h37

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