Macro pour allez de zone en zone suivant une condition

Chrige

XLDnaute Occasionnel
Bonjour

J’utilise 2 macros pour aller directement de page en page vers le haut ou le bas

Pour ce faire, j’utilise un repaire « texte » sur chaque début de zone que j’ai mis dans la 1ère colonne

Je voudrais en plus faire la même chose, mais pas pour chaque zone, mais en fonction d’une formule que j’ai placée dans la colonne « G »

Si la condition est vraie, elle renvoie une valeur, si elle est fausse, elle renvoie ""
(Que le formule donne une valeur numérique ou texte, m’est indifférent, puisque sa seule fonction est de permette d’aller dans les zones concernées)

Mais dans ce cas, même si la formule renvoie "" , la macro la considère comme texte et s’arrête dessus.

J'ai réalisé un petit exemple

Merci pour une aide éventuelle
 

Pièces jointes

  • Vers Zone.xlsm
    17.4 KB · Affichages: 33
  • Vers Zone.xls
    43.5 KB · Affichages: 35

Papou-net

XLDnaute Barbatruc
Re : Macro pour allez de zone en zone suivant une condition

Bonjour Chrige,

Il te faut ajouter une boucle While...Wend pour tester la valeur de ta cellule, la formule faisant que VBA considère que la cellule n'est pas vide.

Exemple :

Code:
Sub Page_Down2_mF()
'
' PageDown Macro

' Vers rubrique suivante

' Touche de raccourci du clavier: Ctrl+Maj+D
'
nlig = ActiveCell.Row
derl = Cells(nlig, 7).End(xlDown).Row
While Cells(derl, 7).Value = ""
  If derl = Rows.Count Then Exit Sub
  derl = Cells(derl, 7).Offset(1, 0).End(xlDown).Row
Wend
Application.Goto Reference:="R" & derl & "C1"
End Sub

Sub Page_Précédante2_mO()
'
' Page_Précédante Macro

' Vers rubrique précédante

' Touche de raccourci du clavier: Ctrl+Maj+P
'
nlig = ActiveCell.Row
derl = Cells(nlig, 7).End(xlUp).Row
While Cells(derl, 7).Value = ""
  derl = Cells(derl, 7).Offset(-1, 0).End(xlUp).Row
Wend
Application.Goto Reference:="R" & derl & "C1"
End Sub
Petites précisions :

Il est inutile de "scroller" en fin de feuille pour revenir à la bonne page. J'ai donc supprimé l'instruction Application.Goto Reference:="R64536C1"
La variable ncol n'a aucune utilité, dans l'immédiat du moins. Je l'ai donc également effacée.

Voilà, espérant avoir résolu la demande.

Cordialement.
 
Dernière édition:

Chrige

XLDnaute Occasionnel
Re : Macro pour allez de zone en zone suivant une condition

Bonjour Papou-Net

J’avais trouvé ta macro en fin de matinée
J’étais en train d’écrire la version descendante
Mais je rencontrais un problème en arrivant en fin de liste

Je vois que tu as posté depuis les 2 versions

Il me manquait la condition :
Code:
If derl = Rows.Count Then Exit Sub

C'est pas grave, cela m'a permis de mieux comprendre la macro ....


Maintenant c’est parfait dans les 2 sens.

Merci beaucoup
La demande est parfaitement résolue
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 915
Membres
101 837
dernier inscrit
Ugo