Extraire données à placer dans une colonne..suite

bonjour à tous et ttes,

j'espere que vous allez bien. me revoici avec mon fichier et mes marcros. je reviens vers vous car je me suis rendu compte qu'e pratique, je n'avais pas fait le bon choix. donc...je dois ajouter un tableau.

je joins le fichier pour une bonne compréhension de ma difficulté.

pour faire "simple" j'ai un problème pour résoudre une macro à partir d'une liste à composer.

cette liste (des département) servira de liste deroulante (e36)

celle-ci influencant les données des cellules b39:b45 et la somme des cellules en c39:n45.

je me rend compte ne pas être tres clair mais le fichier devrait être plus parlant...

si l'un d'entre vous peut m'aider se serait bien...

quelqu'iol en soit, soyez remercier d'avoir pris le temps de me lire et je vous souhaite une bonne fin d'après-midi...

cdlmnt,

berni///

Bonjour,

S'il y a un truc dont j'ai horreur, c'est de modifier mes touches "à l'insu de mon plein gré", par une combinaison de SendKeys, dans le Open du Workbook........

tu vas me dire, c'est de ma faute, j'aurais d'abord du regarder les codes avant d'autoriser les macros.

Cependant, si je sais comment faire pour y remédier, ce n'est peut-être pas le cas de tout le monde.

A bon entendeur

bonsoir cousinhub,

je ne comprends ps votre intervention...qu'ai je fais ?


je ne comprends pas du tt..qq un peut-il m'expliquer la réaction de cousinhub..?

qu'ai je fais de "mal"..?

bàv,

berni///

re-,

C'est bien le code présent dans l'évènement de "ThisWorkbook"?

Private Sub Workbook_Open()
    Application.OnKey "{Enter}", "AjouteCopieligne" 'Touche enter pavé numerique
    Application.OnKey "~", "AjouteCopieligne" 'Touche Entrée
End Sub

Donc, quand tu joins un fichier, tu commentes tes codes concernant l'open du fichier.

bonne soirée

bosnoir cousinhub,

je vous prie d'excuser mon ignorance mais...le code indiqué l'était lorsque j'ai reçu le fichier...

je suis "nul" en code vba...je n'ai donc pas pu mettre ce code tt seul....cela etant, je ne comprends pas le problème..ai-je fais qq chose de mal ? qu'est ce que ce code provoque ? est-il nuisible ? à vous lire j'ai l’impression d'avoir fait qq chose de dramatique...C'est peut-être le cas.. et je vous prie de m'en excuser...mais j'aimerais juste comprendre...

au point de départ, je cherchais juste une solution pour mon tableau...je ne comprends pas ....

bav,

berni///

je reste donc avec la question de savoir ce que j'ai fais et le sentiment de ne coupable de rien ...en tt cas jusqu'a preuve du contraire...

bonne soirée à tous et ttes..

cdlmnt,

berni///

Salut le forum

Benji, lorsque des macros modifient le fonctionnement normal d'Excel,

il faut penser à tout remettre en place à la fermeture du fichier.

Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Désactiver une combinaison de touches
    Application.OnKey "{Enter}", "" 'Touche enter pavé numerique
    Application.OnKey "~", ""       'Touche Entrée
End Sub

Private Sub Workbook_Open()
'Activer une combinaison de touches
    Application.OnKey "{Enter}", "AjouteCopieligne" 'Touche enter pavé numerique
    Application.OnKey "~", "AjouteCopieligne"       'Touche Entrée
End Sub

Mytå

re-bjr à tous et ttes,

bien que je ne suis pas certain de moi, j'ai modifié le code du thisworkbooks...[cfr fichier joint] en esperant que cela créra le moins de problème...

je me permets de revenir vers vous pour savoir si qq un peut m'aider pour le problème de macro et de formule exposé sur la feuille du fichier.

merci à vous ...[je suis coincé et ss intervention de l'un d'entre vous...]

cdlmnt,

berni/

bonsoir,

personne n'aurait de solution à mon problème..?

cdlmnt,

berni//

Bonsoir

Ton problème pour moi n'est pas très clair

je pensais mettre une liste deroulante en e36

Elle vient d'où cette liste ?

En principe 1 département = 1 fournisseur (sauf "mat. Puér.")

Quid des départements sans nom ?

Fais des exemples de résultats

Pourquoi ton tableau W9:AA18 ne fonctionne plus ?

Bonsoir banzaï64,

je pensais mettre une liste déroulante en e36

Elle vient d'où cette liste ?

--> je pensais mettre dans une colonne (Z par ex.) de la feuille encodage le nom des différents départements. J’aurais obtenu une liste et de cette liste j’en aurais fait une liste déroulante que j’aurais placée en e36.

Mon problème étant de répertorié une seule fois dans cette colonne les différents départements.

Par exemple, je n’aurais qu’une seule fois le département jouet.

En principe 1 département = 1 fournisseur (sauf "mat. Puér.")

-->Non car je n’ai pas tt encodé. Par exemple si en e36, je sélectionne le mot jouet, j’aurais souhaité avoir en e39 :e45 le nom des différents fournisseurs chez qui j’aurais acheté des jouets.

Par exemple j’aurais en 2012 acheté des jouets chez Auchan, carrefour et Intermarché.

Quid des départements sans nom ?

-->Lorsque j’aurais tt encodé, chaque département aura un intitulé.

