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 :

Afficher un message sur une feuille en fonction du contenu d'une cellule d'une autre feuille.


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur validation
    Inscrit en
    Novembre 2019
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Novembre 2019
    Messages : 29
    Par défaut Afficher un message sur une feuille en fonction du contenu d'une cellule d'une autre feuille.
    Bonjour,

    J'ai une feuille 1 dans laquelle j'ai une liste d'élèves notés absent ou présent.
    J'utilise dans ma feuille 2 une macro pour importer la liste des élèves absents de la feuille 1 dans le tableau de ma feuille 2.

    J'aimerais ensuite, dans ma macro, marquer le message suivant automatiquement à côté du prénom de l'elève absent :
    "en attente du justificatif d'absence"

    Pour cela je voulais utiliser un équivalent de la RechercheV en VBA sur le critère "absent" : Que, si la recherchev trouve absent dans la colonne 2 de la feuille 1, qu'il écrive le message "en attente du justificatif d'absence" dans la colonne 2 de la feuille 2.

    La dernière difficulté serait que si jamais il n'y a pas d'élève absent (donc si la recherchev ne trouve pas de champs absent), qu'il écrive un message en colonne 1 "aucun éleve absent".

    Comme je suis débutant en VBA je ne maîtrise pas trop l'utilisation des IF et des IFNOT.

    Le code VBA de ma macro actuel est le suivant :

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    Sub Test()
    '
    ' Test Macro
    '
    Application.ScreenUpdating = False
    Dim sh As Worksheet
     On Error Resume Next
    For Each sh In Sheets
        sh.ShowAllData
    Next sh
     
      Dim derlig As Long
      Dim derlig2 As Long
      Dim F1 As Worksheet
      Dim F2 As Worksheet
      Set F1 = Sheets("Feuil1")
      Set F2 = Sheets("Feuil2")
    derlig = F2.Range("A" & Rows.Count).End(xlUp).Row
    derlig2 = F1.Range("A" & Rows.Count).End(xlUp).Row
      F2.Range("A2:A" & derlig).ClearContents
    F2.Range("A2") = F1.Range("A1")
    'F2.Range("B2") = F1.Range("D1")
    F1.Range("A2", "C" & F1.Range("B" & F1.Rows.Count).End(xlUp).Row).AutoFilter Field:=2, Criteria1:="=Absent", Operator:=xlOr
    F1.Range("A2:A" & derlig2).SpecialCells(xlCellTypeVisible).Copy Destination:=F2.Range("A3")
     
    Application.ScreenUpdating = True
    '
    End Sub
    Quelqu'un aurait-il une idée de comment faire ?

    Merci d'avance pour vos retours.

    PS : Vous trouverez le fichier de travail en pièce jointe.
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Bonjour et bienvenue sur ce Forum,

    Pas d'ouverture de pièce jointe en début de discussion.

    A mon sens, et si j'ai bien compris, VBA, ici, n'est pas nécessaire.

    Une fonction RechercheV, à défaut une combinaison des fonctions Index et Equiv, d'une part
    Un fonction NB.SI, d'autre part

    devraient pouvoir "faire l'affaire".

    2 remarques
    - Pour reporter un code dans une discussion, utiliser les balises #
    - Pour effacer les filtres d'une feuille de travail
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    With Worksheets("lawks")
     If .Filtermode = True Then .ShowAlldata
    En With
    A plus tard.

  3. #3
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Bonjour,

    Merci d'éviter les doublons !
    https://www.developpez.net/forums/d2.../#post11238630

  4. #4
    Membre Expert Avatar de Transitoire
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2017
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 733
    Par défaut
    Bonjour, ci-joint je vous propose un dossier semblant comporter les caractéristiques demandés.
    Cordialement
    ClasseurEleveTest.xlsm

  5. #5
    Membre très actif
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 364
    Par défaut
    Bonjour …

    Pourquoi répéter le même message ?
    Autre proposition en profitant des Tableaux structurés (hélas peu souvent utilisés) et de MFC
    Nom : Tableau Filtré.jpg
Affichages : 280
Taille : 140,7 Ko
    Fichiers attachés Fichiers attachés

  6. #6
    Membre Expert Avatar de Transitoire
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2017
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 733
    Par défaut réponse #OrDonc
    Pourquoi répéter le même message ?
    Tout bète, j'avais fait le message en MsgBox puis j'ai vu qu'il voulait l'écrire en A3, ce que j'ai fait . Du coup j'ai laissé les deux, il choisira celui qu'il préfère. Qui peut le plus peut le moins
    Cordialement

  7. #7
    Membre averti
    Homme Profil pro
    Ingénieur validation
    Inscrit en
    Novembre 2019
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Novembre 2019
    Messages : 29
    Par défaut
    C'est super, j'ai réussi à faire ce que je voulais grâce à vous.

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

Discussions similaires

  1. Réponses: 16
    Dernier message: 21/11/2019, 12h56
  2. Afficher ma div sur une autre page
    Par Tayaress dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 08/06/2017, 16h22
  3. Afficher un message sur une boite de dialogue
    Par kamalkimo dans le forum Forms
    Réponses: 11
    Dernier message: 04/11/2012, 10h12
  4. Afficher un thème sur une autre page
    Par Chabanus dans le forum Langage
    Réponses: 5
    Dernier message: 21/11/2008, 15h58
  5. Réponses: 5
    Dernier message: 18/07/2006, 15h32

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