OVH Cloud OVH Cloud

pb dans ma procédure

15 réponses
Avatar
Vince
Bonjour à toutes et tous

J'ai un fichier avec une page de "saisie" qui à trois colonne A,B,C
dans la colonne C des dates,
j'essaye en vain de faire en sorte qu'à l'ouverture du fichier les
enregistrements en date d'aujourd'hui et antérieurs basculent sur la feuille
"Copie" puis supprime les données dans la feuille saisie puis trie cette
feuille.
Lorsque je lance la macro la première fois, cela fonctionne, mais après une
deuxième ouverture, cela me fait basculer tous les dossiers même avec des
dates supérieures aux dates du jour. Malgré des tests, je ne comprends pas.
Merci beaucoup
Vince

Sub test_bis()
Application.ScreenUpdating = false
Sheets("Saisie").Select
ActiveSheet.Unprotect Password:="toto"
' filtre_saisis Macro
Range("A2:C201").Select
Selection.AutoFilter Field:=3, Criteria1:="<=" & Date * 1
'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
Range("A3:C201").Select
Selection.Copy
Sheets("Copie").Select
Range("A65536").End(xlUp)(2).Select
Selection.PasteSpecial Paste:=xlPasteValues
Sheets("saisie").Select
Range("A3:C201").ClearContents
Range("A1").Select
Selection.AutoFilter
'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
Range("A3:C201").Select
Selection.Sort Key1:=Range("A3"), Order1:=xlAscending, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("A3").Select
ActiveSheet.Protect Password:="toto"
Sheets("Ouverture").Select
Sheets("Ouverture").Protect Password:="toto"
[B10].Select
Application.ScreenUpdating = True
End Sub

10 réponses

1 2
Avatar
FxM
Bonjour Vince,

La chose qui métonne dans ta procédure est de ne pas voir apparaître un
.SpecialCells(xlCellTypeVisible) pour ne prendre en compte que les
cellules visibles et non la totalité.

@+
FxM



Vince wrote:
Bonjour à toutes et tous

J'ai un fichier avec une page de "saisie" qui à trois colonne A,B,C
dans la colonne C des dates,
j'essaye en vain de faire en sorte qu'à l'ouverture du fichier les
enregistrements en date d'aujourd'hui et antérieurs basculent sur la feuille
"Copie" puis supprime les données dans la feuille saisie puis trie cette
feuille.
Lorsque je lance la macro la première fois, cela fonctionne, mais après une
deuxième ouverture, cela me fait basculer tous les dossiers même avec des
dates supérieures aux dates du jour. Malgré des tests, je ne comprends pas.
Merci beaucoup
Vince

Sub test_bis()
Application.ScreenUpdating = false
Sheets("Saisie").Select
ActiveSheet.Unprotect Password:="toto"
' filtre_saisis Macro
Range("A2:C201").Select
Selection.AutoFilter Field:=3, Criteria1:="<=" & Date * 1
'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
Range("A3:C201").Select
Selection.Copy
Sheets("Copie").Select
Range("A65536").End(xlUp)(2).Select
Selection.PasteSpecial Paste:=xlPasteValues
Sheets("saisie").Select
Range("A3:C201").ClearContents
Range("A1").Select
Selection.AutoFilter
'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
Range("A3:C201").Select
Selection.Sort Key1:=Range("A3"), Order1:=xlAscending, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom
Range("A3").Select
ActiveSheet.Protect Password:="toto"
Sheets("Ouverture").Select
Sheets("Ouverture").Protect Password:="toto"
[B10].Select
Application.ScreenUpdating = True
End Sub




Avatar
E KERGRESSE
Salut Vince, et FXM.

J'ai essayé le filtre sur les dates, cela ne marche pas chez moi non plus
avec ta méthode.

J'ai réussi en modifiant le critère de tri : Criteria1:="<" & CLng(Date) +1,
Operator:=XlAnd


Cordialement.



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

Bonjour à toutes et tous

J'ai un fichier avec une page de "saisie" qui à trois colonne A,B,C
dans la colonne C des dates,
j'essaye en vain de faire en sorte qu'à l'ouverture du fichier les
enregistrements en date d'aujourd'hui et antérieurs basculent sur la
feuille

"Copie" puis supprime les données dans la feuille saisie puis trie cette
feuille.
Lorsque je lance la macro la première fois, cela fonctionne, mais après
une

deuxième ouverture, cela me fait basculer tous les dossiers même avec des
dates supérieures aux dates du jour. Malgré des tests, je ne comprends
pas.

Merci beaucoup
Vince

Sub test_bis()
Application.ScreenUpdating = false
Sheets("Saisie").Select
ActiveSheet.Unprotect Password:="toto"
' filtre_saisis Macro
Range("A2:C201").Select
Selection.AutoFilter Field:=3, Criteria1:="<=" & Date * 1
'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
Range("A3:C201").Select
Selection.Copy
Sheets("Copie").Select
Range("A65536").End(xlUp)(2).Select
Selection.PasteSpecial Paste:=xlPasteValues
Sheets("saisie").Select
Range("A3:C201").ClearContents
Range("A1").Select
Selection.AutoFilter
'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
Range("A3:C201").Select
Selection.Sort Key1:=Range("A3"), Order1:=xlAscending, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom
Range("A3").Select
ActiveSheet.Protect Password:="toto"
Sheets("Ouverture").Select
Sheets("Ouverture").Protect Password:="toto"
[B10].Select
Application.ScreenUpdating = True
End Sub




Avatar
Vince
Bonjour FxM
En fait avec l'enregistreur de macro cela fonctionne,
Où selon toi, dois-je mettre .SpecialCells(xlCellTypeVisible) ?
Merci


"FxM" a écrit dans le message de
news:
Bonjour Vince,

La chose qui métonne dans ta procédure est de ne pas voir apparaître un
.SpecialCells(xlCellTypeVisible) pour ne prendre en compte que les
cellules visibles et non la totalité.

@+
FxM



Vince wrote:
Bonjour à toutes et tous

J'ai un fichier avec une page de "saisie" qui à trois colonne A,B,C
dans la colonne C des dates,
j'essaye en vain de faire en sorte qu'à l'ouverture du fichier les
enregistrements en date d'aujourd'hui et antérieurs basculent sur la
feuille


"Copie" puis supprime les données dans la feuille saisie puis trie cette
feuille.
Lorsque je lance la macro la première fois, cela fonctionne, mais après
une


deuxième ouverture, cela me fait basculer tous les dossiers même avec
des


dates supérieures aux dates du jour. Malgré des tests, je ne comprends
pas.


Merci beaucoup
Vince

Sub test_bis()
Application.ScreenUpdating = false
Sheets("Saisie").Select
ActiveSheet.Unprotect Password:="toto"
' filtre_saisis Macro
Range("A2:C201").Select
Selection.AutoFilter Field:=3, Criteria1:="<=" & Date * 1
'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
Range("A3:C201").Select
Selection.Copy
Sheets("Copie").Select
Range("A65536").End(xlUp)(2).Select
Selection.PasteSpecial Paste:=xlPasteValues
Sheets("saisie").Select
Range("A3:C201").ClearContents
Range("A1").Select
Selection.AutoFilter
'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
Range("A3:C201").Select
Selection.Sort Key1:=Range("A3"), Order1:=xlAscending, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom
Range("A3").Select
ActiveSheet.Protect Password:="toto"
Sheets("Ouverture").Select
Sheets("Ouverture").Protect Password:="toto"
[B10].Select
Application.ScreenUpdating = True
End Sub






Avatar
E KERGRESSE
Pardon,

Criteria1:="<=" & CLng(Date) +1, Operator:=XlAnd

"E KERGRESSE" a écrit dans le message
de news:
Salut Vince, et FXM.

J'ai essayé le filtre sur les dates, cela ne marche pas chez moi non plus
avec ta méthode.

J'ai réussi en modifiant le critère de tri : Criteria1:="<" & CLng(Date)
+1,

Operator:=XlAnd


Cordialement.



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

Bonjour à toutes et tous

J'ai un fichier avec une page de "saisie" qui à trois colonne A,B,C
dans la colonne C des dates,
j'essaye en vain de faire en sorte qu'à l'ouverture du fichier les
enregistrements en date d'aujourd'hui et antérieurs basculent sur la
feuille

"Copie" puis supprime les données dans la feuille saisie puis trie cette
feuille.
Lorsque je lance la macro la première fois, cela fonctionne, mais après
une

deuxième ouverture, cela me fait basculer tous les dossiers même avec
des


dates supérieures aux dates du jour. Malgré des tests, je ne comprends
pas.

Merci beaucoup
Vince

Sub test_bis()
Application.ScreenUpdating = false
Sheets("Saisie").Select
ActiveSheet.Unprotect Password:="toto"
' filtre_saisis Macro
Range("A2:C201").Select
Selection.AutoFilter Field:=3, Criteria1:="<=" & Date * 1
'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
Range("A3:C201").Select
Selection.Copy
Sheets("Copie").Select
Range("A65536").End(xlUp)(2).Select
Selection.PasteSpecial Paste:=xlPasteValues
Sheets("saisie").Select
Range("A3:C201").ClearContents
Range("A1").Select
Selection.AutoFilter
'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
Range("A3:C201").Select
Selection.Sort Key1:=Range("A3"), Order1:=xlAscending, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom
Range("A3").Select
ActiveSheet.Protect Password:="toto"
Sheets("Ouverture").Select
Sheets("Ouverture").Protect Password:="toto"
[B10].Select
Application.ScreenUpdating = True
End Sub








Avatar
Vince
Salut Eric
En fait ma proc fonctionne très bien la première fois, mais dès que je la
relance, elle envoie tout dans l'autre feuille.
Merci


"E KERGRESSE" a écrit dans le message
de news:
Salut Vince, et FXM.

J'ai essayé le filtre sur les dates, cela ne marche pas chez moi non plus
avec ta méthode.

J'ai réussi en modifiant le critère de tri : Criteria1:="<" & CLng(Date)
+1,

Operator:=XlAnd


Cordialement.



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

Bonjour à toutes et tous

J'ai un fichier avec une page de "saisie" qui à trois colonne A,B,C
dans la colonne C des dates,
j'essaye en vain de faire en sorte qu'à l'ouverture du fichier les
enregistrements en date d'aujourd'hui et antérieurs basculent sur la
feuille

"Copie" puis supprime les données dans la feuille saisie puis trie cette
feuille.
Lorsque je lance la macro la première fois, cela fonctionne, mais après
une

deuxième ouverture, cela me fait basculer tous les dossiers même avec
des


dates supérieures aux dates du jour. Malgré des tests, je ne comprends
pas.

Merci beaucoup
Vince

Sub test_bis()
Application.ScreenUpdating = false
Sheets("Saisie").Select
ActiveSheet.Unprotect Password:="toto"
' filtre_saisis Macro
Range("A2:C201").Select
Selection.AutoFilter Field:=3, Criteria1:="<=" & Date * 1
'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
Range("A3:C201").Select
Selection.Copy
Sheets("Copie").Select
Range("A65536").End(xlUp)(2).Select
Selection.PasteSpecial Paste:=xlPasteValues
Sheets("saisie").Select
Range("A3:C201").ClearContents
Range("A1").Select
Selection.AutoFilter
'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
Range("A3:C201").Select
Selection.Sort Key1:=Range("A3"), Order1:=xlAscending, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom
Range("A3").Select
ActiveSheet.Protect Password:="toto"
Sheets("Ouverture").Select
Sheets("Ouverture").Protect Password:="toto"
[B10].Select
Application.ScreenUpdating = True
End Sub








Avatar
FxM
Ca devrait te mener à des choses comme ce qui suit :

Sub test_ter()
Application.ScreenUpdating = False
With Sheets("Saisie")
.Select
.Unprotect Password:="toto"
.Range("A2:C201").Select
Selection.AutoFilter Field:=3, Criteria1:="<=" & Date * 1
with .Range("A3:C201").SpecialCells(xlCellTypeVisible)
.Copy

Sheets("Copie").Activate
Sheets("Copie").Range("A65536").End(xlUp).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues

.Select
' .Range("A3:C201").SpecialCells(xlCellTypeVisible).ClearContents
.ClearContents
end with

.Range("A1").Select
Selection.AutoFilter
.Range("A3:C201").Select
Selection.Sort Key1:=Range("A3"), Order1:=xlAscending, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom
.Range("A3").Select
.Protect Password:="toto"
End With
Sheets("Ouverture").Select
Sheets("Ouverture").Protect Password:="toto"
[B10].Select
Application.ScreenUpdating = True
End Sub

@+
FxM


Vince wrote:

Bonjour FxM
En fait avec l'enregistreur de macro cela fonctionne,
Où selon toi, dois-je mettre .SpecialCells(xlCellTypeVisible) ?
Merci


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

Bonjour Vince,

La chose qui métonne dans ta procédure est de ne pas voir apparaître un
.SpecialCells(xlCellTypeVisible) pour ne prendre en compte que les
cellules visibles et non la totalité.

@+
FxM



Vince wrote:

Bonjour à toutes et tous

J'ai un fichier avec une page de "saisie" qui à trois colonne A,B,C
dans la colonne C des dates,
j'essaye en vain de faire en sorte qu'à l'ouverture du fichier les
enregistrements en date d'aujourd'hui et antérieurs basculent sur la



feuille

"Copie" puis supprime les données dans la feuille saisie puis trie cette
feuille.
Lorsque je lance la macro la première fois, cela fonctionne, mais après



une

deuxième ouverture, cela me fait basculer tous les dossiers même avec



des

dates supérieures aux dates du jour. Malgré des tests, je ne comprends



pas.

Merci beaucoup
Vince

Sub test_bis()
Application.ScreenUpdating = false
Sheets("Saisie").Select
ActiveSheet.Unprotect Password:="toto"
' filtre_saisis Macro
Range("A2:C201").Select
Selection.AutoFilter Field:=3, Criteria1:="<=" & Date * 1
'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
Range("A3:C201").Select
Selection.Copy
Sheets("Copie").Select
Range("A65536").End(xlUp)(2).Select
Selection.PasteSpecial Paste:=xlPasteValues
Sheets("saisie").Select
Range("A3:C201").ClearContents
Range("A1").Select
Selection.AutoFilter
'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
Range("A3:C201").Select
Selection.Sort Key1:=Range("A3"), Order1:=xlAscending, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom
Range("A3").Select
ActiveSheet.Protect Password:="toto"
Sheets("Ouverture").Select
Sheets("Ouverture").Protect Password:="toto"
[B10].Select
Application.ScreenUpdating = True
End Sub











Avatar
Vince
Désolé Francois-Xavier

Merci beaucoup pour ta "prestitude", c'est très sympa de ta part,
mais je pense qu'il y a un problème, je ne comprends pas pourquoi la macro
fonctionne 1 fois et si je la relance, une seconde fois, le critère de date
ne fonctionne plus, et tous passent sur l'autre feuille.
Puis-je t'envoyer un exemple simple ?
Merci
Vince


"FxM" a écrit dans le message de
news:
Ca devrait te mener à des choses comme ce qui suit :

Sub test_ter()
Application.ScreenUpdating = False
With Sheets("Saisie")
.Select
.Unprotect Password:="toto"
.Range("A2:C201").Select
Selection.AutoFilter Field:=3, Criteria1:="<=" & Date * 1
with .Range("A3:C201").SpecialCells(xlCellTypeVisible)
.Copy

Sheets("Copie").Activate
Sheets("Copie").Range("A65536").End(xlUp).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues

.Select
' .Range("A3:C201").SpecialCells(xlCellTypeVisible).ClearContents
.ClearContents
end with

.Range("A1").Select
Selection.AutoFilter
.Range("A3:C201").Select
Selection.Sort Key1:=Range("A3"), Order1:=xlAscending, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom
.Range("A3").Select
.Protect Password:="toto"
End With
Sheets("Ouverture").Select
Sheets("Ouverture").Protect Password:="toto"
[B10].Select
Application.ScreenUpdating = True
End Sub

@+
FxM


Vince wrote:

Bonjour FxM
En fait avec l'enregistreur de macro cela fonctionne,
Où selon toi, dois-je mettre .SpecialCells(xlCellTypeVisible) ?
Merci


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

Bonjour Vince,

La chose qui métonne dans ta procédure est de ne pas voir apparaître un
.SpecialCells(xlCellTypeVisible) pour ne prendre en compte que les
cellules visibles et non la totalité.

@+
FxM



Vince wrote:

Bonjour à toutes et tous

J'ai un fichier avec une page de "saisie" qui à trois colonne A,B,C
dans la colonne C des dates,
j'essaye en vain de faire en sorte qu'à l'ouverture du fichier les
enregistrements en date d'aujourd'hui et antérieurs basculent sur la



feuille

"Copie" puis supprime les données dans la feuille saisie puis trie
cette




feuille.
Lorsque je lance la macro la première fois, cela fonctionne, mais après



une

deuxième ouverture, cela me fait basculer tous les dossiers même avec



des

dates supérieures aux dates du jour. Malgré des tests, je ne comprends



pas.

Merci beaucoup
Vince

Sub test_bis()
Application.ScreenUpdating = false
Sheets("Saisie").Select
ActiveSheet.Unprotect Password:="toto"
' filtre_saisis Macro
Range("A2:C201").Select
Selection.AutoFilter Field:=3, Criteria1:="<=" & Date * 1
'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
Range("A3:C201").Select
Selection.Copy
Sheets("Copie").Select
Range("A65536").End(xlUp)(2).Select
Selection.PasteSpecial Paste:=xlPasteValues
Sheets("saisie").Select
Range("A3:C201").ClearContents
Range("A1").Select
Selection.AutoFilter
'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
Range("A3:C201").Select
Selection.Sort Key1:=Range("A3"), Order1:=xlAscending, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom
Range("A3").Select
ActiveSheet.Protect Password:="toto"
Sheets("Ouverture").Select
Sheets("Ouverture").Protect Password:="toto"
[B10].Select
Application.ScreenUpdating = True
End Sub













Avatar
FxM
No blème, tu peux l'envoyer là :
http://cerbermail.com/?XvGWuMta7j


@+
FxM



Vince wrote:

Désolé Francois-Xavier

Merci beaucoup pour ta "prestitude", c'est très sympa de ta part,
mais je pense qu'il y a un problème, je ne comprends pas pourquoi la macro
fonctionne 1 fois et si je la relance, une seconde fois, le critère de date
ne fonctionne plus, et tous passent sur l'autre feuille.
Puis-je t'envoyer un exemple simple ?
Merci
Vince


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

Ca devrait te mener à des choses comme ce qui suit :

Sub test_ter()
Application.ScreenUpdating = False
With Sheets("Saisie")
.Select
.Unprotect Password:="toto"
.Range("A2:C201").Select
Selection.AutoFilter Field:=3, Criteria1:="<=" & Date * 1
with .Range("A3:C201").SpecialCells(xlCellTypeVisible)
.Copy

Sheets("Copie").Activate
Sheets("Copie").Range("A65536").End(xlUp).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues

.Select
' .Range("A3:C201").SpecialCells(xlCellTypeVisible).ClearContents
.ClearContents
end with

.Range("A1").Select
Selection.AutoFilter
.Range("A3:C201").Select
Selection.Sort Key1:=Range("A3"), Order1:=xlAscending, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom
.Range("A3").Select
.Protect Password:="toto"
End With
Sheets("Ouverture").Select
Sheets("Ouverture").Protect Password:="toto"
[B10].Select
Application.ScreenUpdating = True
End Sub

@+
FxM


Vince wrote:


Bonjour FxM
En fait avec l'enregistreur de macro cela fonctionne,
Où selon toi, dois-je mettre .SpecialCells(xlCellTypeVisible) ?
Merci


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


Bonjour Vince,

La chose qui métonne dans ta procédure est de ne pas voir apparaître un
.SpecialCells(xlCellTypeVisible) pour ne prendre en compte que les
cellules visibles et non la totalité.

@+
FxM



Vince wrote:


Bonjour à toutes et tous

J'ai un fichier avec une page de "saisie" qui à trois colonne A,B,C
dans la colonne C des dates,
j'essaye en vain de faire en sorte qu'à l'ouverture du fichier les
enregistrements en date d'aujourd'hui et antérieurs basculent sur la



feuille


"Copie" puis supprime les données dans la feuille saisie puis trie





cette

feuille.
Lorsque je lance la macro la première fois, cela fonctionne, mais après



une


deuxième ouverture, cela me fait basculer tous les dossiers même avec



des


dates supérieures aux dates du jour. Malgré des tests, je ne comprends



pas.


Merci beaucoup
Vince

Sub test_bis()
Application.ScreenUpdating = false
Sheets("Saisie").Select
ActiveSheet.Unprotect Password:="toto"
' filtre_saisis Macro
Range("A2:C201").Select
Selection.AutoFilter Field:=3, Criteria1:="<=" & Date * 1
'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
Range("A3:C201").Select
Selection.Copy
Sheets("Copie").Select
Range("A65536").End(xlUp)(2).Select
Selection.PasteSpecial Paste:=xlPasteValues
Sheets("saisie").Select
Range("A3:C201").ClearContents
Range("A1").Select
Selection.AutoFilter
'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
Range("A3:C201").Select
Selection.Sort Key1:=Range("A3"), Order1:=xlAscending, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom
Range("A3").Select
ActiveSheet.Protect Password:="toto"
Sheets("Ouverture").Select
Sheets("Ouverture").Protect Password:="toto"
[B10].Select
Application.ScreenUpdating = True
End Sub

















Avatar
Vince
Ok, c'est vraiment très sympa de ta part

"FxM" a écrit dans le message de
news:
No blème, tu peux l'envoyer là :
http://cerbermail.com/?XvGWuMta7j


@+
FxM



Vince wrote:

Désolé Francois-Xavier

Merci beaucoup pour ta "prestitude", c'est très sympa de ta part,
mais je pense qu'il y a un problème, je ne comprends pas pourquoi la
macro


fonctionne 1 fois et si je la relance, une seconde fois, le critère de
date


ne fonctionne plus, et tous passent sur l'autre feuille.
Puis-je t'envoyer un exemple simple ?
Merci
Vince


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

Ca devrait te mener à des choses comme ce qui suit :

Sub test_ter()
Application.ScreenUpdating = False
With Sheets("Saisie")
.Select
.Unprotect Password:="toto"
.Range("A2:C201").Select
Selection.AutoFilter Field:=3, Criteria1:="<=" & Date * 1
with .Range("A3:C201").SpecialCells(xlCellTypeVisible)
.Copy

Sheets("Copie").Activate
Sheets("Copie").Range("A65536").End(xlUp).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues

.Select
' .Range("A3:C201").SpecialCells(xlCellTypeVisible).ClearContents
.ClearContents
end with

.Range("A1").Select
Selection.AutoFilter
.Range("A3:C201").Select
Selection.Sort Key1:=Range("A3"), Order1:=xlAscending, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom
.Range("A3").Select
.Protect Password:="toto"
End With
Sheets("Ouverture").Select
Sheets("Ouverture").Protect Password:="toto"
[B10].Select
Application.ScreenUpdating = True
End Sub

@+
FxM


Vince wrote:


Bonjour FxM
En fait avec l'enregistreur de macro cela fonctionne,
Où selon toi, dois-je mettre .SpecialCells(xlCellTypeVisible) ?
Merci


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


Bonjour Vince,

La chose qui métonne dans ta procédure est de ne pas voir apparaître
un





.SpecialCells(xlCellTypeVisible) pour ne prendre en compte que les
cellules visibles et non la totalité.

@+
FxM



Vince wrote:


Bonjour à toutes et tous

J'ai un fichier avec une page de "saisie" qui à trois colonne A,B,C
dans la colonne C des dates,
j'essaye en vain de faire en sorte qu'à l'ouverture du fichier les
enregistrements en date d'aujourd'hui et antérieurs basculent sur la



feuille


"Copie" puis supprime les données dans la feuille saisie puis trie





cette

feuille.
Lorsque je lance la macro la première fois, cela fonctionne, mais
après







une


deuxième ouverture, cela me fait basculer tous les dossiers même avec



des


dates supérieures aux dates du jour. Malgré des tests, je ne
comprends







pas.


Merci beaucoup
Vince

Sub test_bis()
Application.ScreenUpdating = false
Sheets("Saisie").Select
ActiveSheet.Unprotect Password:="toto"
' filtre_saisis Macro
Range("A2:C201").Select
Selection.AutoFilter Field:=3, Criteria1:="<=" & Date * 1
'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
Range("A3:C201").Select
Selection.Copy
Sheets("Copie").Select
Range("A65536").End(xlUp)(2).Select
Selection.PasteSpecial Paste:=xlPasteValues
Sheets("saisie").Select
Range("A3:C201").ClearContents
Range("A1").Select
Selection.AutoFilter
'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
Range("A3:C201").Select
Selection.Sort Key1:=Range("A3"), Order1:=xlAscending, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom
Range("A3").Select
ActiveSheet.Protect Password:="toto"
Sheets("Ouverture").Select
Sheets("Ouverture").Protect Password:="toto"
[B10].Select
Application.ScreenUpdating = True
End Sub



















Avatar
michdenis
Bonjour Vince,

Ta procédure pourrait ressembler à ceci :

Il y a un détail que je n'ai pas compris dans ta procédure, c'est après avoir effacé les données dans la feuille saisie,
il y a des lignes de code servant à trier ces mêmes données.... Comment est-ce possible ?

Lorsque tu copies seulement les valeurs, si ce sont des dates, dans la plage de destination apparaîtra la valeur
numérique de ces dates à moins que tu ais déjà formaté la colonne dans un format "Date" désiré ou que tu ajoutes une
ligne de code pour le faire ...

'----------------------------------------
Sub test_bis()

Dim Rg As Range, Rg1 As Range
Dim Rg2 As Range, F As String

Application.ScreenUpdating = False
F = ActiveSheet.Name
With Worksheets("Saisie")
.Unprotect Password:="toto"
With .Range("A2:C" & Range("C65536").End(xlUp).Row)
.AutoFilter Field:=3, Criteria1:="<=" & _
Format(Date, "m/d/yyyy")
Set Rg = .Range("_FilterDataBase")
Set Rg1 = Rg.Offset(1).Resize(Rg.Rows.Count - 1, _
Rg.Columns.Count).SpecialCells(xlCellTypeVisible)
With Worksheets("Copie")
.Activate
Set Rg2 = .Range("A" & .Range("C65536").End(xlUp)(2).Row)
Rg1.Copy
Rg2.PasteSpecial Paste:=xlPasteValues
Rg2(1, 1).Select
Application.Goto Rg2, True
Application.CutCopyMode = False
End With
.AutoFilter
.Offset(1).ClearContents
End With
.Protect
End With
Worksheets(F).Select
Set Rg = Nothing: Set Rg1 = Nothing: Set Rg2 = Nothing
End Sub
'----------------------------------------


Salutations!




"Vince" a écrit dans le message de news:
Bonjour à toutes et tous

J'ai un fichier avec une page de "saisie" qui à trois colonne A,B,C
dans la colonne C des dates,
j'essaye en vain de faire en sorte qu'à l'ouverture du fichier les
enregistrements en date d'aujourd'hui et antérieurs basculent sur la feuille
"Copie" puis supprime les données dans la feuille saisie puis trie cette
feuille.
Lorsque je lance la macro la première fois, cela fonctionne, mais après une
deuxième ouverture, cela me fait basculer tous les dossiers même avec des
dates supérieures aux dates du jour. Malgré des tests, je ne comprends pas.
Merci beaucoup
Vince

Sub test_bis()
Application.ScreenUpdating = false
Sheets("Saisie").Select
ActiveSheet.Unprotect Password:="toto"
' filtre_saisis Macro
Range("A2:C201").Select
Selection.AutoFilter Field:=3, Criteria1:="<=" & Date * 1
'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
Range("A3:C201").Select
Selection.Copy
Sheets("Copie").Select
Range("A65536").End(xlUp)(2).Select
Selection.PasteSpecial Paste:=xlPasteValues
Sheets("saisie").Select
Range("A3:C201").ClearContents
Range("A1").Select
Selection.AutoFilter
'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
Range("A3:C201").Select
Selection.Sort Key1:=Range("A3"), Order1:=xlAscending, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom
Range("A3").Select
ActiveSheet.Protect Password:="toto"
Sheets("Ouverture").Select
Sheets("Ouverture").Protect Password:="toto"
[B10].Select
Application.ScreenUpdating = True
End Sub
1 2