Probléme pense bête

JBARBE

XLDnaute Barbatruc
Bonjour à tous,

Malgré ma demande sur ce forum il y a quelques temps, je n'ai pas trouvé solution !

J'ai créé un pense bête qui fonctionne mais qui pose problème lorsqu'il n'est pas utilisé depuis quelques jours !

En effet, malgré l'utilisation de la boucle suivante qui fait fonctionner le filtre plusieurs fois, les résultats ne sont pas concluants :

Code:
For i = 1 To 20
Call Filtre
Next i

Code:
Sub Filtre()
Sheets("Date_En_Cours" ).Select​
Range("A1:H200" ).Sort Key1:=Range("B1" ), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End Sub

Merci de votre collaboration et bonne journée !
 

Pièces jointes

  • Pense_Bête_Essai.xls
    93 KB · Affichages: 36
  • Pense_Bête_Essai.xls
    93 KB · Affichages: 39
  • Pense_Bête_Essai.xls
    93 KB · Affichages: 35

JBARBE

XLDnaute Barbatruc
Re : Probléme pense bête

Bonjour

Tu appelle ton filtre après avoir affiché tes messages, ceux-ci ne peuvent tenir compte du filtre.
Si c'est bien ton problème, il faut remonter ton filtre en début de procédure.

Ok, je pense que ma variable i était mal placé !

Je testerai plus tard, ce changement !

Code:
Sub Selection_Premier()
Dim j As Long
Dim i As Long
Dim DernLigne As Long
Application.ScreenUpdating = False
Range("Zone_Dates").ClearContents
For i = 1 To 20
DernLigne = Sheets(1).Range("B" & Rows.Count).End(xlUp).Row
For j = 2 To DernLigne ''''' debut j
If Cells(j, 2).Value = "" Then Exit For
If Cells(j, 9).Value = 1 Then
Cells(j + 1, 2).Select
Else
Call Selectionner
Cells(j + 1, 2).Select
End If
Next j
Call Filtre
Next i
Range("I:I").ClearContents
Application.ScreenUpdating = True
Range("A2").Select
End Sub

Merci !
 

Pièces jointes

  • Pense_Bête_Essai.xls
    91 KB · Affichages: 29
  • Pense_Bête_Essai.xls
    91 KB · Affichages: 32
  • Pense_Bête_Essai.xls
    91 KB · Affichages: 34

JCGL

XLDnaute Barbatruc
Re : Probléme pense bête

Bonjour à tous,

Attention aussi au Application.Quit

VB:
Sub Quitter()'Simule Ctrl+F1 (à lancer depuis la feuille de calcul)
    Const VK_CONTROL = &H11
    Const VK_F1 = &H70
    Const KEYEVENTF_KEYUP = &H2
    keybd_event VK_CONTROL, 0, 0, 0
    keybd_event VK_F1, 0, 0, 0
    keybd_event VK_F1, 0, KEYEVENTF_KEYUP, 0
    keybd_event VK_CONTROL, 0, KEYEVENTF_KEYUP, 0

    Application.DisplayFormulaBar = True
    ActiveWindow.DisplayHeadings = True
    ActiveWindow.DisplayGridlines = True
    ActiveWorkbook.Save
    'Application.Quit
End Sub

Tu peux remplacer :
Code:
Cells(i, 7).FormulaR1C1 = _        "=IF(WEEKDAY(RC[-5],2)=1,""Lundi"",IF(WEEKDAY(RC[-5],2)=2,""Mardi"",IF(WEEKDAY(RC[-5],2)=3,""Mercredi"",
IF(WEEKDAY(RC[-5],2)=4,""Jeudi"",IF(WEEKDAY(RC[-5],2)=5,""Vendredi"",IF(WEEKDAY(RC[-5],2)=6,""Samedi"",
IF(WEEKDAY(RC[-5],2)=7,""Dimanche"","""")))))))"

par
Code:
 Cells(i, 7).Formula = "=PROPER(TEXT(RC[-5],""jjjj""))"


A+ à tous
 

JBARBE

XLDnaute Barbatruc
Re : Probléme pense bête

Bonjour Jbarbe, Bika

Attention quand même à bien remettre le ctrl+F1 en quittant :eek:.

Merci JCGL

Ce CTRL+F1 ne fonctionne pas bien avec mon fichier !

J'ai changé avec Application.SendKeys "^{F1}" sans résultat

Comment y remédier SVP !

D'autre part la boucle i de 1 à 20 est un peut longue ( 20 étant approximatif ), comment y remédier !

Merci !
 
Dernière édition:

david84

XLDnaute Barbatruc
Re : Probléme pense bête

Bonjour,
pourquoi ne pas utiliser de vrais post-it qui resteront affichés plutôt que de passer par des MsgBox que tu dois obligatoirement fermer ?
quelques exemples développés ici qui utilisent le pense-bête de Windows et que tu peux adapter par toi-même à ta problématique.
A+
 

MJ13

XLDnaute Barbatruc
Re : Probléme pense bête

Re, Bonjour Jean-Claude ,David

Tu peux tester un code de ce type valable à partir de XL 2007.

Code:
Private Sub Workbook_Open()
Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",False)"
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",true)"
End Sub
 

JBARBE

XLDnaute Barbatruc
Re : Probléme pense bête

Bonjour,
pourquoi ne pas utiliser de vrais post-it qui resteront affichés plutôt que de passer par des MsgBox que tu dois obligatoirement fermer ?
quelques exemples développés ici qui utilisent le pense-bête de Windows et que tu peux adapter par toi-même à ta problématique.
A+

Ho là, cela deviens compliqué !

Mais pourquoi donc, une manipulation de CTRL + F1 devient-il problématique en VBA et par conséquence ne fonctionne pas bien ?
 

JBARBE

XLDnaute Barbatruc
Re : Probléme pense bête

Re, Bonjour Jean-Claude ,David

Tu peux tester un code de ce type valable à partir de XL 2007.

Code:
Private Sub Workbook_Open()
Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",False)"
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",true)"
End Sub

Merci, mais même si je posséde Excel 2007, j'aimerais avoir une réponse pour Excel 2003 !

Bonne journée
 

JBARBE

XLDnaute Barbatruc
Re : Probléme pense bête

Bon, je pense que mettre le i en début de procédure n'est pas convenable !

Je le remets comme avant !

Code:
Sub Selection_Premier()
Dim j As Long
Dim i As Long
Dim DernLigne As Long
Application.ScreenUpdating = False
Range("Zone_Dates").ClearContents
DernLigne = Sheets(1).Range("B" & Rows.Count).End(xlUp).Row
For j = 2 To DernLigne ''''' debut j
If Cells(j, 2).Value = "" Then Exit For
If Cells(j, 9).Value = 1 Then
Cells(j + 1, 2).Select
Else
Call Selectionner
Cells(j + 1, 2).Select
End If
Next j
For i = 1 To 20
Call Filtre
Next i
Range("I:I").ClearContents
Application.ScreenUpdating = True
Range("A2").Select
End Sub
 

