Sélectionner les lignes de la date du jour + Verrouiller emplacement

Sélectionner les lignes de la date du jour + Verrouiller emplacement - VB/VBA/VBS - Programmation

Marsh Posté le 11-10-2013 à 15:38:04    

Yop,  
 
je cherche un moyen de sélectionner les cellules A à F des lignes correspondantes à la date du jour saisie en colonne A.
 
Dans la colonne A, il n'y a que des dates. Les autres sont remplies ou non.
 
En affectant la macro à un bouton, je veux que ça me sélectionne les lignes concernant chaque jour.
 
De plus, ces boutons (formes) doivent être verrouillés (option figer les volets par exemple) mais impossible de trouver comment faire.
 
Comme ça, qu'on soit à la ligne 2 ou 4512, les boutons sont toujours à la même place.
 
Merci d'avance.
 
-------------------------------------------------------------------------------------------
 
Voici où j'en suis, mais ça sélectionne que la cellule de la colonne A et si y a plusieurs lignes avec la même date, ça prend la dernière cellule :

Code :
  1. Sub DateJour()
  2.     X = Evaluate("ADDRESS(MATCH(TODAY(),A1:A65535),1)" )
  3.     'Range(Range(X), Range(X).Offset(0, -12)).Select
  4.     Range(X).Select
  5. End Sub


 
Donc la variable X contient par exemple : A72
Et moi je voudrais sélectionner A72 à F72 (+ A73 à F73 + A74 à A74... si toujours la date du jour).


Message édité par tigrouille le 11-10-2013 à 15:42:50

---------------
Cartes DBS Card Game - REDFACE - VDS Fig-Goodies - VDS Matos - Collec'PoP - Steam - Bnet: tigrouille#2758
Reply

Marsh Posté le 11-10-2013 à 15:38:04   

Reply

Marsh Posté le 11-10-2013 à 16:48:54    

 
           Pas glop,
 
           la sélection c'est bien (en fait non !) mais pour en faire quoi ?
 
           Ensuite rien de tel que le filtre automatique à combiner avec l'Enregistreur de macros pour avoir une base de code …
 

Reply

Marsh Posté le 11-10-2013 à 17:07:50    

La sélection ?
 
C'est juste pour qu'après ma macro de mise en forme automatique sur les 400 lignes du tableau, ce soient les lignes du jour qui apparaissent et non le début du tableau avec une sélection de la totalité de celui-ci...
 
Ma macro de mise en forme, une tuerie !

Code :
  1. Sub Forme()
  2. Dim Num As Integer
  3. Dim Couleur(1) As Integer
  4. debut = 2
  5. fin = debut
  6. Couleur(0) = 24
  7. Couleur(1) = 35
  8. 'On lance la fonction Reset
  9. reset
  10. 'On va parcourir toutes les lignes occupées
  11. Do While Cells(debut, 1) <> ""
  12.     'Tant qu'on a une action en A mais qu'on a pas de date
  13.     'Alors on va une ligne plus loin
  14.     Do While (Cells(fin + 1, 1) <> "" And Cells(fin + 1, 1) = Cells(fin, 1))
  15.         fin = fin + 1
  16.     Loop
  17.         'On selectionne de la premiere a la dernier ligne de la date
  18.          With Range("A" & debut & ":F" & fin) '<- si la dernière colonne n'est plus F modif à faire ici !
  19.             .BorderAround Weight:=xlMedium
  20.             .Borders(xlInsideVertical).LineStyle = xlDash
  21.             .Borders(xlInsideVertical).LineStyle = xlDash
  22.             .Interior.ColorIndex = Couleur(Num Mod 2)
  23.             Num = Num + 1
  24.         End With
  25.        
  26.     'On passe à la date suivante
  27.     debut = fin + 1
  28.     fin = debut
  29. Loop
  30. DateJour
  31. End Sub


 
Macro reset

Code :
  1. Sub reset()
  2.     Cells.Select
  3.     Selection.Borders(xlDiagonalDown).LineStyle = xlNone
  4.     Selection.Borders(xlDiagonalUp).LineStyle = xlNone
  5.     Selection.Borders(xlEdgeLeft).LineStyle = xlNone
  6.     Selection.Borders(xlEdgeTop).LineStyle = xlNone
  7.     Selection.Borders(xlEdgeBottom).LineStyle = xlNone
  8.     Selection.Borders(xlEdgeRight).LineStyle = xlNone
  9.     Selection.Borders(xlInsideVertical).LineStyle = xlNone
  10.     Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
  11.    
  12.     i = 1
  13.     Do While Cells(i, 4) <> ""
  14.         i = i + 1
  15.     Loop
  16.    
  17.     Range("A2:F" & i).Select
  18.     Range(Selection, Selection.End(xlDown)).Select
  19.     Range(Selection, Selection.End(xlDown)).Select
  20.     Range(Selection, Selection.End(xlDown)).Select
  21.     With Selection.Interior
  22.         .Pattern = xlNone
  23.         .TintAndShade = 0
  24.         .PatternTintAndShade = 0
  25.     End With
  26. DateJour
  27. End Sub


