Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Macro, test en boucle sur une date, tant que...

17 réponses
Avatar
Perceval973
Bonjour a tous

J'ai besoin de votre aide...

Description de la situation :

Dans Excel 2003 ;
J'ai un tableau dans lequel j'ajoute des lignes régulièrement. Du coup
depuis le début de l'année mon tableau a deja 300 lignes, or seulement une
vingtaines d'entre elles me sont utiles au quotidien. Mais j'ai besoin de la
totalité pour faire des analyses en fin de mois, puis en fin d'année.

Probleme :

Lassé de faire masquer/afficher tous les matins, j'aimerais créer une macro
qui s'ouvre en meme temps que le fichier et qui va tester si la date d'une
cellule (jj/mm/aaaa hh:mm:ss) est comprise entre aujourd'hui moins 3 jours
et aujourd'hui plus 3 jours.
Si oui on affiche la ligne
Si non on masque la ligne...

Pourriez vous m'aider s'il vous plait ?
Merci d'avance
--
Perceval973

10 réponses

1 2
Avatar
Youky
dans l'editeur 1 double click sur workbook et copier cela
changer le nom de feuil et aussi A pour la colonne des dates
Youky
Private Sub Workbook_Open()
With Feuil1 ' à modifier
.Rows("1:" & .[A65536].End(3).Row).Hidden = True
For k = 1 To .[A65536].End(3).Row
If .Cells(k, 1) = Date Then
For lg = k - 3 To k + 3
If lg > 0 Then
.Rows(lg).Hidden = False
End If
Next
End If
Next
End With
End Sub

"Perceval973" a écrit dans le message de news:
4447606e$0$8001$
Bonjour a tous

J'ai besoin de votre aide...

Description de la situation :

Dans Excel 2003 ;
J'ai un tableau dans lequel j'ajoute des lignes régulièrement. Du coup
depuis le début de l'année mon tableau a deja 300 lignes, or seulement une
vingtaines d'entre elles me sont utiles au quotidien. Mais j'ai besoin de
la totalité pour faire des analyses en fin de mois, puis en fin d'année.

Probleme :

Lassé de faire masquer/afficher tous les matins, j'aimerais créer une
macro qui s'ouvre en meme temps que le fichier et qui va tester si la date
d'une cellule (jj/mm/aaaa hh:mm:ss) est comprise entre aujourd'hui moins 3
jours et aujourd'hui plus 3 jours.
Si oui on affiche la ligne
Si non on masque la ligne...

Pourriez vous m'aider s'il vous plait ?
Merci d'avance
--
Perceval973



Avatar
Perceval973
OK, je teste ca cet apres midi et je viens te dire si j'ai réussi a m'en
servir :-)
En tous cas merci d'avance...
Percy

Youky wrote:
dans l'editeur 1 double click sur workbook et copier cela
changer le nom de feuil et aussi A pour la colonne des dates
Youky
Private Sub Workbook_Open()
With Feuil1 ' à modifier
.Rows("1:" & .[A65536].End(3).Row).Hidden = True
For k = 1 To .[A65536].End(3).Row
If .Cells(k, 1) = Date Then
For lg = k - 3 To k + 3
If lg > 0 Then
.Rows(lg).Hidden = False
End If
Next
End If
Next
End With
End Sub

"Perceval973" a écrit dans le message de news:
4447606e$0$8001$
Bonjour a tous

J'ai besoin de votre aide...

Description de la situation :

Dans Excel 2003 ;
J'ai un tableau dans lequel j'ajoute des lignes régulièrement. Du
coup depuis le début de l'année mon tableau a deja 300 lignes, or
seulement une vingtaines d'entre elles me sont utiles au quotidien.
Mais j'ai besoin de la totalité pour faire des analyses en fin de
mois, puis en fin d'année. Probleme :

Lassé de faire masquer/afficher tous les matins, j'aimerais créer une
macro qui s'ouvre en meme temps que le fichier et qui va tester si
la date d'une cellule (jj/mm/aaaa hh:mm:ss) est comprise entre
aujourd'hui moins 3 jours et aujourd'hui plus 3 jours.
Si oui on affiche la ligne
Si non on masque la ligne...

Pourriez vous m'aider s'il vous plait ?
Merci d'avance
--
Perceval973