Pourquoi ton tableau W9:AA18 ne fonctionne plus ?

-->en utilisant le fichier, je me suis rendu compte qu’il me manquait un tableau (celui que j’essai de créé) j’ai donc du déplacer le tableau qui se trouvait précédemment en i24 :m33.

Mais après la création du tableau que je cherche à faire…Cela tableau là ne sera plus utile compte tenu du fait que le nouveau tableau sera plus complet.

J’espère avoir été le plus complet possible pour que vous puissiez m’aider…je reste évidemment à votre disposition pr tout cplmnt d’info.

Merci à vous…

Cdlmnt,

Berni///

Bonsoir

A vérifier

Bonjour banzaï64,

tt d'abord permettez-moi de vous remercier pour votre réponse. elle me rassure.

si je peux me pemrettre un observation, je dirais que lorsque j'ai choisi un département en E36, le nom des fournisseurs apparaïent et que les montant changent. Mais, le nom des fournisseurs ne s'actualise pas en fonction de l'année indiqué en C2.

j'ai fais l'essaie en encodant les fourn20 et fourn21 dans sur la feuille encodage (en ligne 51 et 52). j'ai sélectionné l'année 2012 en C2 et le noms des fournisseurs et apparus. mais le nom de ces fournisseurs est resté dans la colonne après avoir choisi l'année 2011. pensez-vous qu'il puisse être possible de modifier cette donne ? [et donc que les fournisseurs dépendent du département choisi et de l'année choisi ?

je tiens à vous réitérer mes remerciement pr votre aide....

cdlmnt,

berni//

Bonjour

Mon point de vue

Bien sur c'est possible mais quel intérêt ?

Complication du code

Les formules dans le tableau C39:N45 tiennent compte de l'année

Alors il est peut être intéressant de savoir que tel fournisseur associé à tel département n'a pas travaillé cette année

Si tu y tiens vraiment je veux bien essayer

Bonsoir banzaï64,

vous avez raison. je dirais même plus vous avez raison. En fait au point de départ, la question qui se posait pour copnstruire ce tableau était : combien a-t-on dépensé par mois pour l'achat d'un département pour une année et chez quel fournisseur.

je peux recevoir que cela complique les choses....dès lors, peut-être pouvons nous rester sur ce modèle...

néanamoins, j'avais une question. afin de changer mon texte "ventilation : département / mois" de la cellule b36 pour mettre à la place le texte ventilation : département / mois pour l'année" j'ai souhaité changer le menu déroulant qui se trouve en E36 pr le mettre en f36. j'ai donc cherché à changer dans le code la cellule

ElseIf Not Intersect(Range("E36"), Target) Is Nothing And Target.Count = 1 Then

Application.ScreenUpdating = False

Range("B39:B45") = " "

Set Mondico = CreateObject("Scripting.Dictionary")

With Sheets("encodage_données")

For J = 4 To .Range("B" & Rows.Count).End(xlUp).Row

If .Range("F" & J) = Range("E36") Then

Mondico(.Range("E" & J).Value) = .Range("E" & J).Value

End If

en ElseIf Not Intersect(Range("F36"), Target) Is Nothing And Target.Count = 1 Then

Application.ScreenUpdating = False

Range("B39:B45") = " "

Set Mondico = CreateObject("Scripting.Dictionary")

With Sheets("encodage_données")

For J = 4 To .Range("B" & Rows.Count).End(xlUp).Row

If .Range("F" & J) = Range("F36") Then

Mondico(.Range("E" & J).Value) = .Range("E" & J).Value

End If

après cette opération, j'ai sélectionné le menu déroulant pour le mettre en F36 et là...plus moyen de rien faire sur le fichier...comme s'il était bloqué..la seule chose que j'ai fais c'est de le fermé et le relancer...

pouvez-vous me dire comment je peux faire pour changer de cellule le menu déroulant ?

un tt grand merci à vous...

cdlmnt,

berni///

Bonsoir

J'ai eu le même problème : Les macros

2 solutions

  • Tu modifies la macro tu déplaces la liste de validation (Couper/Coller) ---> Plantage --> Fermeture d'excel ---> A l'invite tu fais annuler et tu reprends la main sur le programme
  • Tu ouvres le fichier en désactivant les macros, tu fais les modifications dans la macro et tu déplaces la liste de validation (Couper/Coller), sauvegarde du fichier, fermeture, ouverture en activant les macros

Pour info tu peux modifier la macro comme ceci

  ElseIf Not Intersect(Range("F36"), Target) Is Nothing And Target.Count = 1 Then
    Application.ScreenUpdating = False
    Range("B39:B45") = " "
   If Target = "" Then Exit Sub
    Set Mondico = CreateObject("Scripting.Dictionary")
    With Sheets("encodage_données")
      For J = 4 To .Range("B" & Rows.Count).End(xlUp).Row
        If .Range("F" & J) = Range("F36") Then

Bonsoir/bonjour banzaï64,

j'espere que vous allez bien. merci pour votre derniere réponse.

nous voici (enfin j'espere arrivé à la fin de la construction de ce fichier...(enfin me direz-vous.. )

ce ne fût pas simple et je tenais à vous remercier pour votre patience tout en étant désolé d'en avoir abusé.

un tt grand merci à vous....

tres cdlmnt,

berni//

Rechercher des sujets similaires à "extraire donnees placer colonne suite"