Liste déroulante qui renvois vers diferente case

Bonjour a tous, je suis nouveau sur le forum et j'aime beaucoup Excel pour ses différente fonctionnalité et la je plante sur une fonction que je voudrais mettre sur une feuille de calcule pour ma gestion de compte pour l'année 2023.

Cela fait maintenant plusieurs semaine que je travail sur cette nouvel feuille qui remplaceras la précédents (qui fonctionnais plutôt bien mais qui m’obligeais a faire de nombreuse manipe et sur plusieurs page), hors là je voudrais regroupé plusieurs fonctionnalité sur la même fonction, je vous explique en quelque ligne, si quelqu'un pourrais me donner une direction a suivre car j'ai essayer plusieurs fonctionnalité mais a chaque fois je plante ...

Donc sur ma feuille ci jointe la première ligne est fixe, le reste présente plusieurs liste déroulante qui indique en A "la date d’opération", en B "la date compta de la banque", en C "le type d’opération", " ensuite il y a 2 case a remplir manuellement pour indiquer le motif et le destinataire puis arrive les colonne "F" et "G" qui représentent les crédit et débit, la colonne "H" quand a elle change de couleur et valide l’opération de crédit ou de débit une fois validé manuellement avec un "X". Le résultat apparait en haut de la feuille en case "R1".

En case "S1" j'ai une liste déroulante avec les mois de l'année et j'aimerais que quand je sélectionne ( exemple) Février case "D100", cela me mette la ligne du mois de février au centre de mon écran, idem avec les autre mois de l'année mais en plus toujours avec ce mois je voudrais qu'en case "P1" le résultat du mois indiquer apparaisse, dans mon exemple il s'agirait de la case "M200".

(j'ai mis plusieurs mise en forme pour changer la couleur des résultat en fonction qu'il soit positif ou négatif).

J'ai testé les fonction "RECHERCHE" et "SI" (je ne connais pas toute les autre fonctionnalité) mais sans résultat, pourtant je sais que c'est possible car je l'ai vu en formation mais cela remonte a 2008 donc dur de ce souvenir...

J'ai bien cherché sur différent forum mais difficile d'expliquer ce que je recherche quand on ne connais pas la formulation a adopté...

Voila je crois avoir tout dit, j'espère avoir été suffisamment claire dans mes explication et que l'un d'entre vous pourras m'aiguiller vers la bonne solution.
En attendant de vous lire...

152023.xlsx (157.44 Ko)

Bonjour,

Pour ne parler que de votre fichier, faites attention à l'orthographe (exercise à la place d'exercice , où bien, dans la liste déroulante des mois, si vous mettez un accent sur "Février, Août, Décembre", il faut que dans la feuille, on retrouve ces mois avec les accents, (même si l'on peut contourner facilement le problème dans le code, cela fait partie des bonnes pratiques et peut vous éviter des déboires tel qu'un mauvais fonctionnement de l'application)

Le fichier

Le code dans le module de la feuille:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim L_Mois As Long, L_Prev As Long, DerLig As Long
    On Error GoTo Sortie
    Application.EnableEvents = False
    Application.ScreenUpdating = False
    DerLig = Range("D" & Rows.Count).End(xlUp).Row
    If Target.Address = "$S$1" Then
        L_Mois = Application.Match(Target, Range("D1:D" & DerLig), 0)
        L_Prev = Application.Match("Exercice Mensuel", Range("D" & L_Mois & ":D" & DerLig), 0) + L_Mois - 1
        ActiveWindow.ScrollRow = L_Mois - 10
        Range("P1").Value = Cells(L_Prev, "M")
    End If
Sortie:
    Application.EnableEvents = True
End Sub

Cdlt

Merci Arturo83, pour l’orthographe je vais essayer de faire un effort bien que cela fait 45 ans que j'essaie sans résultat ....
Merci pour ton aide mais par contre je ne comprends rien a ce code, je suis a des année lumière d’être capable de le déchiffré... je n'ai jamais utiliser ce type de format, je ne sais même pas ou allez pour recopier ce code, moi je passe toujours par "inséré une fonction"...

De votre côté, vous n'avez rien à faire, la macro se lancera dès que vous sélectionnerez un mois avec la liste déroulante en S1

Le code est crée dans le module VBA de la feuille, pour y accéder, appuyez simultanément sur les touches ALT et F11

giresini

Revoici le code avec les commentaires pour chaque ligne

'Cette macro se lancera à chaque changement ou validation des valeurs de la cellule S1

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim L_Mois As Long, L_Prev As Long, DerLig As Long 'déclaration des variables
    On Error GoTo Sortie 'si une erreur est détectée pendant l'exécution de la macro, on redirige vers l'étiquette "Sortie" pour réactiver les détctions des évènements
    Application.EnableEvents = False 'Désactive les évènements détectés par excel survenu en cours d'exécution de la macro
    Application.ScreenUpdating = False 'empêche le rafraîchissement de l'écran et augmente la vitesse d'exécution
    DerLig = Range("D" & Rows.Count).End(xlUp).Row 'recherche la dernière ligne occupée dans la colonne D
    If Target.Address = "$S$1" Then 'si la cellule sélectionnée est la cellule S1, alors
        L_Mois = Application.Match(Target, Range("D1:D" & DerLig), 0) 'on recherche sur quelle ligne se trouve le mois sélectionné en S1
        L_Prev = Application.Match("Exercice Mensuel", Range("D" & L_Mois & ":D" & DerLig), 0) + L_Mois - 1 ' à partir de la ligne précédente, on recherche la dernière ligne du mois sélectionné
        ActiveWindow.ScrollRow = L_Mois - 10 'on fait défiler l'écran pour ramener l'affichage en face de la plage du mois sélectionné
        Range("P1").Value = Cells(L_Prev, "M") 'dans la cellule P1, on inscrit le montant trouvé sur la ligne précédente en colonne M
    End If
Sortie:
    Application.EnableEvents = True 'avant de quitter la macro, on réactive la possiblité à excell de détecter tous les changements ur la feuille
End Sub

En espérant que cela vous éclaire un peu plus.

Cdlt

Merci pour les explication, je croyais qu'il fallait les rentré quelque part car cela ne fonctionnais pas mais je viens de voir qu'il y avais un avertissement, j'ai activé la commande et maintenant ça fonctionne parfaitement.

image

Merci d'avoir pris le temps de m'expliquer ce code ligne par ligne j'ai vu qu'il y a une section "formation" je vais allez y jeter un œil histoire de me raviver la mémoire.

Rechercher des sujets similaires à "liste deroulante qui renvois diferente case"