Aménagement d’une macro qui me semble incomplète

Vieupot

XLDnaute Occasionnel
Bonsoir,

J’ai à ma façon créé cette petite macro qui en un premier temps est chargée d’effacer les données enregistrées dans la feuille ‘’6010 ‘’….ça fonctionne



Ensuite elle va chercher dans une autre feuille les données sélectionnées par un filtre pour les copier à la place des données qui ont été effacées précédemment…. Ça marche aussi



Ensuite elle va chercher en I6 la date qui est dans cette cellule (fonction aujourdhui ) pour la copier en I5

J’ai créé un formule qui me dit que la différence entre I6 et I5 ne doit pas dépasser 8 jours c'est-à-dire ne pas oublier de mettre à jour tous les huits jours …. Ça marche aussi



Mais après toutes ces opérations la cellule I6 qui a été sélectionnée reste encadrée de pointillés et je suis obligé de faire ‘’Echap ‘’ pour les supprimer. Ce n’est pas bien grave mais ça fait ‘’pas fini’’

Je pense qu’il manque une instruction. D’autre part si tout cela peut être écrit plus simplement, je ne demande qu’ a être corrigé…ça me permettra de voir mes erreurs



Merci de votre réponse……Macro ci-dessous



Sub cpte_6010()

'

' cpte_6010 Macro

' va sélectionner les données de ce compte dans les dépenses et recopie en cpte 6010

'



'

Sheets("6010").Select

Range("D12:H2500").Select

Range("D12:H2500").ClearContents

Sheets("Comptes ").Select

ActiveSheet.ListObjects("Tableau_dep").Range.AutoFilter Field:=2, Criteria1:= _ "6010"

Range("A5:E10").Select

Selection.Copy

Sheets("6010").Select

Range("D12").Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False

Range("I6").Select

Selection.Copy

Range("I5").Select

Selection.PasteSpecial Paste:=xlPasteValues

Range("B5").Select

End Sub


Lorsque la sélection du compte demandé par le filtre 6010 dans la feuille ‘’comptes ‘’ a été faite, et que je retourne dans cette feuille, l’affichage ne donne que bien normalement les lignes qui portent le compte ‘’6010’’.suite au filtre appliqué

Comment puis-je faire avec cette macro pour qu’après en avoir fini avec cette sélection je puisse dans cette feuille ‘’comptes’’ visualiser à nouveau l’ensemble des comptes présents. C'est a dire sélectionner "tout " pour l'affichage

Merci par avance
Bernard
 

Jacky67

XLDnaute Barbatruc
Salut Jacky,

Je t'avoue que je m'embrouille avec ListObject surtout en vba.

j'ai bidouillé un peu ton dernier fichier. Il me semble qu'avec un bouton de mise à jour c'est mieux.

ça sera moins gênant pour l'utilisateur, surtout s'il a beaucoup de saisie à faire sur la feuille comptes.

en plus je viens juste de rajouter des comptes et la mise à jour ne se fait pas (pas de création de feuilles).

Notre ami n'a pas encore réagi à nos proposition. Je crois qu'il a beaucoup avancé sur son projet avec ton

code de départ. Je comprends qu'il n'est pas évident de tout ou en partie revoir ce qu'il accompli.

Bon week-end.
Hello cathodique
Ne sachant pas vraiment l'aboutissement de ce classeur......
S'il s'agit d'éditer une feuille pour la visualisation ou l'impression, une feuille unique pour la présentation est suffisante.
En Pj avec une liste de validation en feuille "Comptes"
 

Pièces jointes

  • Test2 v3.xlsm
    261.7 KB · Affichages: 49

cathodique

XLDnaute Barbatruc
Salut Jacky,

Moi non plus je n'ai pas vraiment compris la nécessité de mettre en place un tableau structuré (enfin si je ne trompe pas, c'est comme ça qu'on les appellent?!) qui va jusqu'à la 2500ème ligne, dont la majorité sont vides de données. Alors que de part leur conception ils dynamiques (leurs dimensions s'ajustent au fur et à mesure). ça m'a beaucoup induit en erreur.

Notre ami devrait peut-être revoir cet aspect en faisant un petit test. Supprimer toutes les lignes du bas vident de valeurs. et sélectionner Tableau_dept, puis ajouter quelques lignes et refaire l'opération.
 

Vieupot

XLDnaute Occasionnel
Bonjour Jacky 67 et Cathodique
Beh non... je n'ai pas avancé depuis hier puisque je n'ai pas pu travailler voila que je rentre et je m'y remets à l'instant. Vous avez la gentillesse de m'aider et je vais donc vous expliquer le pourquoi du comment !
Je le dis souvent mais je ne suis qu'un petit amateur et grâce à ce forum et surtout à vous deux j'apprends plus chaque jour
En fait la feuille compte est composée de deux tableaux dont un en A4 pour les comptes dépenses et un en G4 de conception identique pour les recettes
Ces tableaux sont alimentés par une macro qui copie des données issues d'une feuille que remplit l'utilisateur. le numéro de compte et le libellé de compte qui se trouvaient tous deux dans une seule cellule à l'origine sont scindés en deux cellules sur deux colonnes différentes par une macro.. Pour les colonnes A, E et F ce sont des formules qui recopient les données de la feuille source
Pourquoi 2500lignes : a la création du tableau j'ai considéré que par expérience des années antérieures je n'aurai pas plus de 2500 écritures. Pour l'instant elles sont en grande partie vides mais au fil du temps elles seront occupées en majorité.

Je lis que ces tableaux sont dynamiques et que des lignes s'ajoutent en fonction des données ! Eh bien j'avoue que je ne le savais pas et lors de la conception j'ai donc inscrit que le tableau devait aller de A4 à 2500. Je viens de faire un test et bêtement je découvre cette fonction intéressante.
J'ai beaucoup avancé et touche au but et il est vrai que je m'aperçois qu'il y avait peut être plus simple. Je ne suis pas obstiné sur mon idée de départ et suis même prêt a tout recommencer si je reste dans l'impasse à ce stade mais sans votre aide pour laquelle je ne voudrais pas abuser j'aurai beaucoup de mal à repartir de zéro.
Chaque compte aura dans une cellule son total et dans le bilan final il ne me restera plus qu'a paramétrer chaque ligne avec le total de chaque compte

Pour en revenir à notre code
dans la feuille compte:
pour l'instant je vais laisser ça tel que et me contenter du code qui fonctionne bien et créer un code pour chaque feuille, ce sera long mais l'avantage ça fonctionne

Pour Catho : tu dis en plus je viens juste de rajouter des comptes et la mise à jour ne se fait pas (pas de création de feuilles).

En fait les feuilles relatives à chaque compte vont exister. je me demandais si plutôt que d'avoir une macro par compte si une seule macro était possible pour sélectionner les données à copier dans chaque compte. Chaque feuille s'appelle par son numéro de compte et peut-être aurait-il été possible de faire le choix du filtre en se référant au nom de la feuille de compte ouverte. Pour ce qui est de la mise à jour de la feuille pas grave si elle doit se faire par un bouton de commande dans chaque feuille.

Un peu compliqué a expliquer! je fais pour un mieux et vais voir maintenant pour faire des essais avec vos diverses propositions
avec mes remerciements à vous deux et aussi pour l'explication détaillée de Catho sur les différentes lignes du code
Bernard
 

cathodique

XLDnaute Barbatruc
Re,

Je suis dessus à mon rythme. Je ne sais par quelle méthode tu alimentes tes zones de recettes et dépenses.

Mais ce n'est pas ça le problème. Comme l'avez signalé Jacky, pourquoi plusieurs feuilles?

Personnellement, chacun a sa vision des choses. J'ai retenu que tu souhaites créer autant de feuilles que de comptes figurant en colonne B de la feuille "comptes" (pour info cette feuille porte en réalité le nom "comptes ", il y avait un espace après de "s" source de dysfonctionnement du code).
En plus du tableau à 2051 lignes. Dans le fichier ci-joint tu pourras t'en rendre compte.

Je vois ainsi la solution, après avoir alimenter et traiter la feuille 'comptes', cliquer sur un bouton pour mettre à jour les onglets existants et créer ceux qui n'existent pas.

Les 2500 lignes m'ont rendu 'flou'. La macro de Jacky est rapide et à aussi l'avantage de recopier l’entête.
Hélàs! je ne maitrise pas encore ces fameux tableaux en vba et que je n'ai pratiquement jamais utilisé. Mais bon, il faut plonger pour apprendre à nager.

Dès que j'aurai du nouveau, je posterai un fichier. Mais de grâce supprime les lignes vides du tableau.
 

Pièces jointes

  • Copie de Test2.xlsm
    263.6 KB · Affichages: 36

Vieupot

XLDnaute Occasionnel
Bonsoir Catho
Merci de faire....et a ton rythme, suis pas exigeant
Très pris aujourd'hui et surtout maintenant très fatigué le tête ne suit plus ce soir !
Ennuyé par des pubs innombrables qui m'envahissaient dans tous les sens encore il y a quelques temps je n'ai pas vu la solution proposée par Jacky dans Test 2 V2 et ça répond parfaitement au problème, du moins sur essais dans son tableau test

j'essaie demain sur mon tableau et si ça fonctionne, pour ce qui est des dépenses ça va avancer trés vite.
Demain je me permettrai de t'expliquer le problème du tableau compte puisqu'il y a des formules relatives en A D et E et si je supprime les lignes il va falloir que l'incrémentation automatique de lignes supplémentaires ajoutent ces formules de façon relative.
Excellente soirée à toi et accorde toi un peu de repos pour ce qui est des comptes dépenses ça devrait aller j'espère et la mise à jour automatique au prime abord pourrait m'arranger
cordialement
Bernard
 

cathodique

XLDnaute Barbatruc
J'ai effectué un test apparemment c'est bon. Encore une fois attention au nombre de lignes sur la feuille compte surtout la colonne B. sinon soit que le code plante soit tu auras un résultat erroné.

Pour les formules, tu peux faire une macro pour étendre (ou copier/coller) dès que tu saisis un nouveau compte.

Fais de bons rêves.
 

Pièces jointes

  • Vieupot- gestion comptabilité -2.xlsm
    84.5 KB · Affichages: 41
Dernière édition:

Si...

XLDnaute Barbatruc
Bonjour

Tableaux ? Voilà une adaptation du fichier avec une syntaxe simple pour les macros …

Le seul inconvénient que j’ai rencontré est de se retrouver avec un tableau prêt à être filtré (apparition des flèches dans les titres des colonnes).

Nota : ici, j’ai supprimé les liaisons (embêtantes quand on ne dispose pas des fichiers annexes).

Au revoir en espérant constater que de plus en plus de personnes se familiarisent avec cet outil.
 

Pièces jointes

  • Filtre Tableau vers copies.xlsm
    31.5 KB · Affichages: 40

cathodique

XLDnaute Barbatruc
Salut Si...,

Merci pour la simplification du code proposé par Jacky. Mais il me semble que notre ami Vieupot veut créer une feuille pour chaque compte figurant en colonne B de la feuille "comptes".

J'ai joins un fichier au post #21, qui crée les feuilles et les met à jour.

Peux-tu y jeter un coup d’œil et voir si c'est bon.
J'ai utilisé un dictionnaire pour les comptes, et là j'ai un doute sur la déclaration des variables.

Les comptes sont numérique mais ils pourraient être Alpha-numérique ou une chaîne de caractères.

Les éléments du dico sont des variants et le nom des feuilles sont des strings, j'ai un doute du passage

de l'un à l'autre. C'est à dire nommée la feuille créée avec l'élément (clé) du dico.

Merci pour ta contribution et surtout tes critiques.
 

Si...

XLDnaute Barbatruc
Re

Je tiens toujours compte de ce que des prédécesseurs ont proposé.
J’avais déjà jeté un coup d’œil sur ta proposition et me suis fait la réflexion suivante
« Pourquoi vouloir créer une feuille par poste comptable ? Cela implique de créer des macros supplémentaires, notamment pour chaque bouton ou des liens pour des macros communes. De plus le classeur risque de s’alourdir considérablement .» !

Bref je pense que, plus on en fait, plus on multiplie les recherches à effectuer et les risques de plantages*. Voilà pourquoi j’ai, comme d’habitude et comme Jacky ;), choisi cette option de feuille unique.

