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
Je n'ai pas voulu beaucoup modifier ce que tu as déjà fait, J'y ai apporté quelques modifications. à partir de cette feuille tu peux effectuer tes opérations "recettes/dépenses", Il suffit de sélectionner l'opération en cellule D13. Le montant en C12, je ne sais pas ce qu'i l représente, on verra ça plus tard. Ensuite, tu effectues tes saisies comme d'habitude (tu peux aller au-delà de la ligne 19, si besoin).
Bonsoir et merci
Aprés test rapide car je viens de rentrer... et t'explique
C12: montant de la facture ou du versement ou remises banque
ce montant sera décomposé dans les divers comptes de F12 à F19 avec le libellé. Il ne doit pas y avoir de différence ou alors il y a une erreur de ventilation
Liste de choix en D13 parfait ça fonctionne mais je t'en reparlerai en fin de ce post

Le changement est au niveau de la feuille "Comptes".
Les données vont être transférées les unes à la suite des autres (qui constituera ta base de données). Tu remarqueras qu'il y a une colonne pour les Dépenses et une pour les recettes.ça marche ! trés bien


Je ne me suis encore penché sur la validation du libellé (Recettes/Dépenses), mais bon à ce stade c'est faire des tests, on considére que les libellés sont valables. Donc les données vont se mettre dans la bonne colonne. Ok

C'est une première approche, j'attends tes remarques et commentaires. Si je ne trouve pas de solution pour la liste de validation, on optera pour 2 feuilles [Dépenses et Recettes]. ok pas de problème


edit: fichier remplacer (avec liste de validation) La je ne vois pas ce que tu veux dire....

OPE en fait j'aurai du entrer " numero d'enregistrement de l'écriture j'ai opté pour l'abréviation OPE. ça peut disparaitre puisque tu l'as mis en C13

Ce fameux numéro tu le voyais en colonne H ça peut et ça va disparaitre !
Afin de simplifier mon usine à gaz je vais si ça ne te dérange pas créer une nouvelle feuille de saisie beaucoup plus claire puisque moins de bricolage, mais ça t'obligera je pense à revoir les codes au niveau des emplacements de cellules. J'attends ton avis mais ça me semble nécessaire

par contre j'ai essayé d'enregistrer au delà de la ligne 19 et ça plante. Il n'y a pas de liste de choix en G20

Je pense avoir répondu à toutes tes questions. je vais bosser la dessus ce soir je ne suis pas trop fatigué et ce que tu fais pour moi m'encourage beaucoup à avancer !

A bientôt et grand merci
 

cathodique

