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 :

VBA : If contient Then ..


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
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2018
    Messages : 30
    Par défaut VBA : If contient Then ..
    Bonjour la communautée,

    Je suis à la recherche d'une personne qui peut m'aider sur les macros VBA.
    En effet, j'aimerai que ma macro fasse les étapes suivantes :
    1) Regarder dans la colonne "J" si il y a : "Temps partiel de droit au profit des travailleurs handicapés"
    2) Si oui, renommé les cellules par "TP de droit"

    J'ai essayé le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If UCase(Columns("J:J")) Like "*Temps partiel de droit au profit des travailleurs handicapés*" Then ActiveCell.FormulaR1C1 = "TP de droit"
    Je pense qu'il doit y avoir quelques erreur dans mon code car j'ai pioché un peu partout sur internet des actions similaires à la mienne.

    Merci beaucoup pour votre aide !

    Cordialement.

  2. #2
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Bonjour Waramere bonjour le forum,

    Peut-être comme ça :

    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
    Sub Macro1()
    Dim O As Worksheet 'déclare la variable O (onglet)
    Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
    Dim PL As Range 'déclare la variable PL (PLage)
    Dim C As Range 'déclare la variable C (Cellule)
     
    Application.ScreenUpdating = False 'masque les rafraîchissements d'écran
    Set O = Worksheets("Feuil1") 'définit l'onglet O (à adapter à ton cas)
    DL = O.Cells(Application.Rows.Count, "J").End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne J de l'onglet O
    Set PL = O.Range("J1:J" & DL) 'définit la plage PL
    For Each C In PL 'boucle sur toutes les cellules C de la plage PL
        'si la valeur de la cellule C em majuscule vaut "TEMPS PARTIEL DE DROIT AU PROFIT DES TRAVAILLEURS HANDICAPÉS", redéfinit la valeur avec "TP de droit"
        If UCase(C.Value) = "TEMPS PARTIEL DE DROIT AU PROFIT DES TRAVAILLEURS HANDICAPÉS" Then C.Value = "TP de droit"
    Next C 'prochaine cellule de la boucle
    Application.ScreenUpdating = True 'affiche les rafraîchissements d'écran
    End Sub

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2018
    Messages : 30
    Par défaut
    Bonjour Thautheme,

    Merci beaucoup pour le temps que tu as consacré à mon code. Tout marche parfaitement, c'est génial.
    J'aimerai rajouter d'autres critères de temps partiels tel que : "Temps partiel de droit pour soins à conjoint ou enfant ou ascendant" --> TP de droit

    Je suppose donc que je peux rajouter une ligne après celle la :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       If UCase(C.Value) = "TEMPS PARTIEL DE DROIT AU PROFIT DES TRAVAILLEURS HANDICAPÉS" Then C.Value = "TP de droit"
    Je rajoute :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       If UCase(C.Value) = "Temps partiel de droit pour soins à conjoint ou enfant ou ascendant" Then C.Value = "TP de droit"
    Merci encore,

    Cordialement.

  4. #4
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Re,

    Puisque tu utilises Ucase (qui convertit en majuscule), il faut que le texte soit en majuscule :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If UCase(C.Value) = "TEMPS PARTIEL DE DROIT POUR SOINS À CONJOINT OU ENFANT OU ASCENDANT" Then C.Value = "TP de droit"

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2018
    Messages : 30
    Par défaut
    J'ai modifier le code en rajoutant tout les différents temps partiel, mais juste le premier s'exécute...

    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
    Sub Tpdroit()
    Dim O As Worksheet 'déclare la variable O (onglet)
    Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
    Dim PL As Range 'déclare la variable PL (PLage)
    Dim C As Range 'déclare la variable C (Cellule)
     
    Application.ScreenUpdating = False 'masque les rafraîchissements d'écran
    Set O = Worksheets("Feuil1") 'définit l'onglet O (à adapter à ton cas)
    DL = O.Cells(Application.Rows.Count, "J").End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne J de l'onglet O
    Set PL = O.Range("J2:J" & DL) 'définit la plage PL
    For Each C In PL 'boucle sur toutes les cellules C de la plage PL
        'si la valeur de la cellule C em majuscule vaut "TEMPS PARTIEL DE DROIT AU PROFIT DES TRAVAILLEURS HANDICAPÉS", redéfinit la valeur avec "TP de droit"
        If UCase(C.Value) = "TEMPS PARTIEL DE DROIT AU PROFIT DES TRAVAILLEURS HANDICAPÉS" Then C.Value = "TP de droit"
        If UCase(C.Value) = "TEMPS PARTIEL DE DROIT POUR SOINS À CONJOINT OU ENFANT OU ASCENDANT" Then C.Value = "TP de droit"
        If UCase(C.Value) = "TEMPS PARTIEL DE DROIT A L'OCCASION D'UNE NAISSANCE OU D'UNE ADOPTION" Then C.Value = "TP de droit"
        If UCase(C.Value) = "TEMPS PARTIEL POUR RAISON THERAPEUTIQUE APRES CMO OU CLM OU CLD" Then C.Value = "TP de droit"
        If UCase(C.Value) = "TEMPS PARTIEL DE DROIT A L'OCCASION D'UNE NAISSANCE OU D'UNE ADOPTION (sur TNC)" Then C.Value = "TP de droit"
    Next C 'prochaine cellule de la boucle
    Application.ScreenUpdating = True 'affiche les rafraîchissements d'écran
     
    End Sub

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2018
    Messages : 30
    Par défaut
    Autant pour moi, excel est très nerveu quand on oublie les accents

    Merci beaucoup !

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

Discussions similaires

  1. Requete VBA pour "CONTIENT"
    Par fleptche dans le forum Access
    Réponses: 8
    Dernier message: 01/06/2016, 07h48
  2. [XL-2010] VBA fonction if .. then avec activesheet
    Par 419 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 24/02/2016, 08h59
  3. [XL-2007] Colorer cellule en VBA qui contient une mise en forme conditionnelle
    Par Free94 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/11/2015, 17h01
  4. Réponses: 2
    Dernier message: 19/05/2006, 18h42
  5. [VBA-E]Créer une feuille qui contient du code
    Par Elstak dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 04/04/2006, 15h58

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