Selection [repondu] - VB/VBA/VBS - Programmation
Marsh Posté le 06-07-2006 à 11:59:23
ben au lieu d'appliquer ton encadrement sur la cellule recherchée, tu l'appliques à (cellule recherchée+1),(cellule recherchée+2) et (cellule recherchée+3).... non?
Marsh Posté le 06-07-2006 à 12:01:13
Salut,
Utilises plutot une mise en forme conditionelle avec en condition de type formule si C2 = date du jour faire un cadre et ceci pour C2, C3 et C4.
Marsh Posté le 06-07-2006 à 14:06:18
Paul Hood a écrit : envoi un début de code. |
Voila le code :
Citation : |
Voilà tout ce que j'ai pu faire.....
Marsh Posté le 06-07-2006 à 14:30:30
tu applique une mise en forme conditionelle à "C2","C3","C4" et "C5".
et en condition tu mets La formule est : =C2=AUJOURDHUI()
Marsh Posté le 06-07-2006 à 14:33:33
sans prétendre pouvoir faire mieux tout de suite, je trouve ton code très lourd... pour peu de choses au final.
Si quelqu'un peut me confirmer l'utilisation de la méthode .Callout.Border
tu fais des boucles sur les value de tes cellules, ca marche aussi bien, et une fois ta cellule trouvée tu lui aplique un .callout.border = true...
Non ?
Marsh Posté le 06-07-2006 à 14:43:00
Pour sélectionner 3 cellules sous celle où se trouve la date
Range(Cells(cel.row, cel.column), Cells(cel.row + 3, cel.column)).Select
Marsh Posté le 06-07-2006 à 14:50:40
Paul Hood a écrit : Pour sélectionner 3 cellules sous celle où se trouve la date |
ok mais je mets ce bout de code juste après le find ? ou alors je dois encore définir une variable ???
Marsh Posté le 06-07-2006 à 15:10:17
Ca me donne :
Erreur d'exécution '424'
Objet requis
?????
Marsh Posté le 06-07-2006 à 16:47:19
Avec ca ca doit marcher. J'ai modifié le minimum
Private Sub Test()
Dim mydate As Date
Dim cel
Dim MaDate As Date
mydate = Format(Now, "dd/mm/yyyy" )
'-------------------- Sélection de toutes les cellules pour enlever les bordures -----
Cells.Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
'-------------------- Sélection d'une seule case ---------------------------------------
Range("A1" ).Select
'-------------------- Recherche de la date du jour pour la mettre en encadré -----------
Cells.Find(What:=mydate, After:=ActiveCell, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False).Select
'-------------------- Affectation de l'adresse de la cellule à la variable --------------
cel = ActiveCell.Address
'------------------- Affichage de l'adresse ----------------------------------------
Range(Cells(ActiveCell.Row, ActiveCell.Column), Cells(ActiveCell.Row + 3, ActiveCell.Column)).Select
MsgBox (cel)
'------------------- Encadrement de la cellule active ------------------------------
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
End Sub
Marsh Posté le 10-07-2006 à 08:30:13
Merci beaucoup !
J'ai juste dû modifier une ou deux ligne et c'est parfait !!
A+
Marsh Posté le 06-07-2006 à 11:36:56
Hello,
Je fais une macro pour les vacances d'un groupe.
Lorsque j'ouvre le fichier excel il cherche la date du jour et l'encadre.
Le problème c'est que je voudrais encadrer qques cellules en dessous de la date...
exemple :
J'ai une colonne avec les noms des personne p.ex dans les cellules "A3","A4","A5" . plus loin j'ai ma date qui est p.ex dans la cellule "C2". Je fais une recherche, je tombe sur la cellule "C2" et il me l'encadre.
Maintenant, ce que je voudrais c'est qu'il me prenne la cellule "C2" mais aussi "C3","C4" et "C5".
Je ne sais pas si c'est explicite mais bon voilà..... Je me disais que je pouvais faire une condition d'ajout de cellule à la case active mais je ne sais pas comment faire ....
Qqun pourrait m'aider ???
Merci d'avance !
Message édité par treboux le 10-07-2006 à 08:30:36