XLDnaute Barbatruc
Bonsoir,
edit: fichier remplacer (avec liste de validation) La je ne vois pas ce que tu veux dire....
Tu sais je n'ai pas relu tout mon post, dès que j'ai trouvé la solution pour la validation (dépenses/recettes), je suis empressé de remplacer le fichier.
par contre j'ai essayé d'enregistrer au delà de la ligne 19 et ça plante. Il n'y a pas de liste de choix en G20
Effectivement, je n'ai placé de validation qu'à la ligne 19. En attendant de trouver une solution, je te donne la procédure - tu sélectionnes de la ligne 20 à autant que tu veux de lignes - ensuite dans le menu données/validation - tu sélectionnes dans 'Autoriser' ---> Liste - puis dans 'source' tu sais =indirect(D13)
Ce fameux numéro tu le voyais en colonne H ça peut et ça va disparaitre !
N'as-tu pas remarqué que la colonne H, je l'avais viré (du moins ce qu'il y avait auparavant en colonne H).

Nota: tu as utilisé beaucoup de cellules fusionnées. Essais de les éviter car elles sont sources de problème.

As-tu vraiment besoin d'avoir pour chaque compte une feuille. Si c'est pour effectuer tes contrôles, une seule suffit. et ça, pour ne pas alourdir ton fichier.

Pour tes calculs, il plus judicieux de nommer les plages. En C17 tu as mis (=C12 -F12 -............-F19)
Alors que tu aurais pu mettre =C12 - Somme(F12:F19). Mais si tu vas aller au-delà de la ligne 19, il est préférable de nommer la plage avec une formule elle deviendra dynamique.

Moi, je l'ai nommée MtVent et dans fait référence à cette formule =DECALER(Dépenses!$F$12;;;NBVAL(Dépenses!$F:$F)-1)

Ensuite en C17 tu écris =C12 - Somme(MtVent).
essais de le faire pour C18
D'où provient le montant en C12?

J'attends ton fichier. Bonne soirée.
 

Vieupot

XLDnaute Occasionnel
Effectivement, je n'ai placé de validation qu'à la ligne 19. ok ça on verra, d'autant plus que dans la majorité des cas quelques lignes suffisent.
A la limite si le tableau peut s'agrandir seul on peut arrêter à la ligne 14.
Tu verras j'ai tout repensé pous simplifier un max


Ce fameux numéro tu le voyais en colonne H ça peut et ça va disparaitre !
N'as-tu pas remarqué que la colonne H, je l'avais viré (du moins ce qu'il y avait auparavant en colonne H). OK

Nota: tu as utilisé beaucoup de cellules fusionnées. Essais de les éviter car elles sont sources de problème. j'en ai viré pas mal

As-tu vraiment besoin d'avoir pour chaque compte une feuille. Si c'est pour effectuer tes contrôles, une seule suffit. et ça, pour ne pas alourdir ton fichier. j'y réfléchis , ce qui m'importe c'est a tout moment avoir le solde de comptes et le budget sur une même feuille ou une recettes et une dépenses

Pour tes calculs, il plus judicieux de nommer les plages. En C17 tu as mis (=C12 -F12 -............-F19)
Alors que tu aurais pu mettre =C12 - Somme(F12:F19). Mais si tu vas aller au-delà de la ligne 19, il est préférable de nommer la plage avec une formule elle deviendra dynamique. Si la plage s'agrandit seule c'est vrai ce sera plus pratique on va voir

Moi, je l'ai nommée MtVent et dans fait référence à cette formule =DECALER(Dépenses!$F$12;;;NBVAL(Dépenses!$F:$F)-1) je n'ai pas regardé je vois ça demain

Ensuite en C17 tu écris =C12 - Somme(MtVent).
essais de le faire pour C18
D'où provient le montant en C12? C'est le montant de la facture à ventiler dans les comptes

J'attends ton fichier. Bonne soirée.

Bien voila la nouvelle ébauche qui je pense pour la partie principale ne bougera plus. Suis fatigué à demain et bonne réception
 

Pièces jointes

  • version d'ébauche Catho.xlsm
    40.7 KB · Affichages: 37

cathodique

XLDnaute Barbatruc
bonjour,
D'où provient le montant en C12? C'est le montant de la facture à ventiler dans les comptes
Est-ce que tu saisis toi-même ce montant ou est-ce qu'il est sur une feuille comme la liste des compte avec libellé?

Dans le feuille compte, pas logique ce que tu fais. Il y a des données manquantes. Sur la feuille opérations tu effectues tes écritures, il y a bien une date, un numéro d’écriture ou de facture, un commentaire qui ne sont pas stockés dans ta base; en plus tu as 2 colonnes dépenses.
Indiquer dans la case jaune ci_contre le numéro d'écriture à rechercher et cliquez sur "PDF "
Faire une recherche sans qu'elle soit archivée???
Bonne journée.

edit: en retour ton fichier modifié mais non codé. Jettes-y un coup d’œil
En attendant, salutations.
 

Pièces jointes

  • version d'ébauche Catho - Copie.xlsm
    42.5 KB · Affichages: 32
Dernière édition:

Vieupot

XLDnaute Occasionnel
Bonjour Catho
J'ai revu à nouveau la disposition en tenant compte de tes remarques et avec une nouvelle suggestion. Tout l'espace saisie comptes est libéré mais j'ai aménagé la chronologie de saisie. Je suis dispo jusqu' a21h et demain une grosse partie de la journée. Ne te bouscule pas, je me donne jusqu'au 30 avril pour commencer à enregistrer... de toute façon par sécurité la compta est encore tenue à l'ancienne par les réfractaires aux nouvelles technologies.
Surtout par méconnaissance ... et c'est la que je veux les intéresser et les impliquer.
A quand bon te semble !:)
 

Pièces jointes

  • version d'ébauche Catho - revue 10 mars 16h.xlsm
    44.6 KB · Affichages: 33

Vieupot

XLDnaute Occasionnel
Je ne sais plus si j'ai indiqué que : Au sujet de C9 cette donnée est saisie manuellement et correspond au montant total de la facture à décomposer dans les comptes

Important: j'ai libéré la colonne A etB de la feuille données
la liste des comptes débit se trouve en C
@
 
Dernière édition:

cathodique

XLDnaute Barbatruc
Bonsoir,

Pour la feuille compte, J'ai fait un copier/coller bêtement. En fait, j'avais toujours en tête ton ancien fichier, où il y avait 2 colonnes pour le contrôle banque (date-montant).
Je ne sais plus si j'ai indiqué que : Au sujet de C9 cette donnée est saisie manuellement et correspond au montant total de la facture à décomposer dans les comptes
Je suis nul en comptabilité, j'ai toujours était dans le technique. Sur la feuille 'données' les montants maxi, tu en fais quoi?

Sur la même feuille, pour les listes extensibles (comme tu les appellent), pas possible car la validation ne fonctionne qu'avec des listes de dimension fixe (je viens de découvrir ça). Donc on va aller jusqu'à 50 par sécurité, plus si vous avez beaucoup de clients ou fournisseurs.

Je reprends ton dernier fichier pour travailler.

@+
 

cathodique

XLDnaute Barbatruc
En retour ton fichier avec réponse à tes commentaires.

J'ai limité le déplacement de la feuille 'opérations', tu ne pourras pas aller au-delà de la colonne G et ligne 50.
C'est ce que tu veux?
 

Pièces jointes

  • Copie de version d'ébauche Catho - revue 10 mars 16h.xlsm
    42.7 KB · Affichages: 40

Vieupot

XLDnaute Occasionnel
Bonjour
J'ai regardé tout ça
Afin de t'aider J'ai posté deux demandes dont une sur ce forum et une autre ailleurs... j'en avais oublié de te répondre . Nous verrons s'il y a suite !
Pour ce qui est de la saisie de la date en E9 finalement une simple validation de données devrait suffire donc peut-être pas besoin de code !
je n'ai plus qu'a attendre et t'informerai si j'ai du nouveau
En attendant lève un peu le pieds sut mon projet, je ne voudrai pas te prendre la tête avec ça tous les jours
Merci à toi et bon dimanche
 

Vieupot

XLDnaute Occasionnel
Bonjour Catho
C'est marqué "accro" pour rien
Je suis désolé de te gâcher ton samedi surtout avec ce temps magnifique
Je ferai aussi des tests calmement demain, trop fatigué ce soir et te tiendrai bien entendu au courant.
A demain
Bonne soirée
 

Vieupot

XLDnaute Occasionnel
Bonsoir Cahodique
Accro pas compris : En fait il manque un mot ! par ton acharnement samedi a trouver une solution, j'ai constaté que ce n'est pas pour rien que sous ton avatar c'est marqué Accro !:)

Plus sérieusement:
Tout d'abord merci pour cet excellent travail, suis satisfait de ça
Après tests:
J'ai noté que lors du rappel d'une écriture j'ai systématiquement le message: Erreur d'éxécution 1004 définie par l'application ou par l'objet
Au débogage flèche jaune dernière ligne plg=nothing
ça ne doit pas être bien grave

D'autre part plus gênant à deux reprises en indiquant le numéro a rechercher en F6, à la validation de la cellule je pense, il y a eu un dysfonctionnement qui efface les cellules D3,D4,D6,D8 et impossible de rétablir avec les flèches de retour à l'opération précédente dans le bandeau
C'est pourtant une excellente idée ce rappel mais pour en sortir je ne sors pas toujours du premier coup...sinon ça marche.

J'ai demandé a un membre de l'association de faire un essai "à l'intuition " et comme moi au début on a tendance à éviter la cellule Adoptant que je vais renommer autrement. J'ai vu qu'il y avait possibilité de diriger les cellules avec une manipulation sans code VBA, je vais essayer prochainement. J'ai vu également qu'il y avait possibilité par code
Je souhaite pouvoir cheminer comme cela si c'est possible A9, B8,B9,C10,E12,B12,C12,D12. Par contre j'ai un doute pour les lignes suivantes. Mais bon après B12 il n'y a pas d'erreur possible
Pour ce qui est de la formule de calcul D8, j'ai essayé comme suggéré
= Décaler mais m'y suis perdu..
J'avais à ta demande déposé des posts ici et là et j'ai vu la rectification que tu as faite pour les listes de données , trés bien! Cette explication je l'avais préparée pour te l'envoyer dans un fichier, avec d'autres mais tu as été plus vite que moi.
Ceci dit je suis très satisfait de cette nouvelle approche et t'ai demandé beaucoup... Aussi je souhaite décortiquer tout ce que tu as fait afin de "comprendre les macros" car demander c'est facile mais ça ne me fera pas avancer si de mon côté je ne cherche pas à comprendre et j'ai trés peu de temps
Je te propose donc une pause de quelques jours afin de me concentrer sur cet objectif qui demande beaucoup de recherche surtout en débutant, et doit voir la suite des choses qui demande réflexion.
Je vais toutefois regarder sur le forum chaque jour au cas ou !
A bientôt...
Cordialement
 

cathodique

XLDnaute Barbatruc
Bonjour,

Je te répondrai à ton post#59 plus tard. Je l'ai lu et pris pris en considération.

Pour que tu puisses avancer remplace la procédure que tu as par celle-ci
VB:
Sub Fiche_suivante()
    Dim derlig As Integer, dico As Object, c As Range
    Set dico = CreateObject("Scripting.Dictionary")
    With ThisWorkbook.Sheets("Comptes")
        For Each c In .Range("B6:B" & .Range("B" & .Rows.Count).End(xlUp).Row)
            dico(c.Value) = ""    'on alimente le dictionnaire
        Next c    'prochaine cellule de la boucle
    End With
    With ThisWorkbook.Sheets("Opérations")
    .Unprotect 1234
        derlig = .Cells(Rows.Count, 2).End(3).Row
        .Range("B12:E" & derlig).ClearContents
        .Range("F9").Value = dico.Count + 1
        .Range("A9:C9,E9").ClearContents
        .Range("D9").FormulaR1C1 = "=R9C3-SUM(Ventilations)"
        .Range("A9").Select
        .Protect 1234
    End With
End Sub
Important! sélection de C12 au nombre max de lignes que tu pourrais atteindre pour une fiche et tu la nommes Ventilations.
nb: j'aurais dû mettre consultation au lieu de recherche fiche sur le bouton. à toi de voir.
c'est tout pour le moment.

bonne journée
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 814
dernier inscrit
JLGalley