Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/12/2011, 10h32   #1
Membre habitué
 
Homme christian
retraite
Inscription : avril 2010
Messages : 310
Détails du profil
Informations personnelles :
Nom : Homme christian
Âge : 56
Localisation : Espagne

Informations professionnelles :
Activité : retraite
Secteur : Industrie

Informations forums :
Inscription : avril 2010
Messages : 310
Points : 109
Points : 109
Par défaut Comparaison de Dates

Bonjour
J'ai un tableau de U3 a X67, et je souhaiterais si la differences entre les dates qui se trouvent dans les colonnes X et W
si X3 - W3 = 7 mettre la cellule U3 en jaune
si X3 - W3 = 14 mettre la cellule U3 en vert
si X3 - W3 = 21 mettre la cellule U3 en bleu clair
si X3 - W3 = 28 mettre la cellule U3 en gris.
et puis passer a la ligne suivante dans le tableau, jusqu'a la derniere ligne.

j'ai joint un fichier pour mieux comprendre
cris
Fichiers attachés
Type de fichier : rar test.rar (61,5 Ko, 2 affichages)
chris09300 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2011, 10h48   #2
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
Fais une Mise en forme conditionnelle.
en U3
MFC
Utiliser formule...
=X3-W3<=7 Choisir la couleur 1
=X3-W3<=14 Choisir la couleur 2
=X3-W3<=21 Choisir la couleur 3
=X3-W3<=28 Choisir la couleur 4
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 18/12/2011, 10h51   #3
Membre habitué
 
Homme christian
retraite
Inscription : avril 2010
Messages : 310
Détails du profil
Informations personnelles :
Nom : Homme christian
Âge : 56
Localisation : Espagne

Informations professionnelles :
Activité : retraite
Secteur : Industrie

Informations forums :
Inscription : avril 2010
Messages : 310
Points : 109
Points : 109
bonjour mercatog
avec cette methode je ne fait que sur les cellules X3 et W3
et non sur tout mon tableau
cris
chris09300 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2011, 10h52   #4
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
à l'aide du pinceau, tu copie la mise en forme jusqu'au bas
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 18/12/2011, 10h54   #5
Membre habitué
 
Homme christian
retraite
Inscription : avril 2010
Messages : 310
Détails du profil
Informations personnelles :
Nom : Homme christian
Âge : 56
Localisation : Espagne

Informations professionnelles :
Activité : retraite
Secteur : Industrie

Informations forums :
Inscription : avril 2010
Messages : 310
Points : 109
Points : 109
pas possible de passer par un code
chris09300 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2011, 11h06   #6
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
Et pourquoi tu veux absolument passer par un code?
Si tu mets ton MFC sur la colonne entière en changeant la formule comme ceci
Code :
=ET(X3-W3<=7;X3<>"";W3<>"")
Code :
=ET(X3-W3<=14;X3<>"";W3<>"")
....

Sinon, tu as une méthode, tu n'as qu'à utiliser l'enregistreur de macro
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 18/12/2011, 11h15   #7
Membre habitué
 
Homme christian
retraite
Inscription : avril 2010
Messages : 310
Détails du profil
Informations personnelles :
Nom : Homme christian
Âge : 56
Localisation : Espagne

Informations professionnelles :
Activité : retraite
Secteur : Industrie

Informations forums :
Inscription : avril 2010
Messages : 310
Points : 109
Points : 109
mais je souhaiterais faire de meme pour X4 - W4 X5 - W5 et cela dans tout le tableau.
c'est pour cela que je parlais de code, je pense qu'il faudrais une boucle,
c'est pour cela que j'ai joint un fichier
j'ai du mal avec les boucles , si tu as un exemple, je regarderais pour apprendre a decortiquer la methode
cris
Fichiers attachés
Type de fichier : rar test.rar (64,0 Ko, 0 affichages)
chris09300 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2011, 11h36   #8
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
Citation:
Envoyé par mercatog Voir le message
à l'aide du pinceau, tu copie la mise en forme jusqu'au bas
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 18/12/2011, 13h54   #9
Membre habitué
 
Homme christian
retraite
Inscription : avril 2010
Messages : 310
Détails du profil
Informations personnelles :
Nom : Homme christian
Âge : 56
Localisation : Espagne

Informations professionnelles :
Activité : retraite
Secteur : Industrie

Informations forums :
Inscription : avril 2010
Messages : 310
Points : 109
Points : 109
ok ca fonctionne
merci beaucoup
cordialement
cris

cela fonctionne bien avec la mise en forme conditionnelle, mais j'ai le probleme suivant:
et c'est pour cela que je souhaiterais passe par un code.
je voudrais me servir justement de ces cellules colorees pour alimenter un autre tableau a gauche dans le fichier joint, et avec la mise en forme conditionnelle ca marche pas

cris
Fichiers attachés
Type de fichier : rar test.rar (103,1 Ko, 6 affichages)
chris09300 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2011, 14h09   #10
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
Donne toi du temps pour expliquer tes difficultés au lieu de bombarder le forum avec tes fichiers à chaque post.
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 18/12/2011, 14h17   #11
Membre habitué
 
