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 :

Critere selon donnée avec date


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Janvier 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Bâtiment

    Informations forums :
    Inscription : Janvier 2015
    Messages : 9
    Par défaut Critere selon donnée avec date
    Bonjour,
    j'aimerais votre aide, puis je faire ressortir des données communes avec plusieurs dates, sachant que celle ci sont variable (donné et dates)dans un tableau de 200 à plus de lignes
    merci pour votre aide

  2. #2
    Membre Expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 475
    Par défaut
    Bonjour,

    Oui c'est possible mais il faudra en dire plus pour une réponse plus précise.

  3. #3
    Membre régulier
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Janvier 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Bâtiment

    Informations forums :
    Inscription : Janvier 2015
    Messages : 9
    Par défaut critere selon donnée avec date
    bonjour, merci pour ta réponse
    voici un exemple de mon fichier de ce que je voudrais.
    je ne sais si je suis clair dans ma demande.
    Fichiers attachés Fichiers attachés

  4. #4
    Membre Expert

    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2012
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 564
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    A partir du moment où l'on veut manipuler des couleurs, il vaut certainement mieux utiliser du VBA mais voici en feuille 2 du classeur joint un essai sans code.
    Il s'appuie sur des MFC et un certain nombre de colonnes intermédiaires (B à F et O à U) masquées mais qu'il vaut mieux afficher pour comprendre la démarche.
    Il est important d'ordonner les règles de MFC et de cocher pour chaque règle la case Interrompre si vrai.
    Cordialement
    Claude
    Fichiers attachés Fichiers attachés

  5. #5
    Membre Expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 475
    Par défaut
    Bonjour,

    Voici également un essaie avec le code 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
    Sub Coloriage()
     
    Sheets("Essai").Activate
     
    c = 0
    Plage = ""
    For i = 1 To 40
    'Repérage des X dans la colonne A pour définir la plage
        If Cells(8 + i, 1).Value = "X" Then
            If c = 0 Then
            Plage = "C" & 8 + i & ":" & "H" & 8 + i
            Else
            Plage = Plage & "," & "C" & 8 + i & ":" & "H" & 8 + i
            End If
        c = c + 1
        End If
    Next i
    'Coloriage
    With Range(Plage)
        .FormatConditions.AddUniqueValues
        .FormatConditions(.FormatConditions.Count).SetFirstPriority
        'Utilisez xlUnique pour identifier les valeurs uniques
        .FormatConditions(1).DupeUnique = xlDuplicate
        .FormatConditions(1).Interior.Color = RGB(255, 0, 0)
    End With
     
    End Sub

  6. #6
    Membre régulier
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Janvier 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Bâtiment

    Informations forums :
    Inscription : Janvier 2015
    Messages : 9
    Par défaut critere selon donnée avec date
    Bonjour, je vous remercie pour vos réponse cependant je n'arrive pas à ouvrir le fichier associé QUESTVBA merci

  7. #7
    Membre Expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 475
    Par défaut
    Est-ce mieux ?
    Fichiers attachés Fichiers attachés

  8. #8
    Membre régulier
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Janvier 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Bâtiment

    Informations forums :
    Inscription : Janvier 2015
    Messages : 9
    Par défaut critere selon donnée avec date
    bonjour, si je change les croix ou je mets d'autres données la macro ne s'applique pas au changement. ou je ne sais faire merci pour votre aide

  9. #9
    Membre Expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 475
    Par défaut
    Bonjour,

    Dans mon fichier, je fonctionne avec :

    1. Il faut mettre une 'X' (et non une 'x'); attention à la majuscule
    2. Je tourne sur les lignes 9>48; il faut modifier si tu en as plus.

  10. #10
    Membre régulier
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Janvier 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Bâtiment

    Informations forums :
    Inscription : Janvier 2015
    Messages : 9
    Par défaut critere selon donnée avec date
    bonjour, j'ai chercher comment modifier mais je n'ai pas réussi
    je voudrais l'appliquer sur 200 lignes environ
    et rajouter une colonne qui me sert de repert en A mais je ne connais tres peu de chose en macro merci

  11. #11
    Membre Expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 475
    Par défaut
    Bonjour,

    J'ai un peu changer le code. Maintenant, il commence la boucle à la ligne 9 et continue jusqu'à la première ligne vide. Et il repère les 'X' et les 'x'.

    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
    Sub Coloriage()
     
    Sheets("Essai").Activate
    c = 0
    li = 9
    Plage = ""
     
        Do
            'Repérage des 'X' et 'x' dans la colonne A pour définir la plage
            If Cells(li, 1).Value = "X" Or Cells(li, 1).Value = "x" Then
                If c = 0 Then
                    Plage = "C" & li & ":" & "H" & li
                Else
                    Plage = Plage & "," & "C" & li & ":" & "H" & li
                End If
            c = c + 1
            End If
        li = li + 1
        Loop Until Range("B" & li).Value = ""
     
    With Range(Plage)
        .FormatConditions.AddUniqueValues
        .FormatConditions(.FormatConditions.Count).SetFirstPriority
        'Utilisez xlUnique pour identifier les valeurs uniques
        .FormatConditions(1).DupeUnique = xlDuplicate
        .FormatConditions(1).Interior.Color = RGB(255, 0, 0)
    End With
     
    End Sub
    Fichiers attachés Fichiers attachés

  12. #12
    Invité
    Invité(e)
    Par défaut
    bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     If Ucase(Cells(li, 1).Value )= "X"  Then

  13. #13
    Membre régulier
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Janvier 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Bâtiment

    Informations forums :
    Inscription : Janvier 2015
    Messages : 9
    Par défaut critere selon donnée avec date
    bonjour, peut on mettre plusieur couleur au lieu du rouge pour la totalite afin de repere plus facilement quel numero va avec quel ligne, et pouvoir effacer si je modifie ma recherche, merci

  14. #14
    Membre Expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 475
    Par défaut
    Bon ben j'ai adapté la macro. Plusieurs souleurs, c'est bien si tu n'en as pas beaucoup sinon cela devient un arc en ciel pas très beau. Donc, la macro fait ceci:

    • Repérage des X et des x
    • Récupération des doublons et mise au vert
    • Mise dans la feuille de rapport les valeurs multiples et les adresses
    • Tri des valeurs



    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    Sub Coloriage()
     
    Sheets("Essai").Activate
    c = 0
    li = 9
    Plage = ""
     
        Do
            'Repérage des 'X' et 'x' dans la colonne A pour définir la plage
            If Cells(li, 1).Value = "X" Or Cells(li, 1).Value = "x" Then
                If c = 0 Then
                    Plage = "C" & li & ":" & "H" & li
                Else
                    Plage = Plage & "," & "C" & li & ":" & "H" & li
                End If
            c = c + 1
            End If
        li = li + 1
        Loop Until Range("B" & li).Value = ""
     
     
    '
    Dim mondico As Object, cc
      [C:H].Interior.ColorIndex = xlNone
      Set mondico = CreateObject("Scripting.Dictionary")
      For Each cc In Range(Plage)
         mondico.Item(cc.Value) = mondico.Item(cc.Value) + 1
      Next cc
      'coloriage en vert de tous les doublons
      For Each cc In Range(Plage)
        If mondico.Item(cc.Value) > 1 Then cc.Interior.ColorIndex = 4
      Next cc
     
     
    'Dans la feuille rapport, on indique les doublons et les adresses des cellules
    Sheets("Rapport").Range("a2:b" & Range("B" & Rows.Count).End(xlUp).Row).Clear
    ligne = 2
    For Each Cell In Sheets("Essai").Range(Plage)
    If Cell.Interior.Color = 65280 Then
        Sheets("Rapport").Cells(ligne, 1).Value = Cell.Value
        Sheets("Rapport").Cells(ligne, 2).Value = Cell.Address
        ligne = ligne + 1
    End If
    Next Cell
    'on trie par valeur croissante
    Sheets("Rapport").Activate
        Application.CutCopyMode = False
        ActiveWorkbook.Worksheets("Rapport").Sort.SortFields.Clear
        ActiveWorkbook.Worksheets("Rapport").Sort.SortFields.Add Key:=Range("A1"), _
            SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        With ActiveWorkbook.Worksheets("Rapport").Sort
            .SetRange Range("a2:b" & Range("B" & Rows.Count).End(xlUp).Row)
            .Header = xlNo
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
     
    End Sub
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Rech Multi critere marche pas avec date?
    Par Homer091 dans le forum IHM
    Réponses: 6
    Dernier message: 25/04/2008, 16h31
  2. Requête select des données avec un critère de date
    Par funboard dans le forum Oracle
    Réponses: 2
    Dernier message: 21/04/2008, 16h52
  3. Affichage d'un résultat selon requête dans formulaire avec date
    Par SMPGSARL dans le forum Requêtes et SQL.
    Réponses: 10
    Dernier message: 06/07/2006, 14h52
  4. Réponses: 4
    Dernier message: 09/05/2006, 08h55
  5. Recupérer une donnée avec un WHERE concernant la date
    Par benlasavate dans le forum Access
    Réponses: 1
    Dernier message: 23/01/2006, 08h18

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