Macro permettant de recopier vers le bas les comptes d'un grand livre (cpta

Bonjour,

Je souhaite disposer d'une macro qui me permette de recopier vers le bas les comptes d'un grand livre (en gros remplir cellules (vide) en-dessous de chaque compte). La recopie du libellé du compte n'est pas nécessaire, juste le numéro de compte (la première colonne) :

Le grand livre se présente ainsi :

Colonnes = Compte / Libellé du compte / Date / libellé de l'écriture / Débit / Crédit

606400 / fournitures admin / 01/01/2024 / papier / 100.00 / 0.00

(vide) / (vide) / 15/02/2024 / scotch / 15.00 / 0.00

(vide) / (vide) / 31/03/2024 / stylos / 20.00 / 0.00

606800 / achats divers / 03/02/2024 / café / 30.00 / 0.00

(vide) / (vide) / 10/04/2024 / cahuètes / 15.00 / 0.00

etc.

J'ai ce début de macro mais ça ne fonctionne pas (avec A3 comme première cellule vide à remplir avec le numéro de la cellule du dessus) :

Sub RemplirVide()
Range("A3").Select
Do Until ActiveCell = ""
If ActiveCell.Offset(0, -2) = "" Then ActiveCell.Offset(0, -2) = ActiveCell.Offset(-1, -2)
If ActiveCell.Offset(0, -1) = "" Then ActiveCell.Offset(0, -1) = ActiveCell.Offset(-1, -1)
ActiveCell.Offset(1, 0).Select
Loop
End Sub

Le but est d'avoir ce résultat :

Compte / Libellé du compte / Date / libellé de l'écriture / Débit / Crédit

606400 / fournitures admin / 01/01/2024 / papier / 100.00 / 0.00

606400 / (vide) / 15/02/2024 / scotch / 15.00 / 0.00

606400 / (vide) / 31/03/2024 / stylos / 20.00 / 0.00

606800 / achats divers / 03/02/2024 / café / 30.00 / 0.00

606800 / (vide) / 10/04/2024 / cahuètes / 15.00 / 0.00

etc.

Merci de votre aide.

Arnault

Bonjour,

C'est toujours compliqué de vous aider, sans fichier, même si nous comprenons bien votre problème, facilement résoluble.

Mais rien ne vaut un exemple, pour savoir, par exemple, si vous utiliser un tableau de données, un tableau structuré, si vous avez des lignes vides,...

Bref, tout un tas de choses pour être certain de répondre à vos attentes.

Cordialement

Bien sûr, voici en PJ un fichier excel avec ma problématique, avec en jaune les cellules qui doivent être complétées.

20test.xlsm (14.47 Ko)

Bonjour,

Une proposition avec Power Query

17test.xlsm (34.12 Ko)

C'est bien le résultat souhaité mais je n'ai jamais utilisé Power Query, pouvez-vous m'indiquer les étapes que vous avez réalisées pour arriver à ce résultat ?

Bien sur,

Après l'ouverture du fichier :

1) Sélectionner une cellule de votre tableau de données.

2) Tout sélectionner (CTRL + A)

3) Cliquer sur Données/Récupérer et transformer les données/A partir de tableau ou d'une plage

4) Cliquer sur Ok pour confirmer la plage de vos données et qu'il contient une en-tête (Cela va transformer votre tableau de données en tableau structuré).

Là, vous arrivez dans Power Query

5) Dans la première colonne (dans l'en-tête à gauche de l'intitulé Compte, sur l'icone 123), changez le type de données en Texte et confirmez le changement en cliquant sur Remplacer l'actuelle (Car PowerQuery tente de définir lui même le type de données et là, il pense que les numéros de comptes sont des chiffres).

6) Sélectionnez la colonne compte et cliquer sur Transformer/N'importe quelle colonne/Remplir/Vers le bas

7) Sélectionnez la colonne Intitulé cliquer sur Transformer/N'importe quelle colonne/Remplir/Vers le bas

8) Dans la colonne Journal, filtrez pour ne pas afficher les lignes contenants la valeur null

9) Cliquez enfin sur Accueil/Fermer et charger

Lorsque vous ajouterez des données dans votre tableau source, vous n'aurez plus qu'à faire un clic droit sur cette nouvelle feuille pour actualiser.

Bonjour à tous !

Une proposition type "formule unique dynamique" :

=LET(
t;A1:G122;
c;SCAN("";CHOISIRCOLS(t;1);LAMBDA(a;c;SI(c="";a;TABLEAU.EN.TEXTE(c))));
l;SCAN("";CHOISIRCOLS(t;2);LAMBDA(a;c;SI(c="";a;TABLEAU.EN.TEXTE(c))));
ASSEMB.H(c;l;EXCLURE(t;;2))
)

Notes :

  1. Adapter la plage de la variable "t" au classeur de travail.
  2. Ajouter un format personnalisé pour obtenir le visuel souhaité.

Merci @jpbt84, c'est magique, je crois que je vais utiliser ces fonctions plus souvent !

Par contre, @JFL, je ne comprends pas comment fonctionne votre formule :

- où dois-je la positionner ?

- par classeur de travail, vous entendez le "nom" que j'attribue au tableau (ou plage de données dans la feuille) ?

Bonjour à tous de nouveau !

1/ Vous pouvez placer la formule où bon vous semble, avec la contrainte liée à l'espace nécessaire à sa propagation.

2/ Si dans votre classeur réel, vous avez inséré un tableau structuré, l'insertion du nom de ce tableau (ex : tGrandLivre) dans la formule la rendra optimale.
=====> t;A1:G122; deviendra t;tGrandLivre;

Merci pour les précisions, en effet ça fonctionne aussi (plus difficile à se souvenir de la formule pour reproduire mais il suffit de la stocker quelque part).

Bonjour à tous de nouveau !

Bien....

Je vous remercie de ce retour.

Les formules sont, par hypothèse, "stockées quelque part"....Tout comme le langage M de la requête Power Query.

Rechercher des sujets similaires à "macro permettant recopier bas comptes grand livre cpta"