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
 

Vieupot

XLDnaute Occasionnel
Bonjour Cathodique
Merci à toi mais tu n'es en rien fautif et je n'en veut à personne et pas d'autre commentaire !
Par correction je prends juste le temps de te dire que je referai un point avec toi en soirée je dois partir car une fois de plus aujourd'hui journée de galère.... et pas libre avant 19 h au mieux je pense si tout va bien...!
 

Vieupot

XLDnaute Occasionnel
Bonsoir Cathodique
J'avais testé #21...Extra ! Et ça me posait problème a première vue pour création automatique
Mais après réflexion si j'observe bien la création d'une feuille automatique ne crée que la partie à partir de D11. Charge a moi de créer la partie supérieure
Dans le projet actuel toutes les feuilles sont crées mais il pourrait arriver de devoir créer un nouveau compte. Mais ça ce sera pour la refonte totale du projet. Les feuilles de comptes existent et j'ai besoin de les avoir du moins dans cette version car j'ai des seuils d'alerte en F2 en fonction du budget alloué en D6. De plus il faut savoir que la personne que je souhaite impliquer et intéresser dans ce travail n'y connait absolument rien dans excel sauf entrer des chiffres et des noms. Donc j'automatise un maximum et j'ai essayé même si ça fait gadget de colorier au mieux chaque feuille . Lors de la version finale
le ruban sera réduit et je pense même cacher les onglets. A art l saisie des données initiales tout fonctionnera avec des boutons
Petite précision les feuilles seront protégées pour éviter les mauvaises manip il faudra donc ajouter à la macro active sheet unprotect et protect à la fin
Pour ce qui est de la macro Jacky réadaptée au lancement il ne se passe rien et ça bloque sur Sub ligne en jaune avec " erreur de compilation sub attendu"
Si ce soir c'est possible pour moi je t'expliquerai comment les données arrivent dans la feuille compte, j'ai pensé à une solution.
A+
 

cathodique

XLDnaute Barbatruc
Bonsoir Vieupot,
Mais après réflexion si j'observe bien la création d'une feuille automatique ne crée que la partie à partir de D11. Charge a moi de créer la partie supérieure
Depuis le début, j'avais compris que ton problème était de transférer les données des comptes vers les feuilles appropriées. Je me suis donc concentré sur cet aspect.
Dans le projet actuel toutes les feuilles sont crées mais il pourrait arriver de devoir créer un nouveau compte. Mais ça ce sera pour la refonte totale du projet.
Non pas du tout. Si tu reprends le code, il y a une fonction qui vérifie si la feuille du compte existe. Dans le cas où elle existe, elle est mise à jour par rapport à ta BD (soit la feuille "comptes") et si elle n'existe pas alors une nouvelle feuille est ajoutée puis renommer et ensuite mise à jour.
Donc tu peux rajouter des comptes autant que tu veux.

Effectue des tests sur le fichier du post#21. Pour protéger les feuilles des comptes remplace cette macro
VB:
Sub MiseAJour() 'code de Jacky réadapté
Application.ScreenUpdating = False
Dim Derlg As Long
With Sheets(MaFeuille)
If .ProtectContents = True Then 'vérifie si la feuille est protégée
.Unprotect
End If
End With

Sheets(MaFeuille).Range("D12:H2500").Clear
With Sheets("Comptes") '****** sans espace
    Derlg = .Cells(Rows.Count, "A").End(xlUp).Row
   .ListObjects("Tableau_dep").Range.AutoFilter Field:=2, Criteria1:=Compte '
    .Range("a4:e" & Derlg).SpecialCells(xlCellTypeVisible).Copy
    Sheets(MaFeuille).Range("D11").PasteSpecial Paste:=xlPasteValues
    Sheets(MaFeuille).Range("D11").PasteSpecial Paste:=xlPasteFormats
  
End With

With Sheets(MaFeuille)
.Range("D11").PasteSpecial Paste:=xlPasteValues
.Range("D11").PasteSpecial Paste:=xlPasteFormats
ActiveWindow.SplitRow = 11
ActiveWindow.FreezePanes = True
Application.Goto [a12], True
.Protect
End With

Sheets("Comptes").ShowAllData

Application.ScreenUpdating = True
End Sub
Les données de la feuille compte proviennent d'ici 'C:\Arche asso\Compta\Compta_Arche\[Compta dernière version travail B.xlsm]Dépenses', mais comment, par formule ou code?

Bonne soirée. Ce soir je suis un peu fatigué.
 

Vieupot

XLDnaute Occasionnel
Bonjour Cathodique
Voici l'explication pour la saisie et le transfert des données (j'insiste le travail de saisie sera fait par des gens qui ne connaissent pratiquement rien à excel) d'ou l'idée de décomposition et de saisie des factures dans une zone préétablie avec ajout a chaque fois d'une autre zone de saisie . ( ça vérifie l'exactitude des ventilations de la facture. Ensuite cliquer sur le bouton mise à jour des données saisies vers comptes. Je concède que vu par des pros c'est de la bidouille...mais qui fonctionne. Si je savais " SI...." j'imagine bien des formulaires mais ça c'est pour aprés
J'ai mis une explication sur chaque feuille
J'ai recopié les codes comme toi aux mêmes emplacements et encore un problème... avec feuille comptes ! Je ne comprends pas trop comment ça fonctionne à partir du bouton de commande feuille comptes
Bon amusement (absent 17h45 20 h)
 

Pièces jointes

  • Compta test 7mars V1 (Enregistré automatiquement).xlsm
    513.7 KB · Affichages: 34

cathodique

XLDnaute Barbatruc
Bonsoir,
J'ai recopié les codes comme toi aux mêmes emplacements et encore un problème... avec feuille comptes ! Je ne comprends pas trop comment ça fonctionne à partir du bouton de commande feuille comptes
JE T'AVAIS PRÉVENU STP MERCI DE RELIRE LA DERNIÈRE PHRASE DU POST#19. TU COMPRENDRAS POURQUOI LE CODE PLANTE (LES FAMEUSES 2500 LIGNES).

@+
 

Vieupot

XLDnaute Occasionnel
Bonsoir
Merci !
J'ai tout viré la page comptes....... et vais revoir un tableau dynamique
9a pas compliqué et je vais chercher à faire un code qui me copiera les données et en même temps scindera ma colonne G de dépenses.
Tu as été assez patient et reviendrai si besoin. Je clôture ce post 37 interventions c'est beaucoup !

Cordialement
 

cathodique

XLDnaute Barbatruc
Bonjour,

A ton bon vouloir de clôturer cette discussion, tu en es l'initiateur. J'étais prêt à t'aider, mais bon!

Étant donné, que j'ai veillé hier sur ton fichier. Je te livre mes constations.

* Pourquoi tu fais un copier/coller de 2500 lignes dont la majorité sont vides et en plus tu écrases toutes les données de la feuille comptes. Du coup toutes tes précédentes données sont détruites. Il fallait transférer les données à la suite des précédentes lignes.

* La date des opérations ne figure pas dans la feuille compte, pourquoi? N'est-elle pas importante?

* sur la feuille dépenses, pourquoi le n° de compte et le libellé sont concaténés, alors qu'ils sont par la suite sur la feuille comptes séparés chacun dans une colonne. Il aurait été judicieux de garder le même formatage pour faciliter la gestion du transfert.

* Ajouter une fiche de saisie n'est pas adéquate. Il vaut mieux effacer cette plage pour une nouvelle saisie en transférant ce qu'il y avait évidemment.

* Pourquoi 2 tableaux d'opérations, 1 pour les recettes et 1 pour les dépenses. Alors que l'ajout d'une colonne aurait suffit. Tu aurais dû créer une feuille pour recevoir toutes tes saisies (recettes et dépenses) qui serait ta base de données et une autre feuille pour consulter tes comptes.

* Tout ce que tu as fait avec formules (surtout les transferts de données) aurait pu être fait en vba.

