Macro suivant, précédent, valider

lereuland

XLDnaute Nouveau
Bonjour à tous et à toutes,

Je ne suis pas encore très familier avec le VBA ou les macros, c'est pourquoi j'ai besoin de vos lumières si vous le voulez bien.

En PJ, un fichier tout simple pour afficher ma demande.

J'aimerai créer 3 macros, pour 3 boutons qui auraient pour effet : suivant, précédent et effectué.

Leurs actions :

suivant : afficher le code ou nom client suivant portant un "x" dans la colonne dédiée du 2è onglet
précédent : afficher le code ou nom client précédent portant un "x" dans la colonne dédiée du 2è onglet
effectué : retirer la croix du client sur lequel on se trouve.

Si plus aucun client de la liste n'a de "x", est il possible d'afficher en lieu et place du nom du client sur le 1er onglet une mention du genre : "plus aucun client"

Merci beaucoup pour vos réponses ou questions, qui pourront m'être utiles.

Bon week end!
 

Pièces jointes

  • test.xlsx
    10.5 KB · Affichages: 33
  • test.xlsx
    10.5 KB · Affichages: 35
  • test.xlsx
    10.5 KB · Affichages: 36

lereuland

XLDnaute Nouveau
Re : Macro suivant, précédent, valider

Purée mais c'est génial ! :D

Faut que je trouve comment tu as fait ^^ Merci merci !

Je vais regarder dans le détail les macros même si quand je les regarde la comme ca, c'est trop compliqué pour moi...

L'apprentissage du VB pour ce type de macro est il indispensable? Aurai-je pu faire autrement que ce que tu as très bien fait?
 

camarchepas

XLDnaute Barbatruc
Re : Macro suivant, précédent, valider

Roland ,

Par expérience , je ne dirais jamais que l'on ne peut pas faire autrement,

Mais bon ça parait trés simple comme cela

Allez avec un peu de commentaire pour t'aider à mieux découvrir VBA

Range est une zone soit une cellule soit un groupe de cellule
Sheets est une feuille ou un onglet


Code:
Sub Suivant()
'gestion du bouton suivant

Dim Trouve As Range'Déclaration de la variable Trouve permettant de mémoriser la cellule trouvée
'Recherche  par Find dans la colonne D du caractere X et mémorisation de cette cellule dans Trouve
Set Trouve = Sheets("Liste Client").Range("D:D").Find("X", lookat:=xlWhole)
'Si une cellule est trouvée
If Not Trouve Is Nothing Then
 'B5 = la cellule de la colonne B de la ligne ou l'on à trouvé le 1er X
  Range("B5") = Sheets("Liste Client").Range("B" & Trouve.Row)
 'C5 = la cellule de la colonne C de la ligne ou l'on à trouvé le 1er X
  Range("C5") = Sheets("Liste Client").Range("C" & Trouve.Row)
'Modifie le repere X en V afin de ne pas le prendre en compte lors de la recherche suivante
  Sheets("Liste Client").Range("D" & Trouve.Row) = "V"
 Else
 'Pas de X trouvé 
  Range("B5") = ""
  Range("C5") = "Plus de client"
End If
End Sub

'Idem qu'au dessus sauf que le caractére recherché est le V
' Si trouvé l'on le transformera à nouveau en X

Sub Précédant()
Dim Trouve As Range

Set Trouve = Sheets("Liste Client").Range("D:D").Find("V", lookat:=xlWhole, SearchDirection:=xlPrevious)
If Not Trouve Is Nothing Then
  Range("B5") = Sheets("Liste Client").Range("B" & Trouve.Row)
  Range("C5") = Sheets("Liste Client").Range("C" & Trouve.Row)
    Sheets("Liste Client").Range("D" & Trouve.Row) = "X"
 Else
   Range("B5") = ""
  Range("C5") = "Plus de client"
End If
End Sub

Sub Efface_Croix()
Dim Trouve As Range
'Recherche du nom actuellement affiche dans le masque 
Set Trouve = Sheets("Liste Client").Range("C:C").Find(Range("C5"), lookat:=xlWhole)
'Suppression des reperes de cette ligne 
  Sheets("Liste Client").Range("D" & Trouve.Row) = ""
End Sub
 

lereuland

XLDnaute Nouveau
Re : Macro suivant, précédent, valider

Rha c'est quand meme vraiment fort :)
Je te remercie vraiment beaucoup pour cette aide précieuse, et d'avoir pris le temps de détailler les "fonctions".
Je pourrais essayer de refaire ces macros sur d'autres feuilles pour mieux me familiariser avec l'outil :D

Merci encore !

Bon week end !
 

Discussions similaires

Statistiques des forums

Discussions
312 329
Messages
2 087 334
Membres
103 519
dernier inscrit
Thomas_grc11