Avatar
Perceval973
Voici ce que j'ai copié dans la rubrique ThisWorkBook de mon classeur Excel

Private Sub Workbook_Open()
With Sheets("Planning Productions Dépôts").Rows("1:" &
.[G65536].End(3).Row).Hidden = True
For k = 1 To .[G65536].End(3).Row
If .Cells(k, 1) = Date Then
For lg = k - 3 To k + 3
If lg > 0 Then
.Rows(lg).Hidden = False
End If
Next
End If
Next
End With
End Sub

J'ai donc modifié le nom de ma feuille de calcul et j'ai remplacé A par G
qui est la colonne contenant ma date.
Mais lorsque j'ouvre le classeur j'ai le message suivant :
"Erreur de compilation - Référence incorrecte ou non qualifiée"
Et .[G65536] est surligné

Ai-je mal compris quelque chose ?
Je ne connais pas du tout vba, j'ai peut etre fait une boulette...

Youky wrote:
dans l'editeur 1 double click sur workbook et copier cela
changer le nom de feuil et aussi A pour la colonne des dates
Youky
Private Sub Workbook_Open()
With Feuil1 ' à modifier
.Rows("1:" & .[A65536].End(3).Row).Hidden = True
For k = 1 To .[A65536].End(3).Row
If .Cells(k, 1) = Date Then
For lg = k - 3 To k + 3
If lg > 0 Then
.Rows(lg).Hidden = False
End If
Next
End If
Next
End With
End Sub

"Perceval973" a écrit dans le message de news:
4447606e$0$8001$
Bonjour a tous

J'ai besoin de votre aide...

Description de la situation :

Dans Excel 2003 ;
J'ai un tableau dans lequel j'ajoute des lignes régulièrement. Du
coup depuis le début de l'année mon tableau a deja 300 lignes, or
seulement une vingtaines d'entre elles me sont utiles au quotidien.
Mais j'ai besoin de la totalité pour faire des analyses en fin de
mois, puis en fin d'année. Probleme :

Lassé de faire masquer/afficher tous les matins, j'aimerais créer une
macro qui s'ouvre en meme temps que le fichier et qui va tester si
la date d'une cellule (jj/mm/aaaa hh:mm:ss) est comprise entre
aujourd'hui moins 3 jours et aujourd'hui plus 3 jours.
Si oui on affiche la ligne
Si non on masque la ligne...

Pourriez vous m'aider s'il vous plait ?
Merci d'avance
--
Perceval973




Avatar
docm
Bonjour.

Peut-être comme ceci pour obtenir les dates est comprises entre aujourd'hui
moins 3 jours
et aujourd'hui plus 3 jours.

Private Sub tt()
With Feuil1 ' à modifier
.Rows("1:" & .[A65536].End(3).Row).Hidden = True
For k = 1 To .[A65536].End(3).Row

If .Cells(k, 1) >= (Date - 3) And .Cells(k, 1) <= (Date + 3) Then

.Rows(k).Hidden = False

End If
Next
End With
End Sub



"Perceval973" wrote in message
news:4447606e$0$8001$
Bonjour a tous

J'ai besoin de votre aide...

Description de la situation :

Dans Excel 2003 ;
J'ai un tableau dans lequel j'ajoute des lignes régulièrement. Du coup
depuis le début de l'année mon tableau a deja 300 lignes, or seulement une
vingtaines d'entre elles me sont utiles au quotidien. Mais j'ai besoin de
la

totalité pour faire des analyses en fin de mois, puis en fin d'année.

Probleme :

Lassé de faire masquer/afficher tous les matins, j'aimerais créer une
macro

qui s'ouvre en meme temps que le fichier et qui va tester si la date d'une
cellule (jj/mm/aaaa hh:mm:ss) est comprise entre aujourd'hui moins 3 jours
et aujourd'hui plus 3 jours.
Si oui on affiche la ligne
Si non on masque la ligne...

Pourriez vous m'aider s'il vous plait ?
Merci d'avance
--
Perceval973




Avatar
Perceval973
Salut :-)
J'ai le meme probleme avec G65536 qui se retrouve surligné et le meme
message d'erreur qu'avec la proposition de Youki
J'ai bien conscience que j'ai du louper qlq chose, mais je ne trouve pas
quoi...
Est-ce que cela peut provenir de mon format de date qui est "jj/mm/aaaa
hh:mm:ss" ?

docm wrote:
Bonjour.

Peut-être comme ceci pour obtenir les dates est comprises entre
aujourd'hui moins 3 jours
et aujourd'hui plus 3 jours.

Private Sub tt()
With Feuil1 ' à modifier
.Rows("1:" & .[A65536].End(3).Row).Hidden = True
For k = 1 To .[A65536].End(3).Row

If .Cells(k, 1) >= (Date - 3) And .Cells(k, 1) <= (Date + 3) Then

.Rows(k).Hidden = False

End If
Next
End With
End Sub



"Perceval973" wrote in message
news:4447606e$0$8001$
Bonjour a tous

J'ai besoin de votre aide...

Description de la situation :

Dans Excel 2003 ;
J'ai un tableau dans lequel j'ajoute des lignes régulièrement. Du
coup depuis le début de l'année mon tableau a deja 300 lignes, or
seulement une vingtaines d'entre elles me sont utiles au quotidien.
Mais j'ai besoin de la totalité pour faire des analyses en fin de
mois, puis en fin d'année.

Probleme :

Lassé de faire masquer/afficher tous les matins, j'aimerais créer
une macro qui s'ouvre en meme temps que le fichier et qui va tester
si la date d'une cellule (jj/mm/aaaa hh:mm:ss) est comprise entre
aujourd'hui moins 3 jours et aujourd'hui plus 3 jours.
Si oui on affiche la ligne
Si non on masque la ligne...

Pourriez vous m'aider s'il vous plait ?
Merci d'avance
--
Perceval973




Avatar
Eric
Bonjour,

il faut aller à la ligne après
With Sheets("Planning Productions Dépôts")


Voici ce que j'ai copié dans la rubrique ThisWorkBook de mon classeur Excel

Private Sub Workbook_Open()
With Sheets("Planning Productions Dépôts").Rows("1:" &
.[G65536].End(3).Row).Hidden = True
For k = 1 To .[G65536].End(3).Row
If .Cells(k, 1) = Date Then
For lg = k - 3 To k + 3
If lg > 0 Then
.Rows(lg).Hidden = False
End If
Next
End If
Next
End With
End Sub

J'ai donc modifié le nom de ma feuille de calcul et j'ai remplacé A par G
qui est la colonne contenant ma date.
Mais lorsque j'ouvre le classeur j'ai le message suivant :
"Erreur de compilation - Référence incorrecte ou non qualifiée"
Et .[G65536] est surligné

Ai-je mal compris quelque chose ?
Je ne connais pas du tout vba, j'ai peut etre fait une boulette...

Youky wrote:

dans l'editeur 1 double click sur workbook et copier cela
changer le nom de feuil et aussi A pour la colonne des dates
Youky
Private Sub Workbook_Open()
With Feuil1 ' à modifier
.Rows("1:" & .[A65536].End(3).Row).Hidden = True
For k = 1 To .[A65536].End(3).Row
If .Cells(k, 1) = Date Then
For lg = k - 3 To k + 3
If lg > 0 Then
.Rows(lg).Hidden = False
End If
Next
End If
Next
End With
End Sub

"Perceval973" a écrit dans le message de news:
4447606e$0$8001$

Bonjour a tous

J'ai besoin de votre aide...

Description de la situation :

Dans Excel 2003 ;
J'ai un tableau dans lequel j'ajoute des lignes régulièrement. Du
coup depuis le début de l'année mon tableau a deja 300 lignes, or
seulement une vingtaines d'entre elles me sont utiles au quotidien.
Mais j'ai besoin de la totalité pour faire des analyses en fin de
mois, puis en fin d'année. Probleme :

Lassé de faire masquer/afficher tous les matins, j'aimerais créer une
macro qui s'ouvre en meme temps que le fichier et qui va tester si
la date d'une cellule (jj/mm/aaaa hh:mm:ss) est comprise entre
aujourd'hui moins 3 jours et aujourd'hui plus 3 jours.
Si oui on affiche la ligne
Si non on masque la ligne...

Pourriez vous m'aider s'il vous plait ?
Merci d'avance
--
Perceval973







--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr



Avatar
Youky
comme dit Eric, cela donne
Private Sub Workbook_Open()
With Sheets("Planning Productions Dépôts") 'ici retour à la ligne
.Rows("1:" & .[G65536].End(3).Row).Hidden = True
For k = 1 To .[G65536].End(3).Row
If .Cells(k, 1) = Date Then
For lg = k - 3 To k + 3
If lg > 0 Then
.Rows(lg).Hidden = False
End If
Next
End If
Next
End With
End Sub

Youky

"Eric" a écrit dans le message de news:

Bonjour,

il faut aller à la ligne après
With Sheets("Planning Productions Dépôts")


Avatar
Perceval973
Bonjour a tous, bonjour Youki, bonjour Eric :-)

J'ai testé ca ce matin, cela semble mieux fonctionner, mais c'est pas encore
ca.

Ici j'ai remplacé les 1 par des 4, car mes dates commencent a partir de la
ligne 4

.Rows("4:" & .[G65536].End(3).Row).Hidden = True
For k = 4 To .[G65536].End(3).Row

Mais quand j'ouvre mon fichier, toutes les lignes sont masquées depuis la
4eme jusqu'a la 254eme (qui est actuellement ma dernière ligne renseignée).
N'y aurait-il pas un probleme avec le format de la date dans la colonne G ?


Youky wrote:
comme dit Eric, cela donne
Private Sub Workbook_Open()
With Sheets("Planning Productions Dépôts") 'ici retour à la ligne
.Rows("1:" & .[G65536].End(3).Row).Hidden = True
For k = 1 To .[G65536].End(3).Row
If .Cells(k, 1) = Date Then
For lg = k - 3 To k + 3
If lg > 0 Then
.Rows(lg).Hidden = False
End If
Next
End If
Next
End With
End Sub

Youky

"Eric" a écrit dans le message de news:

Bonjour,

il faut aller à la ligne après
With Sheets("Planning Productions Dépôts")




Avatar
Eric
Bonjour,

Et avec :
Private Sub Workbook_Open()
With Sheets("Planning Productions Dépôts") 'ici retour à la ligne
.Rows("4:" & .[G65536].End(3).Row).Hidden = True
For k = 4 To .[G65536].End(3).Row
If .Cells(k, 7) >= Date - 3 And .Cells(k, 7) <= Date + 3 Then
.Rows(k).Hidden = False
End If
Next
End With
End Sub

Bonjour a tous, bonjour Youki, bonjour Eric :-)

J'ai testé ca ce matin, cela semble mieux fonctionner, mais c'est pas encore
ca.

Ici j'ai remplacé les 1 par des 4, car mes dates commencent a partir de la
ligne 4

.Rows("4:" & .[G65536].End(3).Row).Hidden = True
For k = 4 To .[G65536].End(3).Row

Mais quand j'ouvre mon fichier, toutes les lignes sont masquées depuis la
4eme jusqu'a la 254eme (qui est actuellement ma dernière ligne renseignée).
N'y aurait-il pas un probleme avec le format de la date dans la colonne G ?




--
A+
Eric
http://www.mpfa.info/

Avatar
Perceval973
Non ca change rien, ca masque toujours les cellules 4 a 254
J'ai aussi essayé de mettre ma date au format jjj-jj-mmm-aaaa en supprimant
les heures, mais cela ne change rien au résultat


Eric wrote:
Bonjour,

Et avec :
Private Sub Workbook_Open()
With Sheets("Planning Productions Dépôts") 'ici retour à la ligne
.Rows("4:" & .[G65536].End(3).Row).Hidden = True
For k = 4 To .[G65536].End(3).Row
If .Cells(k, 7) >= Date - 3 And .Cells(k, 7) <= Date + 3 Then
.Rows(k).Hidden = False
End If
Next
End With
End Sub

Bonjour a tous, bonjour Youki, bonjour Eric :-)

J'ai testé ca ce matin, cela semble mieux fonctionner, mais c'est
pas encore ca.

Ici j'ai remplacé les 1 par des 4, car mes dates commencent a partir
de la ligne 4

.Rows("4:" & .[G65536].End(3).Row).Hidden = True
For k = 4 To .[G65536].End(3).Row

Mais quand j'ouvre mon fichier, toutes les lignes sont masquées
depuis la 4eme jusqu'a la 254eme (qui est actuellement ma dernière
ligne renseignée). N'y aurait-il pas un probleme avec le format de
la date dans la colonne G ?




1 2