Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1682 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Selection [repondu]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Selection [repondu]

n°1401818
treboux
Posté le 06-07-2006 à 11:36:56  profilanswer
 

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
mood
Publicité
Posté le 06-07-2006 à 11:36:56  profilanswer
 

n°1401845
jpcheck
Pioupiou
Posté le 06-07-2006 à 11:59:23  profilanswer
 

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?

n°1401850
DamienCYS
Posté le 06-07-2006 à 12:01:13  profilanswer
 

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.

n°1401963
treboux
Posté le 06-07-2006 à 13:58:25  profilanswer
 

peut-etre mais c'erst ca que je n'arrive pas !!!!

n°1401966
Paul Hood
Posté le 06-07-2006 à 14:02:08  profilanswer
 

envoi un début de code.

n°1401968
treboux
Posté le 06-07-2006 à 14:06:18  profilanswer
 

Paul Hood a écrit :

envoi un début de code.


 
Voila le code :
 

Citation :


 
'-------------------- Macro s'exécutant lors de l'ouverture du document ---------------
 
Private Sub Workbook_Open()
 
'-------------------- Définition des variables -----------------------------------------
 
Dim mydate As Date
Dim cel
mydate = now
 
'-------------------- 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:=Date, After:=ActiveCell, LookIn:=xlFormulas, _
    LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
    MatchCase:=False, SearchFormat:=False).Activate
 
'-------------------- Affectation de l'adresse de la cellule à la variable --------------
 
    cel = ActiveCell.Address
 
'------------------- Affichage de l'adresse ----------------------------------------
 
    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
 


 
Voilà tout ce que j'ai pu faire.....

n°1401981
DamienCYS
Posté le 06-07-2006 à 14:30:30  profilanswer
 

tu applique une mise en forme conditionelle à "C2","C3","C4" et "C5".  
et en condition tu mets La formule est : =C2=AUJOURDHUI()

n°1401984
jpcheck
Pioupiou
Posté le 06-07-2006 à 14:33:33  profilanswer
 

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 ?

n°1401994
Paul Hood
Posté le 06-07-2006 à 14:43:00  profilanswer
 

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
 

n°1402001
treboux
Posté le 06-07-2006 à 14:50:40  profilanswer
 

Paul Hood a écrit :

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


 
ok mais je mets ce bout de code juste après le find ? ou alors je dois encore définir une variable ???

mood
Publicité
Posté le 06-07-2006 à 14:50:40  profilanswer
 

n°1402004
Paul Hood
Posté le 06-07-2006 à 14:53:59  profilanswer
 

juste après ton  
  cel = ActiveCell.Address  

n°1402018
treboux
Posté le 06-07-2006 à 15:10:17  profilanswer
 

Ca me donne :
 
Erreur d'exécution '424'
Objet requis
 
 
?????

n°1402140
Paul Hood
Posté le 06-07-2006 à 16:47:19  profilanswer
 

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

n°1403516
treboux
Posté le 10-07-2006 à 08:30:13  profilanswer
 

Merci beaucoup !
 
J'ai juste dû modifier une ou deux ligne et c'est parfait !!
 
A+


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Selection [repondu]

 

Sujets relatifs
HELP !!! [répondu]Fichiers [répondu]
test de selection sur un select multipleValeur qui change selon la selection
[RESOLU] selection de colonneEnvoyer une selection de mail
[RESOLU]Selection ds menu deroulant d'une BD puis echo d'un champ liéBoite de selection : conserver son choix après changement de page ?
Envoyer les données d'une boitre de sélection dans un JavaScript ?petit probleme de selection multiple avec date
Plus de sujets relatifs à : Selection [repondu]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR