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