Filtre automatique

bonjour a vous,

j'ai ce code :

Feuil3.Range("$A$5:$S$65000").AutoFilter Field:=12, Criteria1:="", Operator:=xlOr

ActiveWindow.ScrollRow = 3

Le soucis c'est dès lors qu'il est appliqué il me lance bien le filtrage mais a partir de la ligne 2 et non la 5.

Pour ma part, j'ai mes entetes à la ligne 4 et j'aurais souhaité que le filtrage se fasse a partir de cette ligne

A quoi sert la fonction ActiveWindow.ScrollRow = 3

Merci par avance de votre aide.

Bonjour,

Si ligne d'en-tête en 4 :

Feuil3.Range("$A$4:$S$4").AutoFilter Field:=12, Criteria1:=""

Limite-toi à ça (élimine le ScrollRow qui n'est pas une fonction et va simplement faire débuter l'affichage de la fenêtre à la ligne 3) et indique ce qu'il se passe.

Qu'y a-t-il ligne 3 ?

Que souhaites-tu filtrer exactement ?

Merci de ta reponse mais Snif ca ne marche toujours pas il me bride toujours direct a partir de la 2ème ligne et me fait disparaitre la 3 et 4...

Ci joint le fichier le but etant d'avoir un filtre comme tu verras avec toute les fiche sans date de fin

et un filtre avec toutes les verifications periodique

tout en gardant le filtre a la ligne 4

Je sais que c'est beaucoup demandé mais si apres tu peux m'expliqué ce que tu as fait pour reussir cela ca serait chouette j'aime bien comprendre

[size=150]J'apprécie modérément les interfaces imposées à l'ouverture.

Encore plus modérément quand tout est verrouillé.

Mais quand ça déclenche une série d'erreurs et que je n'ai plus d'interface ça dépasse tout.

[/size]

TU ES UN DANGER PUBLIC.

Tu vas me faire le plaisir de me faire passer dare dare ton programme pour rétablir l'interface.

[b]On ne peut pas vraiment dire que tu mettes beaucoup de diligence à réparer tes conneries.

J'attends ton code complet de modification d'interface pour vérifier qu'il n'y a pas de dégâts non apparents...[/b]

[b]Ta promptitude à réagir fait peur !

Comme ton ignorance de tout code de bonne conduite.[/b]

Quand on communique un fichier on ne verrouille pas le code VBA (ou on se demande pourquoi communiquer le fichier sur un forum !)

On désactive tout code susceptible de modifier l'interface d'un intervenant.

On prévient de la présence d'un tel code.

Même chose pour les Userform imposés à l'ouverture : on désactive si ce n'est pas l'objet de la discussion.

Et on indique comment en sortir.

Quand on bidouille l'interface, on s'assure que le code est fiable, qu'aucune erreur n'est susceptible d'intervenir, et qu'en cas d'erreur éventuelle celle-ci est récupérée pour rétablir l'interface dans tous les cas !

Et quand on ne maîtrise pas suffisamment pour être conduit à demander de l'aide pour des opérations élémentaires, on réserve pour plus tard ce type d'opérations à risque (surtout pour les autres).

Tant qu'on ne maîtrise pas de bout en bout les processus touchant au fonctionnement de l'application, on s'abstient d'y toucher !

Désolé de t'avoir tant offenser ce n’était pas mon but.

A défaut je me débrouille avec ce que je trouve par ci et par la comme je peux maintenant je ne suis pas un pro du VBA et utilise votre site jour apres jour pour tendre vers ce point... Je vais essayer de te refaire une version plus épuré alors

Pas trop tôt !

Plus question que j'ouvre un seul de tes fichiers !

Une fois, c'est largement une fois de trop en la matière !

J'ai demandé le code pour vérifier, soit un export du module concerné, ou une reproduction du code.

J'espère que tu n'attends plus de réponse sur quelque problème que ce soit !

Je maintiens que tu es un danger public !

Moi qui pensait que le forum était convivialité...

A défaut Danger il n'y a rien de dangereux nul part !

Juste que ca met la fenetre en pleine ecran une fois le code admin tapé op tout revient comme tel c'est tout passons... Merci de ton aide quand meme hein... Maintenant je suis en version 2016 et certain code ne sont pas pris en compte sur 2010 ca je n'y peux rien pour ma part ca tourne sur 3 structure différente en 2016 et il n'y a aucune erreur pour qui que se soit... Bonne journée a toi le M. qui cri

Relis ce que j'ai dit. Je ne retire pas une virgule !

Un fichier verrouillé ça n'a rien de convivial : c'est par là qu'il faut commencer.

certain code ne sont pas pris en compte sur 2010 ca je n'y peux rien

Oh que si ! Tu es pleinement responsable du code que tu balances. Mais effectivement, tu te comportes en irresponsable.

Et je te signales que j'attends toujours ton code.

Si on parle du même code je te l'ai transmis en Mp me les ayant demandé

Désolé je n'ai pas l'habitude d’être sur les forums d'habitude c'est l'assemblage etc l'utilisation et je m'attaque a la programmation qui est autre a pressent et je ne pense pas forcement a tout pour en discuté sur un forum j'en suis désolé.

Je parle du code VBA.

Celui qui concerne la modification et le rétablissement de l'interface.

Sub AnnulerAffichageGMAO()

ActiveWindow.DisplayWorkbookTabs = True

Application.ScreenUpdating = False

Application.DisplayFormulaBar = False

Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",true)"

Application.DisplayFullScreen = False

Application.ScreenUpdating = True

Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",true)"

Et le code qui le met cet affichage !?

D'autant que visiblement tu n'enregistres pas les paramètres de celui qui a le malheur d'ouvrir ton appli, de façon à pouvoir les rétablir exactement après ! Ce qui est quelque peu incorrect dans tous les cas de figure !

J'aime autant te dire que si on m'avait fait un coup comme ça au boulot l'intéressé aurait eu intérêt à numéroter ses abatis, quel que soit son grade ou sa fonction... On n'aurait d'ailleurs pas osé !

Sub OteTitleBarre(stCaption As String, pbVisible As Boolean)

Dim vrWin As Rect

Dim Style As Long

Dim lHwnd As Long

'- Recherche du handle de la fenêtre par son Caption

lHwnd = FindWindowA(vbNullString, stCaption)

If lHwnd = 0 Then

MsgBox "Handle de " & stCaption & " Introuvable", vbCritical

Exit Sub

End If

GetWindowRect lHwnd, vrWin

Style = GetWindowLong(lHwnd, GWL_STYLE)

If pbVisible Then

SetWindowLong lHwnd, GWL_STYLE, Style Or WS_CAPTION

Else

SetWindowLong lHwnd, GWL_STYLE, Style And Not WS_CAPTION

End If

SetWindowPos lHwnd, 0, vrWin.Left, vrWin.Top, vrWin.Right - vrWin.Left, _

vrWin.Bottom - vrWin.Top, SWP_FRAMECHANGED

End Sub

'*********************************Gestion affichage GMAO**************************************

Sub AffichageGMAO()

Application.ScreenUpdating = False

Dim Ws As Worksheet

For Each Ws In ThisWorkbook.Worksheets

If Ws.Name Like "Base" Then

Ws.Activate

ActiveWindow.DisplayHeadings = True

Else

Ws.Activate

ActiveWindow.DisplayHeadings = False

End If

Next Ws

ActiveWindow.DisplayWorkbookTabs = False

Application.DisplayFormulaBar = False

Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",false)"

Application.DisplayFullScreen = True

Application.ScreenUpdating = True


Autant etre sincere je comprends pas la partie enregistrement des parametre dont tu me parles.

