XL 2019 Action en fonction du choix sur liste déroulante [Résolu]

Maniolius

XLDnaute Nouveau
Bonjour tout le monde,
Je me permet de poster un message sur ce forum car je n'arrive pas à trouver une solution dans le paramétrage de mon tableau de compta.
Je suppose qu'il y à la solution dans ce forum, mais il est tellement vaste que je n'arrive pas à trouver.
Voici ma question:
Dans mon onglet "Compta" j'ai 2 colonne avec chacune une liste déroulante.
La première est "Objet" qui doit avoir une "influence" sur un tableau de budget
La seconde est "activité" qui doit diriger "l’influence" sus citée vers le bon onglet.

Concrètement ce que je veux:
Quand je remplis ma ligne de comptabilité
Quand j'ai sélectionné mon choix dans "activité", cela "sélectionne" l'onglet correspondant
Quand j'ai sélectionné mon choix dans "objet" le montant de ma ligne compta soit déduite sur la ligne compta correspondante du tableau budget de l'onglet précédemment sélectionner.
Je ne sais pas si c'est bien expliqué
En tout cas je vous mets mon fichier excel pour vous aider.

J'aimerais avant tout savoir comment programmer cela pour apprendre à le faire.

Merci d'avance pour votre aide

Cédric
 

Fichiers joints

fanfan38

XLDnaute Accro
Bonjour
Si j'ai bien compris quand tu as choisis l'objet on va chercher la ligne correspondante sur la feuille budget
quand tu as choisis l'activité tu choisis la feuille correspondante (attention! les espaces n'était pas les mêmes (Janvier - Février et Janvier-Février)...
Le montant saisie sur la feuille compta doit être déduit sur quel budget APS, AES, CLAS, etc...
exemple: si je choisis Assurance, Été d'un montant de 125.36€
je mets sur le feuille "Été" en D10 125.36€
Y a t'il quelque chose à faire sur la feuille budget?
il y a une liaison avec un autre fichier?
A+ François
 

Fichiers joints

Maniolius

XLDnaute Nouveau
Bonjour, je vous remercie de votre réponse rapide.
Ce que je veux en fait (je pense avoir mal expliqué), c'est simplement l'onglet compta à remplir
Et quand j'ai remplir une ligne compte en sélectionnant l'objet et l'activité, cela reporte automatiquement le montant dans le bon onglet et sur la bonne ligne
Sachant qu'au préalable, j'aurai rempli manuellement chaque colonne "budget période" de chaque onglet"

exemple:
1) je rempli une 1ere ligne compta: objet= transport / montant =400€ / activité= mars-avril
2) je veux que le dépense de 400€ soit automatiquement reportée dans l'onglet "mars-avril" à la ligne "transport" et dans la colonne "dépensé"
3) je rempli une seconde ligne compta: objet=petite fourniture / montant=150 € / activité = printemps
4) je veux que le dépense de 150€ soit automatiquement reportée dans l'onglet "printemps" à la ligne "petite fourniture" et dans la colonne "dépensé"
5) je rempli une 3eme ligne compta: objet = transport / montant= 200€ / activité=mars-avril
6) je veux que la dépense de 200€ soit ajoutée automatiquement à la dépense 1) dans le bon onglet et la bonne ligne


ps: il n'y a rien à faire sur l'onglet budget

Merci d'avance
 

Maniolius

XLDnaute Nouveau
En parti oui. Et je t'en remercie
J'ai pas tout tester, mais j'aimerai aussi que par exemple, si j'ai 2 dépenses différentes pour le même objet et pour la même période, c'est 2 dépense s'additionnent

Peux-tu m'expliquer comment tu as fait pour arriver à créer ses liaisons?

Merci
Cédric
 

fanfan38

XLDnaute Accro
Tu as une liaison avec un fichier ALSH 2019xlsx....
VB:
'cette macro se lance automatiquement quand il y a une modif sur la feuille

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim c As Range
  If Target.Column = 7 And Len(Target.Value) > 0 Then 'si la modif est dans la colonne 7 (G) et que la cellule n'est pas vide
    If Len(Range("C" & Target.Row).Value) = 0 Then 'si la colonne C est vide=message
      MsgBox ("Veuillez saisir un Objet")
      Target.Value = ""
      Exit Sub 'on sort de la macro
    End If
    If Len(Range("E" & Target.Row).Value) = 0 Then 'si il n'y a pas de montant
      MsgBox ("Veuillez saisir un Montant")
      Target.Value = ""
      Exit Sub                            'on sort de la macro
    End If
    Sheets(Target.Value).Activate 'on active la feuille correspondante à la saisie (colonne G)

'on recherche dans la colonne B l'objet
    Set c = ActiveSheet.Columns(2).Find(Range("C" & Target.Row).Value, LookAt:=xlWhole)
'on met dans la cellule de la colonne D le montant '(c.row est la ligne trouvée)
    ActiveSheet.Range("D" & c.Row).Value = Sheets("COMPTA").Range("E" & Target.Row).Value
  End If
End Sub
Pour additionner plusieurs dépense dans cette cellule tu remplaces la dernière ligne par:
ActiveSheet.Range("D" & c.Row).Value = ActiveSheet.Range("D" & c.Row).Value+Sheets("COMPTA").Range("E" & Target.Row).Value
A+ François
 

Maniolius

XLDnaute Nouveau
ah c'est chaud quand même. Il faut prendre des cours de programmation pour arriver à faire ça.
Je prend le temps de regarder ce soir tout ça voir si il manque des choses et je reviens vers toi après
je te remercie
 

fanfan38

XLDnaute Accro
J'ai tout appris tout seul, petit à petit depuis 30 ans... et je continue à souvent faire des recherches (Google est notre amis)... Bon confinement
A+ François
 

Danixdb

XLDnaute Nouveau
Bonjour Maniolius, fanfan38, Le Forum,

Et une solution par formule, est-ce que cela conviendrait aussi ou faut-il une macro ?
Voici ma proposition
Cordialement
DanixDB
 

Fichiers joints

Maniolius

XLDnaute Nouveau
Quelle va être la différence entre la macro et la formule?
Je suis pas expert en formule, mais est ce que tu pourrais m'expliquer la formule que tu as mis pour que je comprenne un peu? merci
 

Danixdb

XLDnaute Nouveau
Bonjour,
Pour moi, une formule est plus simple à comprendre qu'une macro et ce sans être expert (voir aide en ligne pour les formules). Mais là, je vous laisse juge car les deux solutions fonctionnent.
La formule fait la somme des montants en prenant comme les critères suivants :
1 - la désignation de produit
2 - l'activité
sur base du tableau structuré tabCompta (ce tableau va s'auto-étendre dès que vous ferez une nouvelle saisie, et permet une lecture plus facile des formules de calcul).

Comme vous avez pu le voir, j'ai ajouté un en-tête à chaque feuille pour y indiquer l'activité (période) et je m'en sers dans la formule (cf $A$1)
=SOMME.SI.ENS(tabCompta[Montant];tabCompta[Objet];$B3;tabCompta[Activité];$A$1)
Cordialement
DanixDB
 

Maniolius

XLDnaute Nouveau
Bonjour, du coup je prend la version avec une formule qui est effectivement plus simple pour moi.
Merci à tous d'avoir pis du temps pour mon tableau

Cédric
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas