selestafst
Messages postés6Date d'inscriptionvendredi 24 juin 2005StatutMembreDernière intervention 2 novembre 2006
-
24 juin 2005 à 16:49
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 2006
-
25 juin 2005 à 12:09
Bonjour à tous, voilà je suis super débutant en vb et je cherche à faire un truc tout simple :
Dans excel, j'ai une colonne avec des dates en couleur noire et j'aimerai que celles qui ont une différence supérieure à 12 jours avec la date courante passent en rouge.
De plus j'aimerai que ça se lance à l'ouverture du fichier excel, sans avoir à cliquer sur un bouton ou quoi que ce soit!!
Y a-t-il un code tout prêt? Quelqu'un a-t-il une solution?
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200621 24 juin 2005 à 18:13
Salut,
Menu "Outils/Macro/Visual basic editor" ou Alt+F11.
Dans ThisWorkBook, tu colles ce code :
Private Sub Workbook_Open()
Dim i As Long
dim col as Long
col = 1 ' colonne A, tu mets la colonne que tu veux
' activation de la feuille, tu mets le nom de la tienne
Sheets("Feuil1").Activate
' on parcourre les lignes jusqu'à la dernière renseignée
For i = 1 To ActiveCell.SpecialCells(xlLastCell).Row
If IsDate(Cells(i, col).Value) Then 'si c'est une date
If Cells(i, col).Value > Date + 12 Then
Cells(i, col).Font.ColorIndex = 3 ' couleur police en rouge
End If
Else
Exit For
End If
Next
End Sub
-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
Molenn
Messages postés797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 20117 24 juin 2005 à 23:55
Je peux faire une petite réflexion toute bête ? Il n'y a pas forcément besoin de passer par un code VB pour faire ça, il y a beaucoup plus simple. Une fonctionnalité d'Excel
Ca s'appelle la mise en forme conditionnelle.
Donc, sur une cellule donnée, faire le Menu\Affichage\Mise en forme conditionnelle
Mettre comme condition :
La formule est : =JOUR(AUJOURDHUI()-Case sélectionnée contenant la date)>12
Et avec le bouton Format, définir l'effet voulu (changement de couleur, de police, de fond, ...)
Puis avec le superbe est magnifique outil Pinceau, copier ce format conditionnel sur toutes les cases qui intéressent voire la colone.
Ca a l'avantage de fonctionner dès que le fichier Excel est ouvert, la mise à jour est en temps réel dès une modification de date (il faut que l'option Calcul automatique soit cochée tout de même, sinon, il faudra faire F9 pour rafraichir les formats).
jsem2k1
Messages postés125Date d'inscriptionsamedi 11 décembre 2004StatutMembreDernière intervention12 août 20081 24 juin 2005 à 22:15
The J
Bon Voilà Moi aussi j'ai déja eu un truc de se genre la ma solution est la suivante
Supposons que Les date a traiter se trouve dans la Colone 1 sur la feuille du nom «Sheet1» il suffi de mettre le code suivant dans la section «Thisworkbook» et le tour est jouer.
Private Sub Workbook_Open()
Dim interval As Integer 'Contien la différance entre la date du jour et celle de la Cellule
'On commence par sélectionner touts les cellule non-vide de la colone A1
Sheets("Sheet1").Range("A1", Range("A1").End(xlDown)).Select
'On boucle sur toutes les cellues sélectionnées et on vérifie la condition
For Each Cell In Selection
If IsDate(Cell.Value) = True Then 'On vérifi si c une date
interval = (Date - Cell.Value)
Select Case interval
Case Is = 12 ' S'il y a une différance de 12 jours exactement
Cell.Font.ColorIndex = 4 'On met la date en Vert Clair
Case Is > 12 ' S'il y a une différance de plus de 12 jours
Cell.Font.ColorIndex = 3 'On met la date en Rouge
Case Is < 12
'Ici tu peux mettre ce que tu veux
'Si tu veux faire un traitement particulier quand «interval»
'plus petit que 12
End Select
Else
'Ici si la valeur de la cellule n'est pas une date
'Tu peux faire le traitement que tu veux ici
jsem2k1
Messages postés125Date d'inscriptionsamedi 11 décembre 2004StatutMembreDernière intervention12 août 20081 24 juin 2005 à 22:20
The J
Ha Zut Désolé je n'avais pas vue que CanisLupus avais déja répondu il faut dire que nos code sont pas mal ressemblant!!!! Au moins il y a sa de bon Je suis sure que je ne suis pas aussi nul que sa
Vous n’avez pas trouvé la réponse que vous recherchez ?
jsem2k1
Messages postés125Date d'inscriptionsamedi 11 décembre 2004StatutMembreDernière intervention12 août 20081 25 juin 2005 à 01:52
Hé oui c tout bête je l'avais oblier sa... Voir qu'a force de tapper du code on fini par oblier qu'il y a plus simple (une sorte de déformation professionelle)
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200621 25 juin 2005 à 12:05
Ouaip, moi aussi j'avais oublié cette fonction. Je ne fais pas trop de bureautique.
Par contre la formule donnée par Molenn ne fonctionne pas, il faudrait faire :
=AUJOURDHUI()-$A$1>12
sinon ce n'est qu'une différence entre des jours et non pas des dates (par ex, 25/06/04 comparée avec aujourd'hui ne changerait pas de couleur, et pourtant ...).
-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?