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 :

Doc sur if then else imbriquée [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2008
    Messages
    704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2008
    Messages : 704
    Par défaut Doc sur if then else imbriquée
    Bonsoir a toutes et tous, forum bonsoir,


    Voila je suis a la recherche SVP de quelques exemples de programmation en vba excel 2007 sur les if then else imbriquée

    je n'ai rien trouver d'exploitable ou de compréhensible pour mon faible niveau

    Merci a vous et de votre temps, bonne soirée bonnes vacances aux juilletistes

    Raymond

  2. #2
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    salut raymond le forum regarde dans les archives du forum pas mal d'exemples
    if else then tu as aussi ElseIf plusieurs conditions. aussi regarde du côte de select case eventuellement IIf

    autrement dit nous ce que tu veus faire!!! cela sera plus simple.

  3. #3
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2008
    Messages
    704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2008
    Messages : 704
    Par défaut
    Bonsoir Laetitia, forum

    Merci pour la réponse j'ai regarder la ou tu me conseilles pour un test ca va mais apres ca se complique.

    je voulais rajouter des messages au code que tu m'a fait hier, j'ai chercher d'abord comment faire et j'ai modifier mais ca ne va pas comme je veux.

    j'apprends aussi par la meme occasion

    merci a toi tres bonne soirée

    voici un bout de code qui marche pas du feu de zeus
    les messages restent afficher ou s'efface trop vite

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    With Target
    Dim Lig: Lig = .Row
     
    If .Column = 5 And Cells(Lig, 1) = "" And Cells(Lig, 2) = "" And Cells(Lig, 3) = "" And _
        Cells(Lig, 4) = "" Then [F28] = "Autorisé" Else [F28] = "interdit": [F28] = ""
     
     
    If Not Application.Intersect(Target, [H2:H27]) Is Nothing Then
    If .Offset(0, -1) <> "" Then [H28] = "Interdit": Sleep 1000: .Offset(0, -1).Activate _
        Else [H28] = "Autorisé": [H28] = ""
    End If
     
    End With
    Raymond

  4. #4
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Bonjour,
    Ton code me fait penser a ceux de laetitia qui sont toujours très dense. IDéale quand ton maitrise bien. Pas évident quand on débute. Essaye de l'ecrir sur plusieurs ligne, ca te permettra également d'utilisé le mode pas a pas plus facilement

    Pour la première boucle
    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
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim Lig as long 'c'est bien de préciser le type ca évite de n'avoir que des variant
     
    With Target
     
     Lig = .Row
     
    If .Column = 5 And Cells(Lig, 1) = "" And Cells(Lig, 2) = "" And Cells(Lig, 3) = "" And  Cells(Lig, 4) = "" Then 
       [F28] = "Autorisé" 
    Else 
       [F28] = "interdit"
     
    [F28] = "" 'la tu efface directement ce que tu viend d'ecrir c'est toi qui voit
    'mais a mon avis ton souci viens de la ;)
    end if
    Tu as l'équivalent dans la deuxième boucle

  5. #5
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2008
    Messages
    704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2008
    Messages : 704
    Par défaut
    Bonjour Krovax bonjour forum

    Merci beaucoup pour les conseils, j'ai essayer en faisant comme ci dessous, ca marche
    SAUF que "Interdit" ne s'efface pas lorsque je ne suis plus dans les conditions.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim Lig As Long
    With Target
    Lig = .Row
    If .Column = 5 And Cells(Lig, 1) = "" And Cells(Lig, 2) = "" And Cells(Lig, 3) = "" And _
                      Cells(Lig, 4) = "" Then
        [F28] = "Retrait autorisé"
    Else
        [F28] = "Interdit"
    End If
     
    End With
    End Sub

    Bonne après midi a toi et merci

    Raymond

  6. #6
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Oui il ne va pas s'effacer tu dit a ton programme d'écrire quelque chose dans une cellule tu ne lui dit pas de l'effacer par la suite.
    Mais meme si a la fin de ta boucle tu met
    [F28]=""
    pour effacer.
    Le code va se dérouler si rapidement que tu n'auras absolument pas le temps de le lire.
    Je pense que tu devrais essayer de voir pour un évènement qui va effacer la cellule. (un bouton reset, le changement de sélection/clique sur une cellule, la modification de sélection,...)

    Tu pourrais mettre une temporisation pour que cela s'affiche X secondes mais c'est pas évident a mettre en place si tu veux que l'utilisateur puisse quand même avoir accès au fichier (mais c'est faisable).

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

Discussions similaires

  1. [XL-2010] Problème sur la fonction IF THEN ELSE
    Par ValerieH34 dans le forum Excel
    Réponses: 2
    Dernier message: 18/05/2015, 16h22
  2. Boucle IF/THEN/ELSE sur sas
    Par infos pour les nuls dans le forum SAS Base
    Réponses: 2
    Dernier message: 04/08/2010, 14h44
  3. [OpenOffice][Tableur] [Macros] Bug sur instructions "If Then Else" ?
    Par OOoBeginner dans le forum OpenOffice & LibreOffice
    Réponses: 2
    Dernier message: 28/04/2009, 15h06
  4. [c shell] if then else sur une meme ligne
    Par mhtrinh dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 15/11/2007, 16h31
  5. Equivalent "Select Case when then else end" sur Paradoxe
    Par Seuh.m dans le forum Bases de données
    Réponses: 4
    Dernier message: 29/06/2006, 08h23

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