Homme christian
retraite
Inscription : avril 2010
Messages : 310
Détails du profil
Informations personnelles :
Nom : Homme christian
Âge : 56
Localisation : Espagne

Informations professionnelles :
Activité : retraite
Secteur : Industrie

Informations forums :
Inscription : avril 2010
Messages : 310
Points : 109
Points : 109
j'ai joint un fichier car sur le premier que j'avais mis il n'y avait pas l'autre tableau.
ce que je souhaiterais faire ci dessous
J'ai un tableau de U3 a X67, et je souhaiterais si la differences entre les dates qui se trouvent dans les colonnes X et W
si X3 - W3 = 7 mettre la cellule U3 en jaune
si X3 - W3 = 14 mettre la cellule U3 en vert
si X3 - W3 = 21 mettre la cellule U3 en bleu clair
si X3 - W3 = 28 mettre la cellule U3 en gris.
et puis passer a la ligne suivante dans le tableau, jusqu'a la derniere ligne de ce tableau.
chris09300 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2011, 14h22   #12
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
C'est ce que fais la MFC
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 18/12/2011, 14h27   #13
Membre habitué
 
Homme christian
retraite
Inscription : avril 2010
Messages : 310
Détails du profil
Informations personnelles :
Nom : Homme christian
Âge : 56
Localisation : Espagne

Informations professionnelles :
Activité : retraite
Secteur : Industrie

Informations forums :
Inscription : avril 2010
Messages : 310
Points : 109
Points : 109
je suis d'accord avec toi, regarde le fichier que j'ai joint il y a la mise en forme conditionnelle,mais quand je clique sur mon bouton mise en forme de couleur rose,tu verras que ilne prend pas en compte le code que j'ai attribue a ce bouton.
si tu met sur la cellule ex: 7102 et que tu lui attribue la couleur jaune ,en cliquant sur le bouton tu verras la difference.
chris09300 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2011, 14h55   #14
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
Enlève la MFC
Adapte ce code pour ton fichier
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Sub TEST()
Dim Klr As Long
Dim c As Range
Dim d As Integer
 
With Worksheets("Feuil1")                       ' A adapter
    For Each c In .Range("U3:U100")
        If IsDate(c.Offset(0, 2)) And IsDate(c.Offset(0, 3)) Then
            d = DateDiff("d", c.Offset(0, 2), c.Offset(0, 3))
            Select Case d
                Case 7: Klr = 3
                Case 14: Klr = 6
                Case 21: Klr = 13
                Case 28: Klr = 14
                Case Else: Klr = xlNone
            End Select
        End If
        c.Interior.ColorIndex = Klr
        Klr = xlNone
    Next c
End With
End Sub
La sub Test sera lancée par un bouton, sinon tu peux regarder du côté de WorkSheet_Change
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 18/12/2011, 15h36   #15
Membre habitué
 
Homme christian
retraite
Inscription : avril 2010
Messages : 310
Détails du profil
Informations personnelles :
Nom : Homme christian
Âge : 56
Localisation : Espagne

Informations professionnelles :
Activité : retraite
Secteur : Industrie

Informations forums :
Inscription : avril 2010
Messages : 310
Points : 109
Points : 109
je n'est pas tout compris le code, mais ca fonctionne tres bien.
je vais eplucher le code pour bien le comprendre
merci beaucoup a toi
cordialement
cris
chris09300 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2011, 15h43   #16
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
Avec explication
Code :
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 TEST()
Dim Klr As Long
Dim c As Range
Dim d As Integer
 
With Worksheets("Feuil1")                       ' A adapter
    'On parcour la plage U3:U100
    For Each c In .Range("U3:U100")
        'Si pour chaque cellule U on a une date en W et en X
        If IsDate(c.Offset(0, 2)) And IsDate(c.Offset(0, 3)) Then
            'd: différence en jours entre W et X
            d = DateDiff("d", c.Offset(0, 2), c.Offset(0, 3))
            'on fonction de cette différence d, on obtient la couleur dans Klr
            Select Case d
                Case 7: Klr = 3
                Case 14: Klr = 6
                Case 21: Klr = 13
                Case 28: Klr = 14
                Case Else: Klr = xlNone
            End Select
        End If
        c.Interior.ColorIndex = Klr
        'on annule la couleur et on poursuit la boucle
        Klr = xlNone
    Next c
End With
End Sub
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 18/12/2011, 15h50   #17
Membre habitué
 
Homme christian
retraite
Inscription : avril 2010
Messages : 310
Détails du profil
Informations personnelles :
Nom : Homme christian
Âge : 56
Localisation : Espagne

Informations professionnelles :
Activité : retraite
Secteur : Industrie

Informations forums :
Inscription : avril 2010
Messages : 310
Points : 109
Points : 109
tu est vraiment super, j'ai bien compris maintenant.
cordialement
cris
chris09300 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h58.


 
 
 
 
Partenaires

Hébergement Web