JBARBE

XLDnaute Barbatruc
Re : Probléme pense bête

Bonjour à tous,

Peux-tu m'expliquer pourquoi tu souhaites faire un TRI 20 fois de suite ?

A+ à tous

Mon probléme est que lorsque je n'ai pas utilisé la macro depuis un certain temps, les lignes représentants les dates ne se positionnent pas correctement !

Ainsi par exemple la ligne représentant la date du jour ne se positionne pas en tête !

De fait, je suis obligé de cliquer plusieurs fois sur le bouton de la macro pour arriver au bon alignement des lignes représentants les dates !

J'ai donc pensé au filtrage successif ( 20 étant approximatif) !

Si vous avez une autre solution, je suis preneur !

A noter, on ne peux voir le probléme maintenant puisque la macro a été utilisée aujourd'hui !

Merci de vos réponses et bonne aprés-midi
 

MJ13

XLDnaute Barbatruc
Re : Probléme pense bête

Re

Pour l'histoire de masquer les Barres d'outils sur XL2003, qui soit dit en passant commence un peu à dater :eek:, il faudrait voir si il n'y a pas une commande pour mettre en plein écran.

Sinon, il faudra rendre chaque barre d'outils non visible et les remettre à la fermeture, ce qui complique l'affaire.
 

Discussions similaires

Réponses
5
Affichages
273

Statistiques des forums

Discussions
312 413
Messages
2 088 201
Membres
103 766
dernier inscrit
mahieux