*pas de doute, les variables pour Dico.keys doivent être déclarées « … as Variant » ou « …as Object ». je me contente dans ces cas de déclarer les variables sans les "typer" ( Dim Compte me suffit).
 

cathodique

XLDnaute Barbatruc
Merci pour ton retour Si...;)

Je suis absolument d'accord avec toi et Jacky quant à la création d'une feuille par compte.

J'ai essayé de répondre au souhait de notre ami Vieupot.

C'est peut-être évident pour certain, J'ai fait peut-être quelque chose de bête.

Compte est variant, mais code planté quand je le passais dans la fonction FeuilExiste.

Par contre la variable Mafeuille, je l'ai déclaré en string et j'affecte un variant à un string (MaFeuille= compte)

et là le code ne plante plus. Pas vraiment compris pourquoi.

Merci beaucoup.:)
 

Si...

XLDnaute Barbatruc
et pour finir car Vieuxpot attend peut-être autre chose;)

« J'ai essayé de répondre au souhait de notre ami Vieupot.
C'est peut-être évident pour certain, J'ai fait peut-être quelque chose de bête
». Mais non !

« Je tiens toujours compte de ce que des prédécesseurs ont proposé ».
Pour compléter cette information : en général, je ne propose des idées nouvelles que si je pense apporter un autre point de vue avec une simplification des programmes*.

