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

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°2206514
tigrouille
Banana !
Posté le 11-10-2013 à 15:38:04  profilanswer
 

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
mood
Publicité
Posté le 11-10-2013 à 15:38:04  profilanswer
 

n°2206517
Marc L
Posté le 11-10-2013 à 16:48:54  profilanswer
 

 
           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 …
 

n°2206518
tigrouille
Banana !
Posté le 11-10-2013 à 17:07:50  profilanswer
 

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
n°2206520
Marc L
Posté le 11-10-2013 à 17:45:27  profilanswer
 

 

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


 

n°2206524
MaybeEijOr​Not
but someone at least
Posté le 11-10-2013 à 18:33:32  profilanswer
 

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?

n°2206526
tigrouille
Banana !
Posté le 11-10-2013 à 18:44:27  profilanswer
 

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
n°2206794
tigrouille
Banana !
Posté le 15-10-2013 à 11:38:22  profilanswer
 

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
n°2206795
Marc L
Posté le 15-10-2013 à 11:47:42  profilanswer
 

 
           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

n°2206796
tigrouille
Banana !
Posté le 15-10-2013 à 11:56:23  profilanswer
 

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
n°2206797
tigrouille
Banana !
Posté le 15-10-2013 à 11:58:29  profilanswer
 

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
mood
Publicité
Posté le 15-10-2013 à 11:58:29  profilanswer
 

n°2206820
Marc L
Posté le 15-10-2013 à 16:33:50  profilanswer
 

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

n°2206821
tigrouille
Banana !
Posté le 15-10-2013 à 16:34:48  profilanswer
 

Bien vu !
 
Merci pour toute ton aide !


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

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

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

 

Sujets relatifs
comparer et mettre a jour 2 tables en SQLVBA - couleur texte cellule en fonction du jour
copier des lignes sous condition vers autre feuilleUNION de 4 tables, GROUP BY NomServeur HAVING MAX(Date)
Etirer la formule de plusieurs lignes jusqu'en bas de mon tableauBug sur retour jour semaine
Verrouiller les cellules de tous les onglets d'un classeur.créer un fichier xml et l'afficher dans un emplacement bien déterminé
Formulaire et date et MySQLmise à jour d'une table de base de données
Plus de sujets relatifs à : Sélectionner les lignes de la date du jour + Verrouiller emplacement


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