Aide pour complement de code

Résolu
chris09300 Messages postés 140 Date d'inscription lundi 9 juin 2008 Statut Membre Dernière intervention 18 avril 2012 - 17 déc. 2011 à 17:35
chris09300 Messages postés 140 Date d'inscription lundi 9 juin 2008 Statut Membre Dernière intervention 18 avril 2012 - 18 déc. 2011 à 12:34
Bonjour
j'ai un tableau de U3 a Y67,dans U3 a U67, j'ai des valeurs 7101 7102 etc
je souhaiterais si les cellules W3 - X3 = 1 semaine mettre la cellules U3 de couleur 65535.
si W3 - X3 = 2 semaines cel U3= col 10092390
si W3 - X3 = 3 semaines cel U3= col 16777062
si W3 - X3 = 4 semaines cel U3= col 12497879

a integrer dans mon code ci dessous:

Private Sub CommandButton2_Click()
Dim DerLigS As Long
Dim MaRech As Range, CelFin As Range
Application.ScreenUpdating = False
 
If Me.Numero.Value <> "" Then
    With Sheets("AR-Base")
        DerLigS = .Cells(.Rows.Count, 21).End(xlUp).Row
        Set MaRech = .Range("U3:U" & DerLigS).Find(Me.Numero.Value, LookIn:=xlValues, LookAt:=xlWhole)
        If Not MaRech Is Nothing Then
            'On décale les cellules à partir de C vers la droite
            '.Range("C" & MaRech.Row).Insert xlShiftToRight
            'La dernière cellule de la ligne MaRech.Row
            'Set CelFin = .Cells(MaRech.Row, .Columns.Count).End(xlToLeft)
            'En B on insère la formule
            '.Range("V" & MaRech.Row).Formula = "=CountA(V" & MaRech.Row & ":" & CelFin.Address(0, 0) & ")"
            Set CelFin = Nothing
            'On écrit en C notre texte et on applique la mise en forme
            With .Range("W" & MaRech.Row)
                .Value = CDate(DTPicker1.Value)
                .Font.Name = "Arial"
                .Font.Size = 12
                .Borders.LineStyle = xlContinuous
            End With
            With .Range("V" & MaRech.Row)
                .Value = Me.TextBox1.Value
                .Font.Name = "Arial"
                .Font.Size = 14
                .Borders.LineStyle = xlContinuous
            End With
            With .Range("X" & MaRech.Row)
                .Value = CDate(DTPicker2.Value)
                .Font.Name = "Arial"
                .Font.Size = 12
                .Borders.LineStyle = xlContinuous
            End With
            Set MaRech = Nothing
        End If
    End With
    Me.TextBox1.Value = ""
    [W3] = DTPicker1.Value
 
Application.ScreenUpdating = True
End If
End Sub


et passer a la ligne suivante jusqu'a la derniere ligne
merci
cris

7 réponses

chris09300 Messages postés 140 Date d'inscription lundi 9 juin 2008 Statut Membre Dernière intervention 18 avril 2012 1
18 déc. 2011 à 12:34
j'ai reussit avec la mise en forme conditionnelle,je n'avais jamais utilise cette fonction
merci
cris
3
NHenry Messages postés 15030 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 26 novembre 2022 157
17 déc. 2011 à 18:10
Bonjour,

Tu peux utiliser les mises en forme automatique.
Regardes ensuite, le code généré et comment propager la mise en forme sans écraser le contenu des cellules (Étirement spécial (je n'ai pas le nom exacte en tête)).

Sinon, tu travailles avec quelle version d'Excel ?

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, ce lien ou encore celui-ci[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
chris09300 Messages postés 140 Date d'inscription lundi 9 juin 2008 Statut Membre Dernière intervention 18 avril 2012 1
17 déc. 2011 à 18:22
bonjour
je ne connais pas bien la mise en forme automatique.
je suis sur excel 2007
cris
0
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
17 déc. 2011 à 23:03
Salut

Mise en forme automatique : voir dans les menus et dans l'aide.

Malgré tout, tu ne pourras faire que des comparaisons basiques dans les conditions de cette fonction très pratique.
Le mieux serait de travailler avec une boucle, telle que tu l'as fait dans le code exemple (qui n'a pas grand chose à voir avec le problème, d'ailleurs)
Une boucle, donc, et l'utilisation de la fonction DateDiff afin de calculer l'écart entre les deux dates (qu'on suppose y avoir dans les cellules), genre
Dim oRange As Range
Set oRange =  Range("U3")
If DateDiff("d", oRange.Value, oRange.Offset(0, 2).Value) > 7 Then
    ' Plus de 7 jours
    ...


Dans ton énoncé
" si W3 - X3 = 2 semaines cel U3= col 10092390 "
Que veut dire "col" ?
Couleur ?
C'est le genre de détail dans un explicatif qui fait qu'on n'y comprend rien.

Vala
Jack, =fr MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
chris09300 Messages postés 140 Date d'inscription lundi 9 juin 2008 Statut Membre Dernière intervention 18 avril 2012 1
17 déc. 2011 à 23:55
tu as raison cel au de cellule
et col au de couleur, j'aurais mieux fait de tout ecrire pour une meilleure comprehension
et que la cellule X3 - la cellule W3 est egale a 7 jours alors U3 de couleur jaune
si 14 jours couleur verte, si 21 jours couleur bleu clair, et si = 4 semaines = couleur grise
et ainsi de suite pour les lignes suivantes.
cela aurait ete clair
cris
0
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
18 déc. 2011 à 01:00
Ok, donc l'idée que je t'ai fournie est correcte.
Il te suffit de créer une boucle sur chacune des cellules de X3 à X...
Dans le code d'exemple, je me suis trompé : ce n'est pas U3 mais X3 qu'il te faut, et dans ce cas, la cellule W3 se trouve à l'Offset (0, -1)
0
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
18 déc. 2011 à 03:43
PS : En ce qui concerne le coloriage des cellules, tu trouveras le code nécessaire en enregistrant une macro pendant que tu colores une cellule.
0