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 :

Fonction "Si' en VBA [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Femme Profil pro
    Inscrit en
    Août 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : Août 2013
    Messages : 9
    Par défaut Fonction "Si' en VBA
    Bonjour,

    Voici mon code VBA

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub caseacocher()
    If Range("b153") = True Then
      Range("b465") = "coex" 'si c'est une expression à intégrer
      Range("b162").Select ' pourquoi faire
    Else
      Range("B465").ClearContents
    End If
    End Sub
    Lorsque la case est cochée, "VRAI" s'affiche cellule B153, l'expression COEX s'intègre donc. (Merci à Dom )

    Je voudrais maintenant faire une fonction "si" en macro, faire en sorte que l'expression COEX s'affiche à partir du moment ou la cellule B159 n'est pas vide. Ca doit vous semble enfantin mais j'ai tout essayé ca ne marche pas...

    Merci d'avance pour votre aide

  2. #2
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour Elodie (l'ardennaise ?), le forum

    Il faut essayer de comprendre le code que je t'ai envoyé, ce que tu demande n'exige absolument pas du VBA, une simple formule dans la cellule concernée suffit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(B159<>"";"COEX";"")
    et si tu insistes, histoire d'apprendre, l'équivalent de "Si" en VBA
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub exemple_si()
    If Range("B159") <> "" Then
      Range("B465") = "coex"
    End If
    End Sub
    Mais il est temps que tu te prennes par la main
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  3. #3
    Membre habitué
    Femme Profil pro
    Inscrit en
    Août 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : Août 2013
    Messages : 9
    Par défaut
    Merci Dom
    Mais ca ne marche pas, quand je remplie la cellule B159 ça ne remplie pas la cellule B465 automatiquement

    Je sais que je pourrais le faire avec la fonction SI, mon problème étant que c'est la cellule B465 doit rester vide, je ne peux pas entrer de formule dedans.


    J'ai une autre question .. Qui sera ma dernière pour le moment (normalement ^^)
    Y a-t-il un moyen pour recopier cette formule dans les colonnes B à P ? Sans faire 15 formules ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Sub coex2()
     
    If Range("C153") = True Then
      Range("C465") = "COEX" 'si c'est une expression à intégrer
      Range("C164") = Range("b159")
      Range("C162").Select ' pourquoi faire
    Else
      Range("C465").ClearContents
      Range("C164").ClearContents
     
    End If
    End Sub

  4. #4
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Avant de répondre, il faut être sur de ce que tu veux, tu parlais au départ de "B153", ensuite de "B159"

    Y a-t-il un moyen pour recopier cette formule dans les colonnes B à P ?
    En Vba, ce n'est pas une formule mais une procédure, prendre en compte les colonnes B à P, un peu plus d'explication serait utile.
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  5. #5
    Membre habitué
    Femme Profil pro
    Inscrit en
    Août 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : Août 2013
    Messages : 9
    Par défaut
    Dom,

    Je t'ai mis une vue de mon fichier.

    Quand je remplie et coche la case en B159, la référence se copie dans B164 et le fournisseur COEX se remplie automatiquement. Mais j'utilise la case B153 parce qu'elle est liée à la case à cocher via le format de contrôle .

    J'hésitais à mettre une case à cocher, j'ai voulu essayer d'effectuer cette macro directement, dès que l'on remplie la case B159, sans cocher la case à côté.

    J'ai besoin que cette macro fonction dans chaque colonne. Existe-t-il une procédure (j'apprends ^^ ) qui le permet ?

    J'espère être compréhensible
    Images attachées Images attachées  

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 02/08/2025, 13h21
  2. [Fonction] Quote et guillemet dans un textarea
    Par ddelec24 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 11/03/2007, 15h51
  3. Fonction Quoted printable qui ne fonctionne pas.
    Par leCcsympas dans le forum C
    Réponses: 3
    Dernier message: 13/01/2007, 18h54
  4. Inverse de la fonction QUOTE() ?
    Par __fabrice dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 13/07/2006, 10h39

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