---------------
Cartes DBS Card Game - REDFACE - VDS Fig-Goodies - VDS Matos - Collec'PoP - Steam - Bnet: tigrouille#2758
Reply

Marsh Posté le 11-10-2013 à 17:45:27    

 

Code :
  1. Sub Test()
  2.     Dim Rg As Range
  3.    
  4.     Set Rg = Columns(1).Find(Date, , xlValues)
  5.     If Not Rg Is Nothing Then Rg.Select
  6.     Set Rg = Nothing
  7. End Sub


 

Reply

Marsh Posté le 11-10-2013 à 18:33:32    

Je n'ai pas bien compris ce que tu veux faire au final mais une mise en forme conditionnelle avec comme condition sur ta plage de cellules que la valeur de la cellule doit être égale à "=AUJOURDHUI()" ne suffit pas?

Reply

Marsh Posté le 11-10-2013 à 18:44:27    

Marc L a écrit :

 

Code :
  1. Sub Test()
  2.     Dim Rg As Range
  3.    
  4.     Set Rg = Columns(1).Find(Date, , xlValues)
  5.     If Not Rg Is Nothing Then Rg.Select
  6.     Set Rg = Nothing
  7. End Sub


 


 
Merci, je testerai lundi.
 

MaybeEijOrNot a écrit :

Je n'ai pas bien compris ce que tu veux faire au final mais une mise en forme conditionnelle avec comme condition sur ta plage de cellules que la valeur de la cellule doit être égale à "=AUJOURDHUI()" ne suffit pas?


Non, la mise en forme n'a rien à voir avec la sélection finale car je veux faire la mise en forme de tout le tableau mais à la fin je veux que la page et le curseur se centre sur les évènements du jour.
 


---------------
Cartes DBS Card Game - REDFACE - VDS Fig-Goodies - VDS Matos - Collec'PoP - Steam - Bnet: tigrouille#2758
Reply

Marsh Posté le 15-10-2013 à 11:38:22    

Marc L, ta solution me donne bien la première case de la ligne correspondant à la date du jour.
 
Serait-il possible ensuite de sélectionner cette case + les autres à côté jusqu'à la colonne "F" ?
Je modifie ça :

Code :
  1. If Not Rg Is Nothing Then Range(Rg, ActiveCell.Offset(0, 5)).Select


ET
Que ça vérifie si sur la ligne du dessous la date est la même et si oui que ça sélectionne pareil jusqu'à "F" ?

Code :
  1. Sub DateJour()
  2.     Dim Rg As Range
  3.     Set Rg = Columns(1).Find(Date, , xlValues)
  4.     Rg.Select
  5.     'If Not Rg Is Nothing Then Range(Rg, ActiveCell.Offset(0, 5)).Select
  6.     If ActiveCell.Offset(1, 0) = Rg Then Range(Rg, ActiveCell.Offset(1, 5)).Select
  7.     Set Rg = Nothing
  8. End Sub


Jusqu'à ce que la date change...


Message édité par tigrouille le 15-10-2013 à 11:55:20

---------------
Cartes DBS Card Game - REDFACE - VDS Fig-Goodies - VDS Matos - Collec'PoP - Steam - Bnet: tigrouille#2758
Reply

Marsh Posté le 15-10-2013 à 11:47:42    

 
           Volontairement je ne l'ai pas fait car imagine seulement si l'utilisateur appuie sur la touche de suppression …

Code :
  1. Sub Demo()
  2.     Dim Rg As Range
  3.    
  4.     Set Rg = Columns(1).Find(Date, , xlValues)
  5.    
  6.     If Not Rg Is Nothing Then
  7.         ActiveWindow.ScrollRow = Rg.Row
  8.         Range(Rg, Columns(1).Find(Date, , xlValues, , , xlPrevious)).Resize(, 6).Select
  9.         Set Rg = Nothing
  10.     End If
  11. End Sub

Reply

Marsh Posté le 15-10-2013 à 11:56:23    

L'utilisateur n'a aucun droit de modif sur le fichier, c'est uniquement pour moi.
 
C'est quoi la différence entre ton truc et ce que j'ai mis ?


---------------
Cartes DBS Card Game - REDFACE - VDS Fig-Goodies - VDS Matos - Collec'PoP - Steam - Bnet: tigrouille#2758
Reply

Marsh Posté le 15-10-2013 à 11:58:29    

Ah ouais, bien ton machin !!
 
Seul défaut, ça me met les lignes sélectionner en début de page, serait-il possible de les mettre au milieu plutôt ? (oui désolé je suis un casse-coui****).


---------------
Cartes DBS Card Game - REDFACE - VDS Fig-Goodies - VDS Matos - Collec'PoP - Steam - Bnet: tigrouille#2758
Reply

Marsh Posté le 15-10-2013 à 11:58:29   

Reply

Marsh Posté le 15-10-2013 à 16:33:50    

 
           Enlever la ligne n°7 et Excel centrera à peu près …
 

Reply

Marsh Posté le 15-10-2013 à 16:34:48    

Bien vu !
 
Merci pour toute ton aide !


---------------
Cartes DBS Card Game - REDFACE - VDS Fig-Goodies - VDS Matos - Collec'PoP - Steam - Bnet: tigrouille#2758
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed