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

5 réponses

1 2
Avatar
Vince
Bonjour Denis

En fait ta proc copie toutes les données et celles qui ne devraient pas
l'être ont disparues ???

En fait sur ma proc, les données filtrées sont copiées puis envoyées en
collage spécial "valeurs" sur la feuille "copie", puis retour sur la feuille
"saisie" pour effacement de ces mêmes données, puis tri de la feuille
"saisie".

Merci

"michdenis" a écrit dans le message de
news:
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





Avatar
FxM
Le problème est que la seconde fois, il n'y a rien de montré dans le
filtre puisque toutes les lignes ont déjà été transférées.
Détails en BAL. Tu as du courrier.

@+
FxM



Vince wrote:

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à :
<snip>




Avatar
michdenis
Et ceci :


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
Rg1.ClearContents
.AutoFilter
.Sort Key1:=.Range("C3"), Order1:=xlAscending, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom
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 Denis

En fait ta proc copie toutes les données et celles qui ne devraient pas
l'être ont disparues ???

En fait sur ma proc, les données filtrées sont copiées puis envoyées en
collage spécial "valeurs" sur la feuille "copie", puis retour sur la feuille
"saisie" pour effacement de ces mêmes données, puis tri de la feuille
"saisie".

Merci

"michdenis" a écrit dans le message de
news:
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





Avatar
Vince
Bravo, alors là bravo, cela fonctionne parfaitement,
c'est vraiment génial, ouf, je respire enfin, je vais pouvoir aller prendre
un peu l'air
Des millions de Merci.
Vince

"FxM" a écrit dans le message de
news:%
Le problème est que la seconde fois, il n'y a rien de montré dans le
filtre puisque toutes les lignes ont déjà été transférées.
Détails en BAL. Tu as du courrier.

@+
FxM



Vince wrote:

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à :
<snip>






Avatar
Vince
Re, Denis la proc de François-Xavier fonctione très bien, donc, je vais
garder la tienne "sous le coude", mais merci beaucoup, c'est très sympa de
ta part.

Vince

"michdenis" a écrit dans le message de
news:
Et ceci :


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
Rg1.ClearContents
.AutoFilter
.Sort Key1:=.Range("C3"), Order1:=xlAscending, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom
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 Denis

En fait ta proc copie toutes les données et celles qui ne devraient pas
l'être ont disparues ???

En fait sur ma proc, les données filtrées sont copiées puis envoyées en
collage spécial "valeurs" sur la feuille "copie", puis retour sur la
feuille

"saisie" pour effacement de ces mêmes données, puis tri de la feuille
"saisie".

Merci

"michdenis" a écrit dans le message de
news:
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