Maintenant, tu veux traiter ton problème en utilisant un TCD, libre à toi. Pour ton information, je ne suis pas informaticien de formation. Je m'étais mis au vba pour me faciliter mes différentes tâches professionnelles.
Donc comme toi au début, je pensais résoudre mes problèmes selon ma vision alors que j'ignorais beaucoup de choses réalisable en vba (d'où la remarque de Si... ). Mieux vaut sur le forum poser son problème ainsi, point départ et résultat escompté; que de demander voilà comment je veux faire la chose. Ne dit-on pas que 2 idées valent mieux qu'une.

J'ai appris pour la pérennité d'un fichier, il faut faire simple. Tu as pas mal avancé sur ton fichier, avec quelques modifications et adaptations, tu parviendras à l'exploiter.

Bonne continuation.
 

Vieupot

XLDnaute Occasionnel
Bonjour Cathodique
Une fois de plus je me suis mal exprimé
Ma pensée est justement de prendre en compte ce qui m'a été suggéré par toi , par SI et Jacky 67 et de revoir le projet de fond en comble sur de nouvelles bases.
Quand je dis clôturer la discussion c'est simplement de ne pas encombrer plus ce post qui a maintenant beaucoup de commentaires et suggestions...je n'en ai pas vu beaucoup avec autant de questions et réponses... pas habitué des forums je ne sais si on peut indéfiniment ajouter des demandes ?
J'apprécie l'aide de tous et surtout ton dévouement et ta patience à mon égard, et ne demande qu'à encore pouvoir évoluer avec chacun . Je n'y connais rien mais ça me plait beaucoup .Après quelques temps de réflexion si tu en est d'accord je poserai les bases (tu à déja une idée de ce que j'ai fait) et répondrai à toutes tes questions et suis tout a fait conscient des miracles du VBA que je découvre. D'accord sur la remarque de "SI" concernant le fait que chacun part sur une idée mais quand on ne connait pas on essaye de faire suivant ses connaissances..et peur de prendre le risque de lasser les autres
A bientôt si tu en est d'accord
@ Cordialement
 

Vieupot

XLDnaute Occasionnel
Grand merci à toi !Pour ne pas te faire passer du temps pour rien , dès mon retour fin de journée je préparerai une feuille sur mes besoins; tu peux te reposer un peu en attendant, car va y avoir du boulot, mais je m'en réjouis à l'avance. je te donnerai les points essentiells. Mon plus gros souci le temps !
Trés compliqué et imprévisible :mad:
Bonne journée
 

Vieupot

XLDnaute Occasionnel
Bonsoir
Réponse: ope
est un numéro d'enregistrement unique de la fiche de saisie qui représente " La facture " pour les dépenses. C'est le numéro également reporté sur la facture pour son classement papier. C'est aussi le nom du fichier . Pdf.. toutes les factures , versement, remises de chèques etc sont numérisés avec ce numéro d'ordre. Chaque ligne de compte comporte aussi ce numéro, ce qui me permets de dire à quoi se rattache l'opération. Donc important pas de possibilité de doublon lors de la création
Voici en pièces jointes 2 feuilles Pdf qui t'expliqueront comment je vois les choses. Pour chaque feuille du projet je ne commencerai jamais avabt la ligne 4 ou 5 de façon à pouvoir y mettre éventuellement des notes ou des boutons de commande. Je suis bien sur ouvert à toutes suggestions
Bonne lecture
 

Pièces jointes

  • Plan Projet page1.pdf
    173.6 KB · Affichages: 30
  • Plan projet page 2.pdf
    106.8 KB · Affichages: 33

cathodique

XLDnaute Barbatruc
Bonsoir,

Je te l'ai dit, je suis prêt à t'aider. Mais faut garder à l'esprit que je ne suis pas un spécialiste en la matière. Certaines demandes peuvent aller au-delà de mes connaissances.

Revenons au OPE, il y a le titre et en-dessous 1, tu me dis que c'est un numéro de facture. Explique-moi à quoi sert la colonne H (où figure aussi le chiffre 1).

Ci-joint un fichier à tester (en attendant que je trouve une solution pour la liste de validation).

edit: fichier remplacer (avec liste de validation)
 

Pièces jointes

  • Classeur1.xlsm
    43 KB · Affichages: 45
Dernière édition:

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 069
Messages
2 085 041
Membres
102 764
dernier inscrit
nestu