Ce que je sais c'est que je ne suis pas du tout impacter pour ma part ayant d'autre excel ouvert en meme temps sur mon 2016 Pro...

Je comprends pas qu'a te lire ca semble tout te de regler, j'en suis vraiment navré.

Es-tu sûr que tes procédures sont complètes ?

Il y en a deux sans End Sub !

Et je ne vois pas de procédure lançant OteTitleBarre ?

Et les déclarations de fonction API, je veux bien les voir aussi !!

J'en utilise certaine via les userform dont otitle

Option Explicit

'Pour enlever la barre de titre du UF

Public Type Rect

Left As Long

Top As Long

Right As Long

Bottom As Long

End Type

Public VarAffichage As Boolean

Public VarSuppression As Boolean

Public VarBlocage As Boolean 'Utilisée dans ThisWorkbook et bouton exit

Public Const GWL_STYLE = (-16)

Public Const WS_CAPTION = &HC00000

Public Const SWP_FRAMECHANGED = &H20

Public Declare PtrSafe Function FindWindowA Lib "user32" _

(ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Public Declare PtrSafe Function GetWindowRect Lib "user32" _

(ByVal Hwnd As Long, lpRect As Rect) As Long

Public Declare PtrSafe Function GetWindowLong Lib "user32" Alias _

"GetWindowLongA" (ByVal Hwnd As Long, ByVal nIndex As Long) As Long

Public Declare PtrSafe Function SetWindowLong Lib "user32" Alias _

"SetWindowLongA" (ByVal Hwnd As Long, ByVal nIndex As Long, _

ByVal dwNewLong As Long) As Long

Public Declare PtrSafe Function SetWindowPos Lib "user32" _

(ByVal Hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, _

ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, _

ByVal wFlags As Long) As Long

Public Bascule As Boolean

Public LgP As Long 'Variable numero pieces

'****************************Préventif plannifié********************************************************************

Public LgPP As Long 'Variable numero interventions préventif planifié

'******************************Recherche********************************************************

Public Operateur As String

C'est simple à comprendre, qu'avant de modifier les paramètres de quelqu'un, tu commences par enregistrer ses paramètres de façon à lui rétablir les siens et non ceux qui te passent par la tête !

Et quand on se lance dans ce genre de choses on s'assure que cela fonctionne dans tous les cas de figure et surtout en cas d'erreur, et sur toutes les versions, et quand on n'a pas testé systématiquement, on prévient de façon systématique en énumérant les versions sur lesquelles le fonctionnement a été testé.

Et on désactive l'ensemble pour le communiquer sur un forum, même si c'est le sujet de discussion !!

Enfin, cela réclame une maîtrise, et quand on ne l'a pas mieux vaut s'abstenir !


Décidément !

Je n'ai toujours pas les appels de la procédure OteTitleBarre !

Le fait qu'ils soient dans Workbook_Open ou dans le Userform ne me donne pas la ligne d'appel !

Je comprends a present...

Pour ce qui est de tous cela c'est de l'assemblage.. Je cherche sur les forum ce que je veux faire essai de les assembler et je viens vous voir quand ca ne fonctionne pas totalement comme c'est le cas pour mon filtre automatique... :/ Je verrais a proceder comme decrit audessus dans l'avenir.

Pour ce qui est de la procedure d'appel... enfaite j'en ai plus je verifie juste cela...

Private Sub UserForm_Initialize()

OteTitleBarre Me.Caption, False

CommandButton4.Visible = False

CommandButton3.Visible = False

End Sub

Dans le formMenu

Je suis vraiment désolé du bazard que ca a pu causé et j'en suis conscients.

J'ai de ce fait refait un fichier en retirant tout mot de passe affichage etc etc dessus...

si tu peux ou veux bien jeté un oeil tout de meme ... sinon tant pis.

C'etait pour le filtre automatique de du bouton tache a effectuer dans le menu principale.

Rechercher des sujets similaires à "filtre automatique"