Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

2 Macros qui beugent

  • Initiateur de la discussion Initiateur de la discussion Chri8Ed
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Chri8Ed

XLDnaute Occasionnel
Bonjour à tous

J’ai deux macros qui me permettre de passer de mois en mois dans mon tableau
Une en descendant
Et une en montant

De même j’ai deux macros qui me permettre de passer d’année en année
Une en descendant
Et une en montant


Les 2 macros qui vont en descendant fonctionnent parfaitement

Les 2 macros en montant bloquent
Erreur d'execution '13' : Incompatibilité de type

Pour celle des années sur :
If Year(Range("B" & n)) = suiv Then

Pour celle des mois sur :
If Month(Range("B" & n)) = suiv Then


Ne pouvant mettre le fichier
Je joins les 4 macros
Si quelqu’un peut m’aider, je le remercie d’avance



Les 4 macros :


Sub Vers_premier_jour_mois_suivant()

' Passage de mois en mois en descendant
' Touche de raccourci du clavier: Ctrl+S

Cells(ActiveCell.Row, 2).Select
If Selection.Column <> 2 Then Exit Sub
x = Month(Selection.Value)
suiv = x + 1
If suiv = 13 Then suiv = 1
For n = Selection.Row To Range("B" & Rows.Count).End(xlUp).Row
If Month(Range("B" & n)) = suiv Then
Range("B" & n).Select
Exit For
End If
Next
ActiveWindow.ScrollRow = Selection.Row
End Sub

----------------

Sub Vers_premier_jour_mois_precedent()

' Passage de mois en mois en remontant
' Touche de raccourci du clavier: Ctrl+P

Cells(ActiveCell.Row, 2).Select
If Selection.Column <> 2 Then Exit Sub
x = Month(Selection.Value)
suiv = x - 1
If suiv = 0 Then suiv = 13
For n = 4 To Range("B" & Rows.Count).End(xlUp).Row
If Month(Range("B" & n)) = suiv Then
Range("B" & n).Select
Exit For
End If
Next
ActiveWindow.ScrollRow = Selection.Row
End Sub

--------------------

Sub Vers_premier_jour_annee_suivante()

' Passage d'année en année en descendant

Cells(ActiveCell.Row, 2).Select
If Selection.Column <> 2 Then Exit Sub
x = Year(Selection.Value)
suiv = x + 1
'If suiv = 13 Then suiv = 1
For n = Selection.Row To Range("B" & Rows.Count).End(xlUp).Row
If Year(Range("B" & n)) = suiv Then
Range("B" & n).Select
Exit For
End If
Next
ActiveWindow.ScrollRow = Selection.Row
End Sub

----------------------

Sub Vers_premier_jour_annee_precedente()

' Passage d'année en année en remontant
' Touche de raccourci du clavier: Ctrl+P

Cells(ActiveCell.Row, 2).Select
If Selection.Column <> 2 Then Exit Sub
x = Year(Selection.Value)
Cells(ActiveCell.Row, 2).Select
suiv = x - 1
If suiv = 0 Then suiv = 13
For n = 4 To Range("B" & Rows.Count).End(xlUp).Row
If Year(Range("B" & n)) = suiv Then
Range("B" & n).Select
Exit For
End If
Next
ActiveWindow.ScrollRow = Selection.Row
End Sub
 
Bonjour Je suis toujours à la recherche d'une aide pour résoudre mon problème
Comme on me l'a conseillé, j'ai mis un fichier exemple
J'espère que cela peut aider à comprendre
Merci d'avance
 
Bonjour et merci beaucoup Pierrejean

C'est quasiment parfait
Je dis quasiment cela plante au 1er mois ou à la première année
Je ne vous pas pourquoi ??
D"autant plus que dans ton fichier, cela ne plan pas !

La macro plante à cette ligne :
If Month(Range("B" & m)) <> mois Then

ou pour les année
If Year(Range("B" & m)) <> an Then

-----

La 1ère date de mon tableau est 03/09/13

Quand je suis sur 03/10/13
(La date précédente à cette date est le 30/09/13)
Cela devrait donc pointer la date du 03/09/13
Mais cela plante à ce niveau


Quand je suis sur le 1er jour de l'année 2014
Cela devrait donc pointer la date du 03/09/13
Mais cela plante à ce niveau

A+
 
Bonjour Pierrejean

J'ai fini par trouver l'erreur
Tout d'abord dans la ligne 7, juste au dessus de la 1ère date
J'ai le titre "Date" et je ne l'avais pas mis dans mon exemple
Cela à solutionné un problème

Ensuite, comme tu m'a mis sur la voie en me demandant si ma 1ère ligne était la 4
J'ai donc compris la raison de "To 4 Step -1"
j'ai donc mis "To 7 Step -1"
Car ma 1ère ligne est la 8ème ligne

Cela fonctionne parfaitement maintenant

Par contre, si je comprend bien, si je veux laisser mon titre date
Il faudrait d'abord faire un test pour savoir si la cellule est texte ?
Mais cela risque de sans doute compliquer la macro ?

Je n'ai pas encore compris pourquoi dans ta solution
tu as mis "To 4 Step -1" et que cela fonctionne
Alors que la 1ère ligne est la ligne 8 ??

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
707
Réponses
2
Affichages
427
Réponses
7
Affichages
334
  • Question Question
Microsoft 365 Problème de date
Réponses
5
Affichages
267
Réponses
9
Affichages
256
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…