Bonjour,
j'ai créé une macro qui s'exécute automatiquement à l'ouverture de mon
classeur en l'appelant dans ThisWorkbook avec un Workbook_Open().
Le problème est qu'excel refuse de me l'ouvrir lorsque je mets une
protection sur ma feuille. Y a-t-il un moyen de contourner cela et de faire
exécuter ma macro à l'ouverture de ma feuille malgré la protection?
Merci pour vos propositions.
Porter *
Bonjour,
j'ai créé une macro qui s'exécute automatiquement à l'ouverture de mon
classeur en l'appelant dans ThisWorkbook avec un Workbook_Open().
Le problème est qu'excel refuse de me l'ouvrir lorsque je mets une
protection sur ma feuille. Y a-t-il un moyen de contourner cela et de faire
exécuter ma macro à l'ouverture de ma feuille malgré la protection?
Merci pour vos propositions.
Porter *
Bonjour,
j'ai créé une macro qui s'exécute automatiquement à l'ouverture de mon
classeur en l'appelant dans ThisWorkbook avec un Workbook_Open().
Le problème est qu'excel refuse de me l'ouvrir lorsque je mets une
protection sur ma feuille. Y a-t-il un moyen de contourner cela et de faire
exécuter ma macro à l'ouverture de ma feuille malgré la protection?
Merci pour vos propositions.
Porter *
bonjour Porter,
Private Sub Workbook_Open()
Sheets("Feuil1").Unprotect Password:="zaza"
' ta macro
Sheets("Feuil1").Protect Password:="zaza"
End Sub
isabelleBonjour,
j'ai créé une macro qui s'exécute automatiquement à l'ouverture de mon
classeur en l'appelant dans ThisWorkbook avec un Workbook_Open().
Le problème est qu'excel refuse de me l'ouvrir lorsque je mets une
protection sur ma feuille. Y a-t-il un moyen de contourner cela et de faire
exécuter ma macro à l'ouverture de ma feuille malgré la protection?
Merci pour vos propositions.
Porter *
bonjour Porter,
Private Sub Workbook_Open()
Sheets("Feuil1").Unprotect Password:="zaza"
' ta macro
Sheets("Feuil1").Protect Password:="zaza"
End Sub
isabelle
Bonjour,
j'ai créé une macro qui s'exécute automatiquement à l'ouverture de mon
classeur en l'appelant dans ThisWorkbook avec un Workbook_Open().
Le problème est qu'excel refuse de me l'ouvrir lorsque je mets une
protection sur ma feuille. Y a-t-il un moyen de contourner cela et de faire
exécuter ma macro à l'ouverture de ma feuille malgré la protection?
Merci pour vos propositions.
Porter *
bonjour Porter,
Private Sub Workbook_Open()
Sheets("Feuil1").Unprotect Password:="zaza"
' ta macro
Sheets("Feuil1").Protect Password:="zaza"
End Sub
isabelleBonjour,
j'ai créé une macro qui s'exécute automatiquement à l'ouverture de mon
classeur en l'appelant dans ThisWorkbook avec un Workbook_Open().
Le problème est qu'excel refuse de me l'ouvrir lorsque je mets une
protection sur ma feuille. Y a-t-il un moyen de contourner cela et de faire
exécuter ma macro à l'ouverture de ma feuille malgré la protection?
Merci pour vos propositions.
Porter *
bonjour Porter,
Private Sub Workbook_Open()
Sheets("Feuil1").Unprotect Password:="zaza"
' ta macro
Sheets("Feuil1").Protect Password:="zaza"
End Sub
isabelleBonjour,
j'ai créé une macro qui s'exécute automatiquement à l'ouverture de mon
classeur en l'appelant dans ThisWorkbook avec un Workbook_Open().
Le problème est qu'excel refuse de me l'ouvrir lorsque je mets une
protection sur ma feuille. Y a-t-il un moyen de contourner cela et de faire
exécuter ma macro à l'ouverture de ma feuille malgré la protection?
Merci pour vos propositions.
Porter *
bonjour Porter,
Private Sub Workbook_Open()
Sheets("Feuil1").Unprotect Password:="zaza"
' ta macro
Sheets("Feuil1").Protect Password:="zaza"
End Sub
isabelle
Bonjour,
j'ai créé une macro qui s'exécute automatiquement à l'ouverture de mon
classeur en l'appelant dans ThisWorkbook avec un Workbook_Open().
Le problème est qu'excel refuse de me l'ouvrir lorsque je mets une
protection sur ma feuille. Y a-t-il un moyen de contourner cela et de faire
exécuter ma macro à l'ouverture de ma feuille malgré la protection?
Merci pour vos propositions.
Porter *
bonjour Porter,
Private Sub Workbook_Open()
Sheets("Feuil1").Unprotect Password:="zaza"
' ta macro
Sheets("Feuil1").Protect Password:="zaza"
End Sub
isabelleBonjour,
j'ai créé une macro qui s'exécute automatiquement à l'ouverture de mon
classeur en l'appelant dans ThisWorkbook avec un Workbook_Open().
Le problème est qu'excel refuse de me l'ouvrir lorsque je mets une
protection sur ma feuille. Y a-t-il un moyen de contourner cela et de faire
exécuter ma macro à l'ouverture de ma feuille malgré la protection?
Merci pour vos propositions.
Porter *
C'est encore moi. Je vois que tu as répondu à Pierref (juste en dessous de
moi) sur le sujet que je viens de te demander. Je vais d'abord tenter kom tu
le lui a dit mais cette méthode marche-t-elle lorsqu'on veut carrément
changer de fichier (pas le même classeur). Et aussi, de quelle manière
rentre-t-on le nom du fichier source?
Merci encore de ta disponibilité.
Porterbonjour Porter,
Private Sub Workbook_Open()
Sheets("Feuil1").Unprotect Password:="zaza"
' ta macro
Sheets("Feuil1").Protect Password:="zaza"
End Sub
isabelleBonjour,
j'ai créé une macro qui s'exécute automatiquement à l'ouverture de mon
classeur en l'appelant dans ThisWorkbook avec un Workbook_Open().
Le problème est qu'excel refuse de me l'ouvrir lorsque je mets une
protection sur ma feuille. Y a-t-il un moyen de contourner cela et de faire
exécuter ma macro à l'ouverture de ma feuille malgré la protection?
Merci pour vos propositions.
Porter *
C'est encore moi. Je vois que tu as répondu à Pierref (juste en dessous de
moi) sur le sujet que je viens de te demander. Je vais d'abord tenter kom tu
le lui a dit mais cette méthode marche-t-elle lorsqu'on veut carrément
changer de fichier (pas le même classeur). Et aussi, de quelle manière
rentre-t-on le nom du fichier source?
Merci encore de ta disponibilité.
Porter
bonjour Porter,
Private Sub Workbook_Open()
Sheets("Feuil1").Unprotect Password:="zaza"
' ta macro
Sheets("Feuil1").Protect Password:="zaza"
End Sub
isabelle
Bonjour,
j'ai créé une macro qui s'exécute automatiquement à l'ouverture de mon
classeur en l'appelant dans ThisWorkbook avec un Workbook_Open().
Le problème est qu'excel refuse de me l'ouvrir lorsque je mets une
protection sur ma feuille. Y a-t-il un moyen de contourner cela et de faire
exécuter ma macro à l'ouverture de ma feuille malgré la protection?
Merci pour vos propositions.
Porter *
C'est encore moi. Je vois que tu as répondu à Pierref (juste en dessous de
moi) sur le sujet que je viens de te demander. Je vais d'abord tenter kom tu
le lui a dit mais cette méthode marche-t-elle lorsqu'on veut carrément
changer de fichier (pas le même classeur). Et aussi, de quelle manière
rentre-t-on le nom du fichier source?
Merci encore de ta disponibilité.
Porterbonjour Porter,
Private Sub Workbook_Open()
Sheets("Feuil1").Unprotect Password:="zaza"
' ta macro
Sheets("Feuil1").Protect Password:="zaza"
End Sub
isabelleBonjour,
j'ai créé une macro qui s'exécute automatiquement à l'ouverture de mon
classeur en l'appelant dans ThisWorkbook avec un Workbook_Open().
Le problème est qu'excel refuse de me l'ouvrir lorsque je mets une
protection sur ma feuille. Y a-t-il un moyen de contourner cela et de faire
exécuter ma macro à l'ouverture de ma feuille malgré la protection?
Merci pour vos propositions.
Porter *
bonjour Porter,
une fois la plage filtrée,
Set Source =
Workbooks("zaza1.xls").Sheets("Feuil5").Range("A1").CurrentRegion
Set dest = Workbooks("zaza2.xls").Sheets("Feuil4")
Source.Copy _
Destination:Þst.Range("A1")
isabelleC'est encore moi. Je vois que tu as répondu à Pierref (juste en dessous de
moi) sur le sujet que je viens de te demander. Je vais d'abord tenter kom tu
le lui a dit mais cette méthode marche-t-elle lorsqu'on veut carrément
changer de fichier (pas le même classeur). Et aussi, de quelle manière
rentre-t-on le nom du fichier source?
Merci encore de ta disponibilité.
Porterbonjour Porter,
Private Sub Workbook_Open()
Sheets("Feuil1").Unprotect Password:="zaza"
' ta macro
Sheets("Feuil1").Protect Password:="zaza"
End Sub
isabelleBonjour,
j'ai créé une macro qui s'exécute automatiquement à l'ouverture de mon
classeur en l'appelant dans ThisWorkbook avec un Workbook_Open().
Le problème est qu'excel refuse de me l'ouvrir lorsque je mets une
protection sur ma feuille. Y a-t-il un moyen de contourner cela et de faire
exécuter ma macro à l'ouverture de ma feuille malgré la protection?
Merci pour vos propositions.
Porter *
bonjour Porter,
une fois la plage filtrée,
Set Source =
Workbooks("zaza1.xls").Sheets("Feuil5").Range("A1").CurrentRegion
Set dest = Workbooks("zaza2.xls").Sheets("Feuil4")
Source.Copy _
Destination:Þst.Range("A1")
isabelle
C'est encore moi. Je vois que tu as répondu à Pierref (juste en dessous de
moi) sur le sujet que je viens de te demander. Je vais d'abord tenter kom tu
le lui a dit mais cette méthode marche-t-elle lorsqu'on veut carrément
changer de fichier (pas le même classeur). Et aussi, de quelle manière
rentre-t-on le nom du fichier source?
Merci encore de ta disponibilité.
Porter
bonjour Porter,
Private Sub Workbook_Open()
Sheets("Feuil1").Unprotect Password:="zaza"
' ta macro
Sheets("Feuil1").Protect Password:="zaza"
End Sub
isabelle
Bonjour,
j'ai créé une macro qui s'exécute automatiquement à l'ouverture de mon
classeur en l'appelant dans ThisWorkbook avec un Workbook_Open().
Le problème est qu'excel refuse de me l'ouvrir lorsque je mets une
protection sur ma feuille. Y a-t-il un moyen de contourner cela et de faire
exécuter ma macro à l'ouverture de ma feuille malgré la protection?
Merci pour vos propositions.
Porter *
bonjour Porter,
une fois la plage filtrée,
Set Source =
Workbooks("zaza1.xls").Sheets("Feuil5").Range("A1").CurrentRegion
Set dest = Workbooks("zaza2.xls").Sheets("Feuil4")
Source.Copy _
Destination:Þst.Range("A1")
isabelleC'est encore moi. Je vois que tu as répondu à Pierref (juste en dessous de
moi) sur le sujet que je viens de te demander. Je vais d'abord tenter kom tu
le lui a dit mais cette méthode marche-t-elle lorsqu'on veut carrément
changer de fichier (pas le même classeur). Et aussi, de quelle manière
rentre-t-on le nom du fichier source?
Merci encore de ta disponibilité.
Porterbonjour Porter,
Private Sub Workbook_Open()
Sheets("Feuil1").Unprotect Password:="zaza"
' ta macro
Sheets("Feuil1").Protect Password:="zaza"
End Sub
isabelleBonjour,
j'ai créé une macro qui s'exécute automatiquement à l'ouverture de mon
classeur en l'appelant dans ThisWorkbook avec un Workbook_Open().
Le problème est qu'excel refuse de me l'ouvrir lorsque je mets une
protection sur ma feuille. Y a-t-il un moyen de contourner cela et de faire
exécuter ma macro à l'ouverture de ma feuille malgré la protection?
Merci pour vos propositions.
Porter *
J'ai essayé ta technique pour le filtre, mais il y a qqch qui me bloque: le
CritèreFiltre=InputBox("Critère du filtre, colonne Nom (1)") me pose
problème. J'aurais voulu prédéfinir mon critère dans ma macro et non dans une
InputBox.
En plus, je n'arrive pas à l'utiliser. Ne peut-on pas définir le critère
directement? Genre le critère se trouve dans la colonne12 (intitulée "NOM")
lorsque la cellule affiche "DUPONT".
Merci.
Aussi, un autre renseignement: le Range("A1") signifie que le filtre
s'applique à partir de la cellule A1? Donc on peut modifier le départ dans le
fichier source et la copie dans le fichier de destination? C'est à dire que
la copie commence à partir de la cellule A12 par exemple?bonjour Porter,
une fois la plage filtrée,
Set Source =
Workbooks("zaza1.xls").Sheets("Feuil5").Range("A1").CurrentRegion
Set dest = Workbooks("zaza2.xls").Sheets("Feuil4")
Source.Copy _
Destination:Þst.Range("A1")
isabelleC'est encore moi. Je vois que tu as répondu à Pierref (juste en dessous de
moi) sur le sujet que je viens de te demander. Je vais d'abord tenter kom tu
le lui a dit mais cette méthode marche-t-elle lorsqu'on veut carrément
changer de fichier (pas le même classeur). Et aussi, de quelle manière
rentre-t-on le nom du fichier source?
Merci encore de ta disponibilité.
Porterbonjour Porter,
Private Sub Workbook_Open()
Sheets("Feuil1").Unprotect Password:="zaza"
' ta macro
Sheets("Feuil1").Protect Password:="zaza"
End Sub
isabelleBonjour,
j'ai créé une macro qui s'exécute automatiquement à l'ouverture de mon
classeur en l'appelant dans ThisWorkbook avec un Workbook_Open().
Le problème est qu'excel refuse de me l'ouvrir lorsque je mets une
protection sur ma feuille. Y a-t-il un moyen de contourner cela et de faire
exécuter ma macro à l'ouverture de ma feuille malgré la protection?
Merci pour vos propositions.
Porter *
J'ai essayé ta technique pour le filtre, mais il y a qqch qui me bloque: le
CritèreFiltre=InputBox("Critère du filtre, colonne Nom (1)") me pose
problème. J'aurais voulu prédéfinir mon critère dans ma macro et non dans une
InputBox.
En plus, je n'arrive pas à l'utiliser. Ne peut-on pas définir le critère
directement? Genre le critère se trouve dans la colonne12 (intitulée "NOM")
lorsque la cellule affiche "DUPONT".
Merci.
Aussi, un autre renseignement: le Range("A1") signifie que le filtre
s'applique à partir de la cellule A1? Donc on peut modifier le départ dans le
fichier source et la copie dans le fichier de destination? C'est à dire que
la copie commence à partir de la cellule A12 par exemple?
bonjour Porter,
une fois la plage filtrée,
Set Source =
Workbooks("zaza1.xls").Sheets("Feuil5").Range("A1").CurrentRegion
Set dest = Workbooks("zaza2.xls").Sheets("Feuil4")
Source.Copy _
Destination:Þst.Range("A1")
isabelle
C'est encore moi. Je vois que tu as répondu à Pierref (juste en dessous de
moi) sur le sujet que je viens de te demander. Je vais d'abord tenter kom tu
le lui a dit mais cette méthode marche-t-elle lorsqu'on veut carrément
changer de fichier (pas le même classeur). Et aussi, de quelle manière
rentre-t-on le nom du fichier source?
Merci encore de ta disponibilité.
Porter
bonjour Porter,
Private Sub Workbook_Open()
Sheets("Feuil1").Unprotect Password:="zaza"
' ta macro
Sheets("Feuil1").Protect Password:="zaza"
End Sub
isabelle
Bonjour,
j'ai créé une macro qui s'exécute automatiquement à l'ouverture de mon
classeur en l'appelant dans ThisWorkbook avec un Workbook_Open().
Le problème est qu'excel refuse de me l'ouvrir lorsque je mets une
protection sur ma feuille. Y a-t-il un moyen de contourner cela et de faire
exécuter ma macro à l'ouverture de ma feuille malgré la protection?
Merci pour vos propositions.
Porter *
J'ai essayé ta technique pour le filtre, mais il y a qqch qui me bloque: le
CritèreFiltre=InputBox("Critère du filtre, colonne Nom (1)") me pose
problème. J'aurais voulu prédéfinir mon critère dans ma macro et non dans une
InputBox.
En plus, je n'arrive pas à l'utiliser. Ne peut-on pas définir le critère
directement? Genre le critère se trouve dans la colonne12 (intitulée "NOM")
lorsque la cellule affiche "DUPONT".
Merci.
Aussi, un autre renseignement: le Range("A1") signifie que le filtre
s'applique à partir de la cellule A1? Donc on peut modifier le départ dans le
fichier source et la copie dans le fichier de destination? C'est à dire que
la copie commence à partir de la cellule A12 par exemple?bonjour Porter,
une fois la plage filtrée,
Set Source =
Workbooks("zaza1.xls").Sheets("Feuil5").Range("A1").CurrentRegion
Set dest = Workbooks("zaza2.xls").Sheets("Feuil4")
Source.Copy _
Destination:Þst.Range("A1")
isabelleC'est encore moi. Je vois que tu as répondu à Pierref (juste en dessous de
moi) sur le sujet que je viens de te demander. Je vais d'abord tenter kom tu
le lui a dit mais cette méthode marche-t-elle lorsqu'on veut carrément
changer de fichier (pas le même classeur). Et aussi, de quelle manière
rentre-t-on le nom du fichier source?
Merci encore de ta disponibilité.
Porterbonjour Porter,
Private Sub Workbook_Open()
Sheets("Feuil1").Unprotect Password:="zaza"
' ta macro
Sheets("Feuil1").Protect Password:="zaza"
End Sub
isabelleBonjour,
j'ai créé une macro qui s'exécute automatiquement à l'ouverture de mon
classeur en l'appelant dans ThisWorkbook avec un Workbook_Open().
Le problème est qu'excel refuse de me l'ouvrir lorsque je mets une
protection sur ma feuille. Y a-t-il un moyen de contourner cela et de faire
exécuter ma macro à l'ouverture de ma feuille malgré la protection?
Merci pour vos propositions.
Porter *
re bonjour Porter,
tu peut modifier comme ça,
CritèreFiltre = "DUPONT"
Nom = Application.Match("Nom", Rows(12), 0)
If Not Range("A12").AutoFilter Then Range("A12").AutoFilter
Range("A12").AutoFilter Field:=Nom, Criteria1:="" & CritèreFiltre
pour sélectionner la plage filtrer, s'il n'y a pas de données sur la
ligne 11
Range("A12").CurrentRegion
fera l'affaire. sinon tu peut déterminer cette plage par:
set plg = Sheets("Feuil1").AutoFilter.Range.SpecialCells(xlCellTypeVisible)
tu peut aussi déterminer la 1èr ou 2èm ligne ainsi que la dernère ligne
du filtre,
Dim PremLigne As Long, DerLigne As Long
With Sheets("Feuil1").AutoFilter.Range.SpecialCells(xlCellTypeVisible)
If .Areas(1).Rows.Count > 1 Then PremLigne = .Rows(2).Row _
Else PremLigne = .Areas(2).Row
'au cas ou
DerLigne = .Areas(.Areas.Count)(.Areas(.Areas.Count).Count).Row
MsgBox "Première ligne visible : " & PremLigne
MsgBox "Dernière ligne visible : " & DerLigne
End With
Range("A" & PremLigne).Select
isabelleJ'ai essayé ta technique pour le filtre, mais il y a qqch qui me bloque: le
CritèreFiltre=InputBox("Critère du filtre, colonne Nom (1)") me pose
problème. J'aurais voulu prédéfinir mon critère dans ma macro et non dans une
InputBox.
En plus, je n'arrive pas à l'utiliser. Ne peut-on pas définir le critère
directement? Genre le critère se trouve dans la colonne12 (intitulée "NOM")
lorsque la cellule affiche "DUPONT".
Merci.
Aussi, un autre renseignement: le Range("A1") signifie que le filtre
s'applique à partir de la cellule A1? Donc on peut modifier le départ dans le
fichier source et la copie dans le fichier de destination? C'est à dire que
la copie commence à partir de la cellule A12 par exemple?bonjour Porter,
une fois la plage filtrée,
Set Source =
Workbooks("zaza1.xls").Sheets("Feuil5").Range("A1").CurrentRegion
Set dest = Workbooks("zaza2.xls").Sheets("Feuil4")
Source.Copy _
Destination:Þst.Range("A1")
isabelleC'est encore moi. Je vois que tu as répondu à Pierref (juste en dessous de
moi) sur le sujet que je viens de te demander. Je vais d'abord tenter kom tu
le lui a dit mais cette méthode marche-t-elle lorsqu'on veut carrément
changer de fichier (pas le même classeur). Et aussi, de quelle manière
rentre-t-on le nom du fichier source?
Merci encore de ta disponibilité.
Porterbonjour Porter,
Private Sub Workbook_Open()
Sheets("Feuil1").Unprotect Password:="zaza"
' ta macro
Sheets("Feuil1").Protect Password:="zaza"
End Sub
isabelleBonjour,
j'ai créé une macro qui s'exécute automatiquement à l'ouverture de mon
classeur en l'appelant dans ThisWorkbook avec un Workbook_Open().
Le problème est qu'excel refuse de me l'ouvrir lorsque je mets une
protection sur ma feuille. Y a-t-il un moyen de contourner cela et de faire
exécuter ma macro à l'ouverture de ma feuille malgré la protection?
Merci pour vos propositions.
Porter *
re bonjour Porter,
tu peut modifier comme ça,
CritèreFiltre = "DUPONT"
Nom = Application.Match("Nom", Rows(12), 0)
If Not Range("A12").AutoFilter Then Range("A12").AutoFilter
Range("A12").AutoFilter Field:=Nom, Criteria1:="" & CritèreFiltre
pour sélectionner la plage filtrer, s'il n'y a pas de données sur la
ligne 11
Range("A12").CurrentRegion
fera l'affaire. sinon tu peut déterminer cette plage par:
set plg = Sheets("Feuil1").AutoFilter.Range.SpecialCells(xlCellTypeVisible)
tu peut aussi déterminer la 1èr ou 2èm ligne ainsi que la dernère ligne
du filtre,
Dim PremLigne As Long, DerLigne As Long
With Sheets("Feuil1").AutoFilter.Range.SpecialCells(xlCellTypeVisible)
If .Areas(1).Rows.Count > 1 Then PremLigne = .Rows(2).Row _
Else PremLigne = .Areas(2).Row
'au cas ou
DerLigne = .Areas(.Areas.Count)(.Areas(.Areas.Count).Count).Row
MsgBox "Première ligne visible : " & PremLigne
MsgBox "Dernière ligne visible : " & DerLigne
End With
Range("A" & PremLigne).Select
isabelle
J'ai essayé ta technique pour le filtre, mais il y a qqch qui me bloque: le
CritèreFiltre=InputBox("Critère du filtre, colonne Nom (1)") me pose
problème. J'aurais voulu prédéfinir mon critère dans ma macro et non dans une
InputBox.
En plus, je n'arrive pas à l'utiliser. Ne peut-on pas définir le critère
directement? Genre le critère se trouve dans la colonne12 (intitulée "NOM")
lorsque la cellule affiche "DUPONT".
Merci.
Aussi, un autre renseignement: le Range("A1") signifie que le filtre
s'applique à partir de la cellule A1? Donc on peut modifier le départ dans le
fichier source et la copie dans le fichier de destination? C'est à dire que
la copie commence à partir de la cellule A12 par exemple?
bonjour Porter,
une fois la plage filtrée,
Set Source =
Workbooks("zaza1.xls").Sheets("Feuil5").Range("A1").CurrentRegion
Set dest = Workbooks("zaza2.xls").Sheets("Feuil4")
Source.Copy _
Destination:Þst.Range("A1")
isabelle
C'est encore moi. Je vois que tu as répondu à Pierref (juste en dessous de
moi) sur le sujet que je viens de te demander. Je vais d'abord tenter kom tu
le lui a dit mais cette méthode marche-t-elle lorsqu'on veut carrément
changer de fichier (pas le même classeur). Et aussi, de quelle manière
rentre-t-on le nom du fichier source?
Merci encore de ta disponibilité.
Porter
bonjour Porter,
Private Sub Workbook_Open()
Sheets("Feuil1").Unprotect Password:="zaza"
' ta macro
Sheets("Feuil1").Protect Password:="zaza"
End Sub
isabelle
Bonjour,
j'ai créé une macro qui s'exécute automatiquement à l'ouverture de mon
classeur en l'appelant dans ThisWorkbook avec un Workbook_Open().
Le problème est qu'excel refuse de me l'ouvrir lorsque je mets une
protection sur ma feuille. Y a-t-il un moyen de contourner cela et de faire
exécuter ma macro à l'ouverture de ma feuille malgré la protection?
Merci pour vos propositions.
Porter *
re bonjour Porter,
tu peut modifier comme ça,
CritèreFiltre = "DUPONT"
Nom = Application.Match("Nom", Rows(12), 0)
If Not Range("A12").AutoFilter Then Range("A12").AutoFilter
Range("A12").AutoFilter Field:=Nom, Criteria1:="" & CritèreFiltre
pour sélectionner la plage filtrer, s'il n'y a pas de données sur la
ligne 11
Range("A12").CurrentRegion
fera l'affaire. sinon tu peut déterminer cette plage par:
set plg = Sheets("Feuil1").AutoFilter.Range.SpecialCells(xlCellTypeVisible)
tu peut aussi déterminer la 1èr ou 2èm ligne ainsi que la dernère ligne
du filtre,
Dim PremLigne As Long, DerLigne As Long
With Sheets("Feuil1").AutoFilter.Range.SpecialCells(xlCellTypeVisible)
If .Areas(1).Rows.Count > 1 Then PremLigne = .Rows(2).Row _
Else PremLigne = .Areas(2).Row
'au cas ou
DerLigne = .Areas(.Areas.Count)(.Areas(.Areas.Count).Count).Row
MsgBox "Première ligne visible : " & PremLigne
MsgBox "Dernière ligne visible : " & DerLigne
End With
Range("A" & PremLigne).Select
isabelleJ'ai essayé ta technique pour le filtre, mais il y a qqch qui me bloque: le
CritèreFiltre=InputBox("Critère du filtre, colonne Nom (1)") me pose
problème. J'aurais voulu prédéfinir mon critère dans ma macro et non dans une
InputBox.
En plus, je n'arrive pas à l'utiliser. Ne peut-on pas définir le critère
directement? Genre le critère se trouve dans la colonne12 (intitulée "NOM")
lorsque la cellule affiche "DUPONT".
Merci.
Aussi, un autre renseignement: le Range("A1") signifie que le filtre
s'applique à partir de la cellule A1? Donc on peut modifier le départ dans le
fichier source et la copie dans le fichier de destination? C'est à dire que
la copie commence à partir de la cellule A12 par exemple?bonjour Porter,
une fois la plage filtrée,
Set Source =
Workbooks("zaza1.xls").Sheets("Feuil5").Range("A1").CurrentRegion
Set dest = Workbooks("zaza2.xls").Sheets("Feuil4")
Source.Copy _
Destination:Þst.Range("A1")
isabelleC'est encore moi. Je vois que tu as répondu à Pierref (juste en dessous de
moi) sur le sujet que je viens de te demander. Je vais d'abord tenter kom tu
le lui a dit mais cette méthode marche-t-elle lorsqu'on veut carrément
changer de fichier (pas le même classeur). Et aussi, de quelle manière
rentre-t-on le nom du fichier source?
Merci encore de ta disponibilité.
Porterbonjour Porter,
Private Sub Workbook_Open()
Sheets("Feuil1").Unprotect Password:="zaza"
' ta macro
Sheets("Feuil1").Protect Password:="zaza"
End Sub
isabelleBonjour,
j'ai créé une macro qui s'exécute automatiquement à l'ouverture de mon
classeur en l'appelant dans ThisWorkbook avec un Workbook_Open().
Le problème est qu'excel refuse de me l'ouvrir lorsque je mets une
protection sur ma feuille. Y a-t-il un moyen de contourner cela et de faire
exécuter ma macro à l'ouverture de ma feuille malgré la protection?
Merci pour vos propositions.
Porter *
Re, encore moi tu diras lol !
En fait je crois que ce que je veux faire est plus simple que ça et qu'en
fait tout ce que tu m'a dis m'a quelque peu embrouillé vu que je suis novice
en macro.
J'ai essayé d'appliquer le principe et voilà la macro que j'ai pu faire ( et
qui ne fonctionne pas):
Sub Filtrer()
Dim CritèreFiltre As String
CritèreFiltre = "SMECO"
Nom = Application.Match("Centre Payeur", Rows(12), 0)
If Not Range("A12").AutoFilter Then Range("A12").AutoFilter
Range("A12").AutoFilter Field:=Nom, Criteria1:="" & CritèreFiltre
Range("A12").CurrentRegion.Copy
Sheets.Add
ActiveSheet.Paste
Set Source = Workbooks("Relevé-Etudiant Essai.xls").Sheets("Relevé
Nominatif").Range("A12").CurrentRegion
Set dest = Workbooks("Relevé SMECO.xls").Sheets("Affiliés SMECO")
Source.Copy _
Destination:Þst.Range("A12")
End Sub
Je t'explique ce que cette macro devait me permettre de faire. Dans une
liste d'étudiants dans un tableau (Fichier Relevé-Etudiants, feuille Relevé
Nominatif) je voudrais rentrer des informations sur les lignes (les colonnes
comportant différents champs). Ensuite, j'aimerais que par macro
(automatiquement) les lignes correspondant à mon critère "SMECO" qui se
trouve dans la colonne 12 "Centre Payeur" se recopie (sans disparaître pour
autant de mon tableau principal) dans un autre tableau (Fichier Relevé SMECO
feuille Affiliés SMECO) qui est déjà crée mais reste vierge lorsqu'il n'y a
rien qui le concerne. Le tableau initial a sur la ligne 11 les intitulés et à
partir de la ligne 12 les informations ( c'est pour ça que j'ai fait A12). Le
tableau recevant l'extraction est similaire mais vierge, et je voudrai
recopier les lignes répondant à mon critère à partir de la ligne 12 comme
dans l'autre. Je n'ai pas besoin de créer une autre feuille (donc pas de
Sheets.Add je pense).
Dis moi ce qui ne va pas dans ma macro stp.
Merci sincèrement de ton aide et de ta compréhension.re bonjour Porter,
tu peut modifier comme ça,
CritèreFiltre = "DUPONT"
Nom = Application.Match("Nom", Rows(12), 0)
If Not Range("A12").AutoFilter Then Range("A12").AutoFilter
Range("A12").AutoFilter Field:=Nom, Criteria1:="" & CritèreFiltre
pour sélectionner la plage filtrer, s'il n'y a pas de données sur la
ligne 11
Range("A12").CurrentRegion
fera l'affaire. sinon tu peut déterminer cette plage par:
set plg = Sheets("Feuil1").AutoFilter.Range.SpecialCells(xlCellTypeVisible)
tu peut aussi déterminer la 1èr ou 2èm ligne ainsi que la dernère ligne
du filtre,
Dim PremLigne As Long, DerLigne As Long
With Sheets("Feuil1").AutoFilter.Range.SpecialCells(xlCellTypeVisible)
If .Areas(1).Rows.Count > 1 Then PremLigne = .Rows(2).Row _
Else PremLigne = .Areas(2).Row
'au cas ou
DerLigne = .Areas(.Areas.Count)(.Areas(.Areas.Count).Count).Row
MsgBox "Première ligne visible : " & PremLigne
MsgBox "Dernière ligne visible : " & DerLigne
End With
Range("A" & PremLigne).Select
isabelleJ'ai essayé ta technique pour le filtre, mais il y a qqch qui me bloque: le
CritèreFiltre=InputBox("Critère du filtre, colonne Nom (1)") me pose
problème. J'aurais voulu prédéfinir mon critère dans ma macro et non dans une
InputBox.
En plus, je n'arrive pas à l'utiliser. Ne peut-on pas définir le critère
directement? Genre le critère se trouve dans la colonne12 (intitulée "NOM")
lorsque la cellule affiche "DUPONT".
Merci.
Aussi, un autre renseignement: le Range("A1") signifie que le filtre
s'applique à partir de la cellule A1? Donc on peut modifier le départ dans le
fichier source et la copie dans le fichier de destination? C'est à dire que
la copie commence à partir de la cellule A12 par exemple?bonjour Porter,
une fois la plage filtrée,
Set Source =
Workbooks("zaza1.xls").Sheets("Feuil5").Range("A1").CurrentRegion
Set dest = Workbooks("zaza2.xls").Sheets("Feuil4")
Source.Copy _
Destination:Þst.Range("A1")
isabelleC'est encore moi. Je vois que tu as répondu à Pierref (juste en dessous de
moi) sur le sujet que je viens de te demander. Je vais d'abord tenter kom tu
le lui a dit mais cette méthode marche-t-elle lorsqu'on veut carrément
changer de fichier (pas le même classeur). Et aussi, de quelle manière
rentre-t-on le nom du fichier source?
Merci encore de ta disponibilité.
Porterbonjour Porter,
Private Sub Workbook_Open()
Sheets("Feuil1").Unprotect Password:="zaza"
' ta macro
Sheets("Feuil1").Protect Password:="zaza"
End Sub
isabelleBonjour,
j'ai créé une macro qui s'exécute automatiquement à l'ouverture de mon
classeur en l'appelant dans ThisWorkbook avec un Workbook_Open().
Le problème est qu'excel refuse de me l'ouvrir lorsque je mets une
protection sur ma feuille. Y a-t-il un moyen de contourner cela et de faire
exécuter ma macro à l'ouverture de ma feuille malgré la protection?
Merci pour vos propositions.
Porter *
Re, encore moi tu diras lol !
En fait je crois que ce que je veux faire est plus simple que ça et qu'en
fait tout ce que tu m'a dis m'a quelque peu embrouillé vu que je suis novice
en macro.
J'ai essayé d'appliquer le principe et voilà la macro que j'ai pu faire ( et
qui ne fonctionne pas):
Sub Filtrer()
Dim CritèreFiltre As String
CritèreFiltre = "SMECO"
Nom = Application.Match("Centre Payeur", Rows(12), 0)
If Not Range("A12").AutoFilter Then Range("A12").AutoFilter
Range("A12").AutoFilter Field:=Nom, Criteria1:="" & CritèreFiltre
Range("A12").CurrentRegion.Copy
Sheets.Add
ActiveSheet.Paste
Set Source = Workbooks("Relevé-Etudiant Essai.xls").Sheets("Relevé
Nominatif").Range("A12").CurrentRegion
Set dest = Workbooks("Relevé SMECO.xls").Sheets("Affiliés SMECO")
Source.Copy _
Destination:Þst.Range("A12")
End Sub
Je t'explique ce que cette macro devait me permettre de faire. Dans une
liste d'étudiants dans un tableau (Fichier Relevé-Etudiants, feuille Relevé
Nominatif) je voudrais rentrer des informations sur les lignes (les colonnes
comportant différents champs). Ensuite, j'aimerais que par macro
(automatiquement) les lignes correspondant à mon critère "SMECO" qui se
trouve dans la colonne 12 "Centre Payeur" se recopie (sans disparaître pour
autant de mon tableau principal) dans un autre tableau (Fichier Relevé SMECO
feuille Affiliés SMECO) qui est déjà crée mais reste vierge lorsqu'il n'y a
rien qui le concerne. Le tableau initial a sur la ligne 11 les intitulés et à
partir de la ligne 12 les informations ( c'est pour ça que j'ai fait A12). Le
tableau recevant l'extraction est similaire mais vierge, et je voudrai
recopier les lignes répondant à mon critère à partir de la ligne 12 comme
dans l'autre. Je n'ai pas besoin de créer une autre feuille (donc pas de
Sheets.Add je pense).
Dis moi ce qui ne va pas dans ma macro stp.
Merci sincèrement de ton aide et de ta compréhension.
re bonjour Porter,
tu peut modifier comme ça,
CritèreFiltre = "DUPONT"
Nom = Application.Match("Nom", Rows(12), 0)
If Not Range("A12").AutoFilter Then Range("A12").AutoFilter
Range("A12").AutoFilter Field:=Nom, Criteria1:="" & CritèreFiltre
pour sélectionner la plage filtrer, s'il n'y a pas de données sur la
ligne 11
Range("A12").CurrentRegion
fera l'affaire. sinon tu peut déterminer cette plage par:
set plg = Sheets("Feuil1").AutoFilter.Range.SpecialCells(xlCellTypeVisible)
tu peut aussi déterminer la 1èr ou 2èm ligne ainsi que la dernère ligne
du filtre,
Dim PremLigne As Long, DerLigne As Long
With Sheets("Feuil1").AutoFilter.Range.SpecialCells(xlCellTypeVisible)
If .Areas(1).Rows.Count > 1 Then PremLigne = .Rows(2).Row _
Else PremLigne = .Areas(2).Row
'au cas ou
DerLigne = .Areas(.Areas.Count)(.Areas(.Areas.Count).Count).Row
MsgBox "Première ligne visible : " & PremLigne
MsgBox "Dernière ligne visible : " & DerLigne
End With
Range("A" & PremLigne).Select
isabelle
J'ai essayé ta technique pour le filtre, mais il y a qqch qui me bloque: le
CritèreFiltre=InputBox("Critère du filtre, colonne Nom (1)") me pose
problème. J'aurais voulu prédéfinir mon critère dans ma macro et non dans une
InputBox.
En plus, je n'arrive pas à l'utiliser. Ne peut-on pas définir le critère
directement? Genre le critère se trouve dans la colonne12 (intitulée "NOM")
lorsque la cellule affiche "DUPONT".
Merci.
Aussi, un autre renseignement: le Range("A1") signifie que le filtre
s'applique à partir de la cellule A1? Donc on peut modifier le départ dans le
fichier source et la copie dans le fichier de destination? C'est à dire que
la copie commence à partir de la cellule A12 par exemple?
bonjour Porter,
une fois la plage filtrée,
Set Source =
Workbooks("zaza1.xls").Sheets("Feuil5").Range("A1").CurrentRegion
Set dest = Workbooks("zaza2.xls").Sheets("Feuil4")
Source.Copy _
Destination:Þst.Range("A1")
isabelle
C'est encore moi. Je vois que tu as répondu à Pierref (juste en dessous de
moi) sur le sujet que je viens de te demander. Je vais d'abord tenter kom tu
le lui a dit mais cette méthode marche-t-elle lorsqu'on veut carrément
changer de fichier (pas le même classeur). Et aussi, de quelle manière
rentre-t-on le nom du fichier source?
Merci encore de ta disponibilité.
Porter
bonjour Porter,
Private Sub Workbook_Open()
Sheets("Feuil1").Unprotect Password:="zaza"
' ta macro
Sheets("Feuil1").Protect Password:="zaza"
End Sub
isabelle
Bonjour,
j'ai créé une macro qui s'exécute automatiquement à l'ouverture de mon
classeur en l'appelant dans ThisWorkbook avec un Workbook_Open().
Le problème est qu'excel refuse de me l'ouvrir lorsque je mets une
protection sur ma feuille. Y a-t-il un moyen de contourner cela et de faire
exécuter ma macro à l'ouverture de ma feuille malgré la protection?
Merci pour vos propositions.
Porter *
Re, encore moi tu diras lol !
En fait je crois que ce que je veux faire est plus simple que ça et qu'en
fait tout ce que tu m'a dis m'a quelque peu embrouillé vu que je suis novice
en macro.
J'ai essayé d'appliquer le principe et voilà la macro que j'ai pu faire ( et
qui ne fonctionne pas):
Sub Filtrer()
Dim CritèreFiltre As String
CritèreFiltre = "SMECO"
Nom = Application.Match("Centre Payeur", Rows(12), 0)
If Not Range("A12").AutoFilter Then Range("A12").AutoFilter
Range("A12").AutoFilter Field:=Nom, Criteria1:="" & CritèreFiltre
Range("A12").CurrentRegion.Copy
Sheets.Add
ActiveSheet.Paste
Set Source = Workbooks("Relevé-Etudiant Essai.xls").Sheets("Relevé
Nominatif").Range("A12").CurrentRegion
Set dest = Workbooks("Relevé SMECO.xls").Sheets("Affiliés SMECO")
Source.Copy _
Destination:Þst.Range("A12")
End Sub
Je t'explique ce que cette macro devait me permettre de faire. Dans une
liste d'étudiants dans un tableau (Fichier Relevé-Etudiants, feuille Relevé
Nominatif) je voudrais rentrer des informations sur les lignes (les colonnes
comportant différents champs). Ensuite, j'aimerais que par macro
(automatiquement) les lignes correspondant à mon critère "SMECO" qui se
trouve dans la colonne 12 "Centre Payeur" se recopie (sans disparaître pour
autant de mon tableau principal) dans un autre tableau (Fichier Relevé SMECO
feuille Affiliés SMECO) qui est déjà crée mais reste vierge lorsqu'il n'y a
rien qui le concerne. Le tableau initial a sur la ligne 11 les intitulés et à
partir de la ligne 12 les informations ( c'est pour ça que j'ai fait A12). Le
tableau recevant l'extraction est similaire mais vierge, et je voudrai
recopier les lignes répondant à mon critère à partir de la ligne 12 comme
dans l'autre. Je n'ai pas besoin de créer une autre feuille (donc pas de
Sheets.Add je pense).
Dis moi ce qui ne va pas dans ma macro stp.
Merci sincèrement de ton aide et de ta compréhension.re bonjour Porter,
tu peut modifier comme ça,
CritèreFiltre = "DUPONT"
Nom = Application.Match("Nom", Rows(12), 0)
If Not Range("A12").AutoFilter Then Range("A12").AutoFilter
Range("A12").AutoFilter Field:=Nom, Criteria1:="" & CritèreFiltre
pour sélectionner la plage filtrer, s'il n'y a pas de données sur la
ligne 11
Range("A12").CurrentRegion
fera l'affaire. sinon tu peut déterminer cette plage par:
set plg = Sheets("Feuil1").AutoFilter.Range.SpecialCells(xlCellTypeVisible)
tu peut aussi déterminer la 1èr ou 2èm ligne ainsi que la dernère ligne
du filtre,
Dim PremLigne As Long, DerLigne As Long
With Sheets("Feuil1").AutoFilter.Range.SpecialCells(xlCellTypeVisible)
If .Areas(1).Rows.Count > 1 Then PremLigne = .Rows(2).Row _
Else PremLigne = .Areas(2).Row
'au cas ou
DerLigne = .Areas(.Areas.Count)(.Areas(.Areas.Count).Count).Row
MsgBox "Première ligne visible : " & PremLigne
MsgBox "Dernière ligne visible : " & DerLigne
End With
Range("A" & PremLigne).Select
isabelleJ'ai essayé ta technique pour le filtre, mais il y a qqch qui me bloque: le
CritèreFiltre=InputBox("Critère du filtre, colonne Nom (1)") me pose
problème. J'aurais voulu prédéfinir mon critère dans ma macro et non dans une
InputBox.
En plus, je n'arrive pas à l'utiliser. Ne peut-on pas définir le critère
directement? Genre le critère se trouve dans la colonne12 (intitulée "NOM")
lorsque la cellule affiche "DUPONT".
Merci.
Aussi, un autre renseignement: le Range("A1") signifie que le filtre
s'applique à partir de la cellule A1? Donc on peut modifier le départ dans le
fichier source et la copie dans le fichier de destination? C'est à dire que
la copie commence à partir de la cellule A12 par exemple?bonjour Porter,
une fois la plage filtrée,
Set Source =
Workbooks("zaza1.xls").Sheets("Feuil5").Range("A1").CurrentRegion
Set dest = Workbooks("zaza2.xls").Sheets("Feuil4")
Source.Copy _
Destination:Þst.Range("A1")
isabelleC'est encore moi. Je vois que tu as répondu à Pierref (juste en dessous de
moi) sur le sujet que je viens de te demander. Je vais d'abord tenter kom tu
le lui a dit mais cette méthode marche-t-elle lorsqu'on veut carrément
changer de fichier (pas le même classeur). Et aussi, de quelle manière
rentre-t-on le nom du fichier source?
Merci encore de ta disponibilité.
Porterbonjour Porter,
Private Sub Workbook_Open()
Sheets("Feuil1").Unprotect Password:="zaza"
' ta macro
Sheets("Feuil1").Protect Password:="zaza"
End Sub
isabelleBonjour,
j'ai créé une macro qui s'exécute automatiquement à l'ouverture de mon
classeur en l'appelant dans ThisWorkbook avec un Workbook_Open().
Le problème est qu'excel refuse de me l'ouvrir lorsque je mets une
protection sur ma feuille. Y a-t-il un moyen de contourner cela et de faire
exécuter ma macro à l'ouverture de ma feuille malgré la protection?
Merci pour vos propositions.
Porter *
re bonjour Porter,
je croyais que les titres de colonne était en ligne 12,
si c'est en ligne 11, est ce que le filtre est lui aussi en ligne 11 ?
pour le copy il ne faut pas inclure la ligne de titre, est ce bien ça ?
isabelleRe, encore moi tu diras lol !
En fait je crois que ce que je veux faire est plus simple que ça et qu'en
fait tout ce que tu m'a dis m'a quelque peu embrouillé vu que je suis novice
en macro.
J'ai essayé d'appliquer le principe et voilà la macro que j'ai pu faire ( et
qui ne fonctionne pas):
Sub Filtrer()
Dim CritèreFiltre As String
CritèreFiltre = "SMECO"
Nom = Application.Match("Centre Payeur", Rows(12), 0)
If Not Range("A12").AutoFilter Then Range("A12").AutoFilter
Range("A12").AutoFilter Field:=Nom, Criteria1:="" & CritèreFiltre
Range("A12").CurrentRegion.Copy
Sheets.Add
ActiveSheet.Paste
Set Source = Workbooks("Relevé-Etudiant Essai.xls").Sheets("Relevé
Nominatif").Range("A12").CurrentRegion
Set dest = Workbooks("Relevé SMECO.xls").Sheets("Affiliés SMECO")
Source.Copy _
Destination:Þst.Range("A12")
End Sub
Je t'explique ce que cette macro devait me permettre de faire. Dans une
liste d'étudiants dans un tableau (Fichier Relevé-Etudiants, feuille Relevé
Nominatif) je voudrais rentrer des informations sur les lignes (les colonnes
comportant différents champs). Ensuite, j'aimerais que par macro
(automatiquement) les lignes correspondant à mon critère "SMECO" qui se
trouve dans la colonne 12 "Centre Payeur" se recopie (sans disparaître pour
autant de mon tableau principal) dans un autre tableau (Fichier Relevé SMECO
feuille Affiliés SMECO) qui est déjà crée mais reste vierge lorsqu'il n'y a
rien qui le concerne. Le tableau initial a sur la ligne 11 les intitulés et à
partir de la ligne 12 les informations ( c'est pour ça que j'ai fait A12). Le
tableau recevant l'extraction est similaire mais vierge, et je voudrai
recopier les lignes répondant à mon critère à partir de la ligne 12 comme
dans l'autre. Je n'ai pas besoin de créer une autre feuille (donc pas de
Sheets.Add je pense).
Dis moi ce qui ne va pas dans ma macro stp.
Merci sincèrement de ton aide et de ta compréhension.re bonjour Porter,
tu peut modifier comme ça,
CritèreFiltre = "DUPONT"
Nom = Application.Match("Nom", Rows(12), 0)
If Not Range("A12").AutoFilter Then Range("A12").AutoFilter
Range("A12").AutoFilter Field:=Nom, Criteria1:="" & CritèreFiltre
pour sélectionner la plage filtrer, s'il n'y a pas de données sur la
ligne 11
Range("A12").CurrentRegion
fera l'affaire. sinon tu peut déterminer cette plage par:
set plg = Sheets("Feuil1").AutoFilter.Range.SpecialCells(xlCellTypeVisible)
tu peut aussi déterminer la 1èr ou 2èm ligne ainsi que la dernère ligne
du filtre,
Dim PremLigne As Long, DerLigne As Long
With Sheets("Feuil1").AutoFilter.Range.SpecialCells(xlCellTypeVisible)
If .Areas(1).Rows.Count > 1 Then PremLigne = .Rows(2).Row _
Else PremLigne = .Areas(2).Row
'au cas ou
DerLigne = .Areas(.Areas.Count)(.Areas(.Areas.Count).Count).Row
MsgBox "Première ligne visible : " & PremLigne
MsgBox "Dernière ligne visible : " & DerLigne
End With
Range("A" & PremLigne).Select
isabelleJ'ai essayé ta technique pour le filtre, mais il y a qqch qui me bloque: le
CritèreFiltre=InputBox("Critère du filtre, colonne Nom (1)") me pose
problème. J'aurais voulu prédéfinir mon critère dans ma macro et non dans une
InputBox.
En plus, je n'arrive pas à l'utiliser. Ne peut-on pas définir le critère
directement? Genre le critère se trouve dans la colonne12 (intitulée "NOM")
lorsque la cellule affiche "DUPONT".
Merci.
Aussi, un autre renseignement: le Range("A1") signifie que le filtre
s'applique à partir de la cellule A1? Donc on peut modifier le départ dans le
fichier source et la copie dans le fichier de destination? C'est à dire que
la copie commence à partir de la cellule A12 par exemple?bonjour Porter,
une fois la plage filtrée,
Set Source =
Workbooks("zaza1.xls").Sheets("Feuil5").Range("A1").CurrentRegion
Set dest = Workbooks("zaza2.xls").Sheets("Feuil4")
Source.Copy _
Destination:Þst.Range("A1")
isabelleC'est encore moi. Je vois que tu as répondu à Pierref (juste en dessous de
moi) sur le sujet que je viens de te demander. Je vais d'abord tenter kom tu
le lui a dit mais cette méthode marche-t-elle lorsqu'on veut carrément
changer de fichier (pas le même classeur). Et aussi, de quelle manière
rentre-t-on le nom du fichier source?
Merci encore de ta disponibilité.
Porterbonjour Porter,
Private Sub Workbook_Open()
Sheets("Feuil1").Unprotect Password:="zaza"
' ta macro
Sheets("Feuil1").Protect Password:="zaza"
End Sub
isabelleBonjour,
j'ai créé une macro qui s'exécute automatiquement à l'ouverture de mon
classeur en l'appelant dans ThisWorkbook avec un Workbook_Open().
Le problème est qu'excel refuse de me l'ouvrir lorsque je mets une
protection sur ma feuille. Y a-t-il un moyen de contourner cela et de faire
exécuter ma macro à l'ouverture de ma feuille malgré la protection?
Merci pour vos propositions.
Porter *
re bonjour Porter,
je croyais que les titres de colonne était en ligne 12,
si c'est en ligne 11, est ce que le filtre est lui aussi en ligne 11 ?
pour le copy il ne faut pas inclure la ligne de titre, est ce bien ça ?
isabelle
Re, encore moi tu diras lol !
En fait je crois que ce que je veux faire est plus simple que ça et qu'en
fait tout ce que tu m'a dis m'a quelque peu embrouillé vu que je suis novice
en macro.
J'ai essayé d'appliquer le principe et voilà la macro que j'ai pu faire ( et
qui ne fonctionne pas):
Sub Filtrer()
Dim CritèreFiltre As String
CritèreFiltre = "SMECO"
Nom = Application.Match("Centre Payeur", Rows(12), 0)
If Not Range("A12").AutoFilter Then Range("A12").AutoFilter
Range("A12").AutoFilter Field:=Nom, Criteria1:="" & CritèreFiltre
Range("A12").CurrentRegion.Copy
Sheets.Add
ActiveSheet.Paste
Set Source = Workbooks("Relevé-Etudiant Essai.xls").Sheets("Relevé
Nominatif").Range("A12").CurrentRegion
Set dest = Workbooks("Relevé SMECO.xls").Sheets("Affiliés SMECO")
Source.Copy _
Destination:Þst.Range("A12")
End Sub
Je t'explique ce que cette macro devait me permettre de faire. Dans une
liste d'étudiants dans un tableau (Fichier Relevé-Etudiants, feuille Relevé
Nominatif) je voudrais rentrer des informations sur les lignes (les colonnes
comportant différents champs). Ensuite, j'aimerais que par macro
(automatiquement) les lignes correspondant à mon critère "SMECO" qui se
trouve dans la colonne 12 "Centre Payeur" se recopie (sans disparaître pour
autant de mon tableau principal) dans un autre tableau (Fichier Relevé SMECO
feuille Affiliés SMECO) qui est déjà crée mais reste vierge lorsqu'il n'y a
rien qui le concerne. Le tableau initial a sur la ligne 11 les intitulés et à
partir de la ligne 12 les informations ( c'est pour ça que j'ai fait A12). Le
tableau recevant l'extraction est similaire mais vierge, et je voudrai
recopier les lignes répondant à mon critère à partir de la ligne 12 comme
dans l'autre. Je n'ai pas besoin de créer une autre feuille (donc pas de
Sheets.Add je pense).
Dis moi ce qui ne va pas dans ma macro stp.
Merci sincèrement de ton aide et de ta compréhension.
re bonjour Porter,
tu peut modifier comme ça,
CritèreFiltre = "DUPONT"
Nom = Application.Match("Nom", Rows(12), 0)
If Not Range("A12").AutoFilter Then Range("A12").AutoFilter
Range("A12").AutoFilter Field:=Nom, Criteria1:="" & CritèreFiltre
pour sélectionner la plage filtrer, s'il n'y a pas de données sur la
ligne 11
Range("A12").CurrentRegion
fera l'affaire. sinon tu peut déterminer cette plage par:
set plg = Sheets("Feuil1").AutoFilter.Range.SpecialCells(xlCellTypeVisible)
tu peut aussi déterminer la 1èr ou 2èm ligne ainsi que la dernère ligne
du filtre,
Dim PremLigne As Long, DerLigne As Long
With Sheets("Feuil1").AutoFilter.Range.SpecialCells(xlCellTypeVisible)
If .Areas(1).Rows.Count > 1 Then PremLigne = .Rows(2).Row _
Else PremLigne = .Areas(2).Row
'au cas ou
DerLigne = .Areas(.Areas.Count)(.Areas(.Areas.Count).Count).Row
MsgBox "Première ligne visible : " & PremLigne
MsgBox "Dernière ligne visible : " & DerLigne
End With
Range("A" & PremLigne).Select
isabelle
J'ai essayé ta technique pour le filtre, mais il y a qqch qui me bloque: le
CritèreFiltre=InputBox("Critère du filtre, colonne Nom (1)") me pose
problème. J'aurais voulu prédéfinir mon critère dans ma macro et non dans une
InputBox.
En plus, je n'arrive pas à l'utiliser. Ne peut-on pas définir le critère
directement? Genre le critère se trouve dans la colonne12 (intitulée "NOM")
lorsque la cellule affiche "DUPONT".
Merci.
Aussi, un autre renseignement: le Range("A1") signifie que le filtre
s'applique à partir de la cellule A1? Donc on peut modifier le départ dans le
fichier source et la copie dans le fichier de destination? C'est à dire que
la copie commence à partir de la cellule A12 par exemple?
bonjour Porter,
une fois la plage filtrée,
Set Source =
Workbooks("zaza1.xls").Sheets("Feuil5").Range("A1").CurrentRegion
Set dest = Workbooks("zaza2.xls").Sheets("Feuil4")
Source.Copy _
Destination:Þst.Range("A1")
isabelle
C'est encore moi. Je vois que tu as répondu à Pierref (juste en dessous de
moi) sur le sujet que je viens de te demander. Je vais d'abord tenter kom tu
le lui a dit mais cette méthode marche-t-elle lorsqu'on veut carrément
changer de fichier (pas le même classeur). Et aussi, de quelle manière
rentre-t-on le nom du fichier source?
Merci encore de ta disponibilité.
Porter
bonjour Porter,
Private Sub Workbook_Open()
Sheets("Feuil1").Unprotect Password:="zaza"
' ta macro
Sheets("Feuil1").Protect Password:="zaza"
End Sub
isabelle
Bonjour,
j'ai créé une macro qui s'exécute automatiquement à l'ouverture de mon
classeur en l'appelant dans ThisWorkbook avec un Workbook_Open().
Le problème est qu'excel refuse de me l'ouvrir lorsque je mets une
protection sur ma feuille. Y a-t-il un moyen de contourner cela et de faire
exécuter ma macro à l'ouverture de ma feuille malgré la protection?
Merci pour vos propositions.
Porter *
re bonjour Porter,
je croyais que les titres de colonne était en ligne 12,
si c'est en ligne 11, est ce que le filtre est lui aussi en ligne 11 ?
pour le copy il ne faut pas inclure la ligne de titre, est ce bien ça ?
isabelleRe, encore moi tu diras lol !
En fait je crois que ce que je veux faire est plus simple que ça et qu'en
fait tout ce que tu m'a dis m'a quelque peu embrouillé vu que je suis novice
en macro.
J'ai essayé d'appliquer le principe et voilà la macro que j'ai pu faire ( et
qui ne fonctionne pas):
Sub Filtrer()
Dim CritèreFiltre As String
CritèreFiltre = "SMECO"
Nom = Application.Match("Centre Payeur", Rows(12), 0)
If Not Range("A12").AutoFilter Then Range("A12").AutoFilter
Range("A12").AutoFilter Field:=Nom, Criteria1:="" & CritèreFiltre
Range("A12").CurrentRegion.Copy
Sheets.Add
ActiveSheet.Paste
Set Source = Workbooks("Relevé-Etudiant Essai.xls").Sheets("Relevé
Nominatif").Range("A12").CurrentRegion
Set dest = Workbooks("Relevé SMECO.xls").Sheets("Affiliés SMECO")
Source.Copy _
Destination:Þst.Range("A12")
End Sub
Je t'explique ce que cette macro devait me permettre de faire. Dans une
liste d'étudiants dans un tableau (Fichier Relevé-Etudiants, feuille Relevé
Nominatif) je voudrais rentrer des informations sur les lignes (les colonnes
comportant différents champs). Ensuite, j'aimerais que par macro
(automatiquement) les lignes correspondant à mon critère "SMECO" qui se
trouve dans la colonne 12 "Centre Payeur" se recopie (sans disparaître pour
autant de mon tableau principal) dans un autre tableau (Fichier Relevé SMECO
feuille Affiliés SMECO) qui est déjà crée mais reste vierge lorsqu'il n'y a
rien qui le concerne. Le tableau initial a sur la ligne 11 les intitulés et à
partir de la ligne 12 les informations ( c'est pour ça que j'ai fait A12). Le
tableau recevant l'extraction est similaire mais vierge, et je voudrai
recopier les lignes répondant à mon critère à partir de la ligne 12 comme
dans l'autre. Je n'ai pas besoin de créer une autre feuille (donc pas de
Sheets.Add je pense).
Dis moi ce qui ne va pas dans ma macro stp.
Merci sincèrement de ton aide et de ta compréhension.re bonjour Porter,
tu peut modifier comme ça,
CritèreFiltre = "DUPONT"
Nom = Application.Match("Nom", Rows(12), 0)
If Not Range("A12").AutoFilter Then Range("A12").AutoFilter
Range("A12").AutoFilter Field:=Nom, Criteria1:="" & CritèreFiltre
pour sélectionner la plage filtrer, s'il n'y a pas de données sur la
ligne 11
Range("A12").CurrentRegion
fera l'affaire. sinon tu peut déterminer cette plage par:
set plg = Sheets("Feuil1").AutoFilter.Range.SpecialCells(xlCellTypeVisible)
tu peut aussi déterminer la 1èr ou 2èm ligne ainsi que la dernère ligne
du filtre,
Dim PremLigne As Long, DerLigne As Long
With Sheets("Feuil1").AutoFilter.Range.SpecialCells(xlCellTypeVisible)
If .Areas(1).Rows.Count > 1 Then PremLigne = .Rows(2).Row _
Else PremLigne = .Areas(2).Row
'au cas ou
DerLigne = .Areas(.Areas.Count)(.Areas(.Areas.Count).Count).Row
MsgBox "Première ligne visible : " & PremLigne
MsgBox "Dernière ligne visible : " & DerLigne
End With
Range("A" & PremLigne).Select
isabelleJ'ai essayé ta technique pour le filtre, mais il y a qqch qui me bloque: le
CritèreFiltre=InputBox("Critère du filtre, colonne Nom (1)") me pose
problème. J'aurais voulu prédéfinir mon critère dans ma macro et non dans une
InputBox.
En plus, je n'arrive pas à l'utiliser. Ne peut-on pas définir le critère
directement? Genre le critère se trouve dans la colonne12 (intitulée "NOM")
lorsque la cellule affiche "DUPONT".
Merci.
Aussi, un autre renseignement: le Range("A1") signifie que le filtre
s'applique à partir de la cellule A1? Donc on peut modifier le départ dans le
fichier source et la copie dans le fichier de destination? C'est à dire que
la copie commence à partir de la cellule A12 par exemple?bonjour Porter,
une fois la plage filtrée,
Set Source =
Workbooks("zaza1.xls").Sheets("Feuil5").Range("A1").CurrentRegion
Set dest = Workbooks("zaza2.xls").Sheets("Feuil4")
Source.Copy _
Destination:Þst.Range("A1")
isabelleC'est encore moi. Je vois que tu as répondu à Pierref (juste en dessous de
moi) sur le sujet que je viens de te demander. Je vais d'abord tenter kom tu
le lui a dit mais cette méthode marche-t-elle lorsqu'on veut carrément
changer de fichier (pas le même classeur). Et aussi, de quelle manière
rentre-t-on le nom du fichier source?
Merci encore de ta disponibilité.
Porterbonjour Porter,
Private Sub Workbook_Open()
Sheets("Feuil1").Unprotect Password:="zaza"
' ta macro
Sheets("Feuil1").Protect Password:="zaza"
End Sub
isabelleBonjour,
j'ai créé une macro qui s'exécute automatiquement à l'ouverture de mon
classeur en l'appelant dans ThisWorkbook avec un Workbook_Open().
Le problème est qu'excel refuse de me l'ouvrir lorsque je mets une
protection sur ma feuille. Y a-t-il un moyen de contourner cela et de faire
exécuter ma macro à l'ouverture de ma feuille malgré la protection?
Merci pour vos propositions.
Porter *
Oui c'est exactement ça. Il ne faut pas recopier la ligne des titres parce
qu'ils sont déjà reporter dans le fichier d'extraction.
pour l'emplacement du filtre je ne sais pas quoi répondre exactement,
l'essentiel est qu'il doit s'appliquer sur les lignes 12 et suivantes.
Parcontre, en espérant que ce n'est pas abusé de ma part, la recopie des
lignes doit elle absolument reprendre les cellules de chaque colonne ou
est-ce que c'est possible de ne récupérer que les cellules souhaitées ( c'est
à dire en retirant par exemple 1 ou 2 cellules ce qui fait que les lignes
extraites s'étalant à l'origine sur 20 colonnes ne soit recopier en
s'allogeant que sur 18) Mais ça peut attendre si tu ne trouve pas le moyen,
je me débrouillerai.
Mercire bonjour Porter,
je croyais que les titres de colonne était en ligne 12,
si c'est en ligne 11, est ce que le filtre est lui aussi en ligne 11 ?
pour le copy il ne faut pas inclure la ligne de titre, est ce bien ça ?
isabelleRe, encore moi tu diras lol !
En fait je crois que ce que je veux faire est plus simple que ça et qu'en
fait tout ce que tu m'a dis m'a quelque peu embrouillé vu que je suis novice
en macro.
J'ai essayé d'appliquer le principe et voilà la macro que j'ai pu faire ( et
qui ne fonctionne pas):
Sub Filtrer()
Dim CritèreFiltre As String
CritèreFiltre = "SMECO"
Nom = Application.Match("Centre Payeur", Rows(12), 0)
If Not Range("A12").AutoFilter Then Range("A12").AutoFilter
Range("A12").AutoFilter Field:=Nom, Criteria1:="" & CritèreFiltre
Range("A12").CurrentRegion.Copy
Sheets.Add
ActiveSheet.Paste
Set Source = Workbooks("Relevé-Etudiant Essai.xls").Sheets("Relevé
Nominatif").Range("A12").CurrentRegion
Set dest = Workbooks("Relevé SMECO.xls").Sheets("Affiliés SMECO")
Source.Copy _
Destination:Þst.Range("A12")
End Sub
Je t'explique ce que cette macro devait me permettre de faire. Dans une
liste d'étudiants dans un tableau (Fichier Relevé-Etudiants, feuille Relevé
Nominatif) je voudrais rentrer des informations sur les lignes (les colonnes
comportant différents champs). Ensuite, j'aimerais que par macro
(automatiquement) les lignes correspondant à mon critère "SMECO" qui se
trouve dans la colonne 12 "Centre Payeur" se recopie (sans disparaître pour
autant de mon tableau principal) dans un autre tableau (Fichier Relevé SMECO
feuille Affiliés SMECO) qui est déjà crée mais reste vierge lorsqu'il n'y a
rien qui le concerne. Le tableau initial a sur la ligne 11 les intitulés et à
partir de la ligne 12 les informations ( c'est pour ça que j'ai fait A12). Le
tableau recevant l'extraction est similaire mais vierge, et je voudrai
recopier les lignes répondant à mon critère à partir de la ligne 12 comme
dans l'autre. Je n'ai pas besoin de créer une autre feuille (donc pas de
Sheets.Add je pense).
Dis moi ce qui ne va pas dans ma macro stp.
Merci sincèrement de ton aide et de ta compréhension.re bonjour Porter,
tu peut modifier comme ça,
CritèreFiltre = "DUPONT"
Nom = Application.Match("Nom", Rows(12), 0)
If Not Range("A12").AutoFilter Then Range("A12").AutoFilter
Range("A12").AutoFilter Field:=Nom, Criteria1:="" & CritèreFiltre
pour sélectionner la plage filtrer, s'il n'y a pas de données sur la
ligne 11
Range("A12").CurrentRegion
fera l'affaire. sinon tu peut déterminer cette plage par:
set plg = Sheets("Feuil1").AutoFilter.Range.SpecialCells(xlCellTypeVisible)
tu peut aussi déterminer la 1èr ou 2èm ligne ainsi que la dernère ligne
du filtre,
Dim PremLigne As Long, DerLigne As Long
With Sheets("Feuil1").AutoFilter.Range.SpecialCells(xlCellTypeVisible)
If .Areas(1).Rows.Count > 1 Then PremLigne = .Rows(2).Row _
Else PremLigne = .Areas(2).Row
'au cas ou
DerLigne = .Areas(.Areas.Count)(.Areas(.Areas.Count).Count).Row
MsgBox "Première ligne visible : " & PremLigne
MsgBox "Dernière ligne visible : " & DerLigne
End With
Range("A" & PremLigne).Select
isabelleJ'ai essayé ta technique pour le filtre, mais il y a qqch qui me bloque: le
CritèreFiltre=InputBox("Critère du filtre, colonne Nom (1)") me pose
problème. J'aurais voulu prédéfinir mon critère dans ma macro et non dans une
InputBox.
En plus, je n'arrive pas à l'utiliser. Ne peut-on pas définir le critère
directement? Genre le critère se trouve dans la colonne12 (intitulée "NOM")
lorsque la cellule affiche "DUPONT".
Merci.
Aussi, un autre renseignement: le Range("A1") signifie que le filtre
s'applique à partir de la cellule A1? Donc on peut modifier le départ dans le
fichier source et la copie dans le fichier de destination? C'est à dire que
la copie commence à partir de la cellule A12 par exemple?bonjour Porter,
une fois la plage filtrée,
Set Source =
Workbooks("zaza1.xls").Sheets("Feuil5").Range("A1").CurrentRegion
Set dest = Workbooks("zaza2.xls").Sheets("Feuil4")
Source.Copy _
Destination:Þst.Range("A1")
isabelleC'est encore moi. Je vois que tu as répondu à Pierref (juste en dessous de
moi) sur le sujet que je viens de te demander. Je vais d'abord tenter kom tu
le lui a dit mais cette méthode marche-t-elle lorsqu'on veut carrément
changer de fichier (pas le même classeur). Et aussi, de quelle manière
rentre-t-on le nom du fichier source?
Merci encore de ta disponibilité.
Porterbonjour Porter,
Private Sub Workbook_Open()
Sheets("Feuil1").Unprotect Password:="zaza"
' ta macro
Sheets("Feuil1").Protect Password:="zaza"
End Sub
isabelleBonjour,
j'ai créé une macro qui s'exécute automatiquement à l'ouverture de mon
classeur en l'appelant dans ThisWorkbook avec un Workbook_Open().
Le problème est qu'excel refuse de me l'ouvrir lorsque je mets une
protection sur ma feuille. Y a-t-il un moyen de contourner cela et de faire
exécuter ma macro à l'ouverture de ma feuille malgré la protection?
Merci pour vos propositions.
Porter *
Oui c'est exactement ça. Il ne faut pas recopier la ligne des titres parce
qu'ils sont déjà reporter dans le fichier d'extraction.
pour l'emplacement du filtre je ne sais pas quoi répondre exactement,
l'essentiel est qu'il doit s'appliquer sur les lignes 12 et suivantes.
Parcontre, en espérant que ce n'est pas abusé de ma part, la recopie des
lignes doit elle absolument reprendre les cellules de chaque colonne ou
est-ce que c'est possible de ne récupérer que les cellules souhaitées ( c'est
à dire en retirant par exemple 1 ou 2 cellules ce qui fait que les lignes
extraites s'étalant à l'origine sur 20 colonnes ne soit recopier en
s'allogeant que sur 18) Mais ça peut attendre si tu ne trouve pas le moyen,
je me débrouillerai.
Merci
re bonjour Porter,
je croyais que les titres de colonne était en ligne 12,
si c'est en ligne 11, est ce que le filtre est lui aussi en ligne 11 ?
pour le copy il ne faut pas inclure la ligne de titre, est ce bien ça ?
isabelle
Re, encore moi tu diras lol !
En fait je crois que ce que je veux faire est plus simple que ça et qu'en
fait tout ce que tu m'a dis m'a quelque peu embrouillé vu que je suis novice
en macro.
J'ai essayé d'appliquer le principe et voilà la macro que j'ai pu faire ( et
qui ne fonctionne pas):
Sub Filtrer()
Dim CritèreFiltre As String
CritèreFiltre = "SMECO"
Nom = Application.Match("Centre Payeur", Rows(12), 0)
If Not Range("A12").AutoFilter Then Range("A12").AutoFilter
Range("A12").AutoFilter Field:=Nom, Criteria1:="" & CritèreFiltre
Range("A12").CurrentRegion.Copy
Sheets.Add
ActiveSheet.Paste
Set Source = Workbooks("Relevé-Etudiant Essai.xls").Sheets("Relevé
Nominatif").Range("A12").CurrentRegion
Set dest = Workbooks("Relevé SMECO.xls").Sheets("Affiliés SMECO")
Source.Copy _
Destination:Þst.Range("A12")
End Sub
Je t'explique ce que cette macro devait me permettre de faire. Dans une
liste d'étudiants dans un tableau (Fichier Relevé-Etudiants, feuille Relevé
Nominatif) je voudrais rentrer des informations sur les lignes (les colonnes
comportant différents champs). Ensuite, j'aimerais que par macro
(automatiquement) les lignes correspondant à mon critère "SMECO" qui se
trouve dans la colonne 12 "Centre Payeur" se recopie (sans disparaître pour
autant de mon tableau principal) dans un autre tableau (Fichier Relevé SMECO
feuille Affiliés SMECO) qui est déjà crée mais reste vierge lorsqu'il n'y a
rien qui le concerne. Le tableau initial a sur la ligne 11 les intitulés et à
partir de la ligne 12 les informations ( c'est pour ça que j'ai fait A12). Le
tableau recevant l'extraction est similaire mais vierge, et je voudrai
recopier les lignes répondant à mon critère à partir de la ligne 12 comme
dans l'autre. Je n'ai pas besoin de créer une autre feuille (donc pas de
Sheets.Add je pense).
Dis moi ce qui ne va pas dans ma macro stp.
Merci sincèrement de ton aide et de ta compréhension.
re bonjour Porter,
tu peut modifier comme ça,
CritèreFiltre = "DUPONT"
Nom = Application.Match("Nom", Rows(12), 0)
If Not Range("A12").AutoFilter Then Range("A12").AutoFilter
Range("A12").AutoFilter Field:=Nom, Criteria1:="" & CritèreFiltre
pour sélectionner la plage filtrer, s'il n'y a pas de données sur la
ligne 11
Range("A12").CurrentRegion
fera l'affaire. sinon tu peut déterminer cette plage par:
set plg = Sheets("Feuil1").AutoFilter.Range.SpecialCells(xlCellTypeVisible)
tu peut aussi déterminer la 1èr ou 2èm ligne ainsi que la dernère ligne
du filtre,
Dim PremLigne As Long, DerLigne As Long
With Sheets("Feuil1").AutoFilter.Range.SpecialCells(xlCellTypeVisible)
If .Areas(1).Rows.Count > 1 Then PremLigne = .Rows(2).Row _
Else PremLigne = .Areas(2).Row
'au cas ou
DerLigne = .Areas(.Areas.Count)(.Areas(.Areas.Count).Count).Row
MsgBox "Première ligne visible : " & PremLigne
MsgBox "Dernière ligne visible : " & DerLigne
End With
Range("A" & PremLigne).Select
isabelle
J'ai essayé ta technique pour le filtre, mais il y a qqch qui me bloque: le
CritèreFiltre=InputBox("Critère du filtre, colonne Nom (1)") me pose
problème. J'aurais voulu prédéfinir mon critère dans ma macro et non dans une
InputBox.
En plus, je n'arrive pas à l'utiliser. Ne peut-on pas définir le critère
directement? Genre le critère se trouve dans la colonne12 (intitulée "NOM")
lorsque la cellule affiche "DUPONT".
Merci.
Aussi, un autre renseignement: le Range("A1") signifie que le filtre
s'applique à partir de la cellule A1? Donc on peut modifier le départ dans le
fichier source et la copie dans le fichier de destination? C'est à dire que
la copie commence à partir de la cellule A12 par exemple?
bonjour Porter,
une fois la plage filtrée,
Set Source =
Workbooks("zaza1.xls").Sheets("Feuil5").Range("A1").CurrentRegion
Set dest = Workbooks("zaza2.xls").Sheets("Feuil4")
Source.Copy _
Destination:Þst.Range("A1")
isabelle
C'est encore moi. Je vois que tu as répondu à Pierref (juste en dessous de
moi) sur le sujet que je viens de te demander. Je vais d'abord tenter kom tu
le lui a dit mais cette méthode marche-t-elle lorsqu'on veut carrément
changer de fichier (pas le même classeur). Et aussi, de quelle manière
rentre-t-on le nom du fichier source?
Merci encore de ta disponibilité.
Porter
bonjour Porter,
Private Sub Workbook_Open()
Sheets("Feuil1").Unprotect Password:="zaza"
' ta macro
Sheets("Feuil1").Protect Password:="zaza"
End Sub
isabelle
Bonjour,
j'ai créé une macro qui s'exécute automatiquement à l'ouverture de mon
classeur en l'appelant dans ThisWorkbook avec un Workbook_Open().
Le problème est qu'excel refuse de me l'ouvrir lorsque je mets une
protection sur ma feuille. Y a-t-il un moyen de contourner cela et de faire
exécuter ma macro à l'ouverture de ma feuille malgré la protection?
Merci pour vos propositions.
Porter *
Oui c'est exactement ça. Il ne faut pas recopier la ligne des titres parce
qu'ils sont déjà reporter dans le fichier d'extraction.
pour l'emplacement du filtre je ne sais pas quoi répondre exactement,
l'essentiel est qu'il doit s'appliquer sur les lignes 12 et suivantes.
Parcontre, en espérant que ce n'est pas abusé de ma part, la recopie des
lignes doit elle absolument reprendre les cellules de chaque colonne ou
est-ce que c'est possible de ne récupérer que les cellules souhaitées ( c'est
à dire en retirant par exemple 1 ou 2 cellules ce qui fait que les lignes
extraites s'étalant à l'origine sur 20 colonnes ne soit recopier en
s'allogeant que sur 18) Mais ça peut attendre si tu ne trouve pas le moyen,
je me débrouillerai.
Mercire bonjour Porter,
je croyais que les titres de colonne était en ligne 12,
si c'est en ligne 11, est ce que le filtre est lui aussi en ligne 11 ?
pour le copy il ne faut pas inclure la ligne de titre, est ce bien ça ?
isabelleRe, encore moi tu diras lol !
En fait je crois que ce que je veux faire est plus simple que ça et qu'en
fait tout ce que tu m'a dis m'a quelque peu embrouillé vu que je suis novice
en macro.
J'ai essayé d'appliquer le principe et voilà la macro que j'ai pu faire ( et
qui ne fonctionne pas):
Sub Filtrer()
Dim CritèreFiltre As String
CritèreFiltre = "SMECO"
Nom = Application.Match("Centre Payeur", Rows(12), 0)
If Not Range("A12").AutoFilter Then Range("A12").AutoFilter
Range("A12").AutoFilter Field:=Nom, Criteria1:="" & CritèreFiltre
Range("A12").CurrentRegion.Copy
Sheets.Add
ActiveSheet.Paste
Set Source = Workbooks("Relevé-Etudiant Essai.xls").Sheets("Relevé
Nominatif").Range("A12").CurrentRegion
Set dest = Workbooks("Relevé SMECO.xls").Sheets("Affiliés SMECO")
Source.Copy _
Destination:Þst.Range("A12")
End Sub
Je t'explique ce que cette macro devait me permettre de faire. Dans une
liste d'étudiants dans un tableau (Fichier Relevé-Etudiants, feuille Relevé
Nominatif) je voudrais rentrer des informations sur les lignes (les colonnes
comportant différents champs). Ensuite, j'aimerais que par macro
(automatiquement) les lignes correspondant à mon critère "SMECO" qui se
trouve dans la colonne 12 "Centre Payeur" se recopie (sans disparaître pour
autant de mon tableau principal) dans un autre tableau (Fichier Relevé SMECO
feuille Affiliés SMECO) qui est déjà crée mais reste vierge lorsqu'il n'y a
rien qui le concerne. Le tableau initial a sur la ligne 11 les intitulés et à
partir de la ligne 12 les informations ( c'est pour ça que j'ai fait A12). Le
tableau recevant l'extraction est similaire mais vierge, et je voudrai
recopier les lignes répondant à mon critère à partir de la ligne 12 comme
dans l'autre. Je n'ai pas besoin de créer une autre feuille (donc pas de
Sheets.Add je pense).
Dis moi ce qui ne va pas dans ma macro stp.
Merci sincèrement de ton aide et de ta compréhension.re bonjour Porter,
tu peut modifier comme ça,
CritèreFiltre = "DUPONT"
Nom = Application.Match("Nom", Rows(12), 0)
If Not Range("A12").AutoFilter Then Range("A12").AutoFilter
Range("A12").AutoFilter Field:=Nom, Criteria1:="" & CritèreFiltre
pour sélectionner la plage filtrer, s'il n'y a pas de données sur la
ligne 11
Range("A12").CurrentRegion
fera l'affaire. sinon tu peut déterminer cette plage par:
set plg = Sheets("Feuil1").AutoFilter.Range.SpecialCells(xlCellTypeVisible)
tu peut aussi déterminer la 1èr ou 2èm ligne ainsi que la dernère ligne
du filtre,
Dim PremLigne As Long, DerLigne As Long
With Sheets("Feuil1").AutoFilter.Range.SpecialCells(xlCellTypeVisible)
If .Areas(1).Rows.Count > 1 Then PremLigne = .Rows(2).Row _
Else PremLigne = .Areas(2).Row
'au cas ou
DerLigne = .Areas(.Areas.Count)(.Areas(.Areas.Count).Count).Row
MsgBox "Première ligne visible : " & PremLigne
MsgBox "Dernière ligne visible : " & DerLigne
End With
Range("A" & PremLigne).Select
isabelleJ'ai essayé ta technique pour le filtre, mais il y a qqch qui me bloque: le
CritèreFiltre=InputBox("Critère du filtre, colonne Nom (1)") me pose
problème. J'aurais voulu prédéfinir mon critère dans ma macro et non dans une
InputBox.
En plus, je n'arrive pas à l'utiliser. Ne peut-on pas définir le critère
directement? Genre le critère se trouve dans la colonne12 (intitulée "NOM")
lorsque la cellule affiche "DUPONT".
Merci.
Aussi, un autre renseignement: le Range("A1") signifie que le filtre
s'applique à partir de la cellule A1? Donc on peut modifier le départ dans le
fichier source et la copie dans le fichier de destination? C'est à dire que
la copie commence à partir de la cellule A12 par exemple?bonjour Porter,
une fois la plage filtrée,
Set Source =
Workbooks("zaza1.xls").Sheets("Feuil5").Range("A1").CurrentRegion
Set dest = Workbooks("zaza2.xls").Sheets("Feuil4")
Source.Copy _
Destination:Þst.Range("A1")
isabelleC'est encore moi. Je vois que tu as répondu à Pierref (juste en dessous de
moi) sur le sujet que je viens de te demander. Je vais d'abord tenter kom tu
le lui a dit mais cette méthode marche-t-elle lorsqu'on veut carrément
changer de fichier (pas le même classeur). Et aussi, de quelle manière
rentre-t-on le nom du fichier source?
Merci encore de ta disponibilité.
Porterbonjour Porter,
Private Sub Workbook_Open()
Sheets("Feuil1").Unprotect Password:="zaza"
' ta macro
Sheets("Feuil1").Protect Password:="zaza"
End Sub
isabelleBonjour,
j'ai créé une macro qui s'exécute automatiquement à l'ouverture de mon
classeur en l'appelant dans ThisWorkbook avec un Workbook_Open().
Le problème est qu'excel refuse de me l'ouvrir lorsque je mets une
protection sur ma feuille. Y a-t-il un moyen de contourner cela et de faire
exécuter ma macro à l'ouverture de ma feuille malgré la protection?
Merci pour vos propositions.
Porter *