As-tu remarqué que très souvent les demandeurs, surtout les ‘novices’ s’accrochent à la première réponse en ajoutant au fur et à mesure des adaptations.

*Il va me falloir ajouter en signature

T’en veux ou t’en veux pas ?
Si T’en veux : t’en disposes à volonté et merci pour le retour !
Si T’en veux pas : je ne vais pas rouspéter et passer mon tour !
Si tu n’as pas zyeuté : tant pis pour toi et moi ! Je ne saurais pas si çà vaut le détour !
 

Vieupot

XLDnaute Occasionnel
As-tu remarqué que très souvent les demandeurs, surtout les ‘novices’ s’accrochent à la première réponse en ajoutant au fur et à mesure des adaptations.

*Il va me falloir ajouter en signature

T’en veux ou t’en veux pas ?
Si T’en veux : t’en disposes à volonté et merci pour le retour !
Si T’en veux pas : je ne vais pas rouspéter et passer mon tour !
Si tu n’as pas zyeuté : tant pis pour toi et moi ! Je ne saurais pas si çà vaut le détour !



Bonjour
Avec le respect que je dois à chacun, je suis quelque peu choqué par par le post ci dessus.
Je tiens d'abord à préciser que mes disponibilités "sur ordinateur " sont comptées car de gros soucis peuvent parfois être un handicap et le temps libre compté. Ceci dit c'est pour la petite histoire et je ne vais pas vous importuner avec ça. Chacun ses ennuis quelqu 'ils soient...Avec ou sans moi le monde continuera à tourner
Le mot novice me blesse surtout par la conclusion qui en découle laissant supposer que..... . je n'ai pas les capacités du "grade " Barbatruc" et ne suis qu'un petit utilisateur, humble débutant comme je l'ai souvent dit et, monter ses faiblesses n'est pas toujours facile face à des gens compétents.
Je n'ai plus 20 ans ! Bien sur il me serait agréable de pouvoir être à votre niveau. J'ai toujours remercié la patience des uns et des autres tellement gêné de mes faiblesses.
Ce document que j'ai essayé de mettre au point c'était une façon de voir les choses en fonction de ce que savais faire en ce domaine. Bien sur comme je l'ai dit j'étais prêt a reprendre le dossier à zéro. J'ai testé vos propositions, j'ai a chaque fois répondu selon mon rare temps de disponibilité , remercié, mais considére que pour l'instant j'avais une urgence en finir avant de tout revoir.
Chacun bien sur a apporté des idées de simplification et ce en fonction des éléments que vous connaissiez sur l'utilisation finale.
Et pour vous éclairer,J'avais dans l'après midi pris la peine de préparer un dossier test vous expliquant sur chaque page le fonctionnement complet de mon travail qui vous paraitrait peut-être farfelu mais Je pense donc a mon grand regret que je vais en rester la n'étant pas à la hauteur pour me trouver sur ce forum.
Encore un grand merci à ceux qui ont participé
j'ai fait de mon mieux mais ne souhaite plus me couvrir de ridicule
Cordialement
 

Si...

XLDnaute Barbatruc
Bonsoir

Vieuxpot, pour ta gouverne, sache que je n’attaque jamais une personne à cause de son niveau, de son âge !

Mes interventions, en général, ne sont pas destinées au seul demandeur mais aux lecteurs en général qui pourraient en profiter ; c’est le sens de ma boutade qui ne se voulait pas être méprisante ni moralisatrice.

Si tu l’as pris ainsi, je ne peux rien faire d’autre que te signaler que ce n’est guère la première fois que je profère que chacun est libre de prendre ou de laisser !

Merci de m’avoir permis de faire cette mise au point (final bien sûr)
 

cathodique

XLDnaute Barbatruc
Bonjour la compagnie,

On ne va pas se fâcher. Reprenons nos esprits s'il vous plait. j'avais au post#26 écrit
C'est peut-être évident pour certain, J'ai fait peut-être quelque chose de bête.
Compte est variant, mais code planté quand je le passais dans la fonction FeuilExiste.
bête, je parlais du code, comment boucler sur les feuilles avec dico.keys? D'où le quiproquo, et la suite qui en a découlé. Je me sens fautif.

Mon cher Vieupot, je sais que ça t'as blessé mais je suis sûr que ce n'était pas dans l'intention de Si...

Je te comprends, car confidence pour confidence; j'avais subi plusieurs boutades et reproches humiliantes sur un forum que je ne fréquente plus. Je suis plus à l'aise sur XLD.

Revenons à nos moutons, je n'ai pas eu de retour à mon post#21. As-tu testé le fichier? Merci de me répondre.

Bonne semaines à toutes et à tous.
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 813
dernier inscrit
kaiyi