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 - Critères sur 2 cellules différentes [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2019
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2019
    Messages : 27
    Par défaut VBA - Critères sur 2 cellules différentes
    Bonjour le forum,

    J'ai besoin d'aide pour le soucis suivant:

    J'ai une base de données avec 3 colonnes:
    * en A, un indicateur faisant mention de "Yes" ou "No"
    * en B, une information diverse, peu importante ici
    * en C, une date

    Je suis un train de créer un userform ou l'utilisateur doit saisir une date dans une textbox.
    Si la date rentrée dans la base de donnée est inférieure à la date saisie dans la textbox, alors la cellule dans la colonne A devient "Too Old" avec une mention derrière
    * Si la cellule de la colonne A était en YES, elle devient "Too-Old-Yes"
    * Si elle était en NO, elle devient "Too-Old-No"

    Voilà, je ne sais pas si c'est clair!
    J'ai essayé le code suivant, mais ça ne marche pas
    Je n'arrive qu'à imposer le critère sur un seul champ.


    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
    Dim Datedocument As Date
    Dim plage As Range
    Dim plage2 As Range
    Datedocument = TextBox1.Value
     
    If TextBox1 = "" Then
        MsgBox "Filled the case please"
        Else
     
        With Sheets("Test")
        Dernligne = .Range("C" & Rows.Count).End(xlUp).Row
        Set plage = .Range("C2:C" & Dernligne)
        Set plage2 = .Range("A2:C" & Dernligne)
     
        For Each Cell In plage2
            If Cell.Value = "Yes" Then
                For Each Cell In plage
                    If Cell.Value <= Datedocument Then
                    .Cell(Cell.Row, 1).Value = "too Old-Yes"
                    End If
                Next Cell
            End If
        Next Cell
    End If
    Merci de votre aide!

  2. #2
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2019
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2019
    Messages : 27
    Par défaut
    En attendant, j'ai developpé cette solution.
    Son gros défaut, c'est qu'elle ne marche qu'une fois

    donc si quelqu'un sait comment faire, je suis preneuse!

    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
    Dim Datedocument As Date
    Dim plage As Range
    Dim plage2 As Range
    Datedocument = TextBox1.Value
     
    If TextBox1 = "" Then
        MsgBox "Filled the case please"
        Else
     
        With Sheets("Test")
        Dernligne = .Range("C" & Rows.Count).End(xlUp).Row
        Set plage = .Range("C2:C" & Dernligne)
     
        For Each Cell In plage
            If Cell.Value <= Datedocument Then
            .Cells(Cell.Row, 1).Value = "Too Old - " & .Cells(Cell.Row, 1).Value
            End If
        Next Cell
        End With
    End If
     
    End Sub

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2019
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2019
    Messages : 27
    Par défaut
    Probablement pas l'idéal, mais ça a le mérite de fonctionner sans faire de mauvaise chaîne de caractères.

    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
    29
    Dim Datedocument As Date
    Dim plage As Range
    Dim plage2 As Range
     
    Datedocument = TextBox1.Value
     
    If TextBox1 = "" Then
        MsgBox "Filled the case please"
        Else
     
        With Sheets("Test")
        Dernligne = .Range("C" & Rows.Count).End(xlUp).Row
        Set plage = .Range("C2:C" & Dernligne)
        Set plage2 = .Range("A2:C" & Dernligne)
     
        For Each Cell In plage
            If Cell.Value <= Datedocument Then
                .Cells(Cell.Row, 1).Value = "Too Old - " & .Cells(Cell.Row, 1).Value
            End If
     
        Next Cell
        End With
     
    End If
     
    plage2.Replace "Too Old - Too Old - Yes", "Too Old - Yes"
    plage2.Replace "Too Old - Too Old - No", "Too Old - No"
     
    End Sub

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

Discussions similaires

  1. [XL-2013] Automatiser une fonction sur plusieurs cellules différentes
    Par enzo65 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/03/2019, 11h57
  2. Réponses: 2
    Dernier message: 23/11/2015, 16h55
  3. [AC-2010] Compter des enregistrements selon 2 critères sur 2 champs différents
    Par nlbmoi dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 03/07/2015, 10h10
  4. Réponses: 19
    Dernier message: 31/05/2010, 09h51
  5. [VBA-E]selectionner plusieurs cellules sur Excel
    Par delamarque dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 09/02/2006, 14h57

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