Insérer 1 ligne sur 2 + formules dans chaque ligne insérée

[Résolu/Fermé]
Signaler
Messages postés
4
Date d'inscription
samedi 2 août 2014
Statut
Membre
Dernière intervention
19 février 2015
-
Messages postés
16513
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
17 septembre 2021
-
Bonjour à tous,

J'utilise dans le cadre de mon boulot un livre de caisse (N° comptes, libellé, débit, crédit, n°pièce comptable, contrepartie, code analytique).
Chaque ligne correspond à une facture.

j'ai trouvé comment importer ces lignes dans mon logiciel de comptabilité seulement le logiciel impose deux lignes par facture.
il me faut donc insérer 1 ligne sur deux (j'ai trouvé une macro qui faisait le travail) et appliquer des formules à chaque ligne insérée.
les formules font simplement références à la ligne du dessus.

Mon livre de caisse
ligne 1: Comptes, libellé, débit, crédit, n°pièce, contrepartie, codeanalytique,
ligne 2: Comptes, libellé, débit, crédit, n°pièce, contrepartie, codeanalytique,
ligne 2: Comptes, libellé, débit, crédit, n°pièce, contrepartie, codeanalytique,
.........

Mon livre de caisse avant importation dans le logiciel comptable
ligne 1: Comptes, libellé, débit, crédit, n°pièce, contrepartie, codeanalytique, (inchangé)
ligne insérée 1bis: Comptes =Contrepartie ligne 1, libellé = libellé ligne 1, débit = crédit ligne 1, crédit = débit ligne 1, n°pièce = N°pièce ligne 1, Contrepartie = Comptes ligne 1, codeanalytique =code analytique ligne 1

ligne 2:....
Ligne 2 bis:....
.....
......

Résumé:
créer 1 ligne sur 2
appliquer des formules qui reprennent les éléments de la 1ère mais dans un ordre qui puisse être compris par le logiciel comptable. (ex: ce qui est en débit passe en crédit dans la ligne 2.....)

Franchement si vous pouvez résoudre ce problème ça m'aiderait énormément. ça m'éviterait de saisir des milliers de lignes dans mon logiciel compta.

Par avance merci à vous.

4 réponses

Messages postés
3334
Date d'inscription
samedi 20 juillet 2013
Statut
Membre
Dernière intervention
9 décembre 2016
536
Bonjour,

Une proposition
https://www.cjoint.com/?DHcrhPETcnV

A+
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 42674 internautes nous ont dit merci ce mois-ci

Messages postés
16513
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
17 septembre 2021
3 221
Bonjour

Si il y a des "milliers de lignes"; sinon le code de Gyrus ( Bonjour) est valable et plus simple

Testé sur 4400 lignes en caisse à partir du classeur de Gyrus (merci): mise en conformité en 0,9 secondes (RAM 512 Mo)

Sub milliers_de_lignes()
Dim Derlig As Long, T_caisse, T_logiciel
Dim Idx As Long, Col_l As Byte, Col_c As Byte
Dim Start As Single 'pour essai

'initialisation
Start = Timer
Application.ScreenUpdating = False
Derlig = Range("A" & Rows.Count).End(xlUp).Row
T_caisse = Range("A2:G" & Derlig)
ReDim T_logiciel(1 To UBound(T_caisse) * 2, 1 To 7)

'creation lignes "2" pour conformité logiciel
For Idx = 1 To UBound(T_caisse)
Col_c = 1
For Col_l = 1 To 7
T_logiciel((Idx * 2) - 1, Col_l) = T_caisse(Idx, Col_l)
Col_c = Choose(Col_l, 6, 2, 4, 3, 5, 1, 7)
T_logiciel(Idx * 2, Col_l) = T_caisse(Idx, Col_c)
Next Col_l
Next Idx
' restitution tableau conforme
Range("A2").Resize(UBound(T_logiciel), 7) = T_logiciel
'pour essai
Application.ScreenUpdating = True
MsgBox "durée pour 4400 lignes: " & Timer - Start & " sec."
End Sub

La maquette 4400
https://www.cjoint.com/?3HctoStpshy

Michel
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 42674 internautes nous ont dit merci ce mois-ci

Messages postés
4
Date d'inscription
samedi 2 août 2014
Statut
Membre
Dernière intervention
19 février 2015

C'est énorme, ça marche!! Vous avez fait vite! Merci à tous les deux, Gyrus et Michel, pour vos propositions. C'est exactement ce que je voulais.
Je gagne un temps considérable, c'est trop cool. :)

Encore Merci
Messages postés
4
Date d'inscription
samedi 2 août 2014
Statut
Membre
Dernière intervention
19 février 2015

Bonjour,

J'ai une nouvelle question par rapport au code que vous m'avez proposé et qui fonctionne à merveille.
https://www.cjoint.com/?0BtoNJ6l6Ti
J'ai mis le fichier que j'utilise ci-dessus.
Mes colonnes B et H sont au format "Texte".

Lorsque j'applique la macro, le format "Texte" disparaît.
Je perds alors tous les zero devant le 1. (double cliquer sur une cellule pour vérifier)

Je dois impérativement concerver le format "texte" pour pouvoir importer ces données en comptabilité.
Avec la macro actuelle, mes données sont enregistrées en classe 1 ce qui est faux.
Mes données doivent être enregistrées en 01 et non en 1..... ce ne sont pas du tout les mêmes codes comptables.

Si vous avez une solution à me proposer, tout en conversant cette macro (elle est extrèmement rapide), je suis preneur.

Merci à vous par avance.
Messages postés
16513
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
17 septembre 2021
3 221
Bonjour

c'est curieux, je viens d'essayer et les 2 colonnes B & F restent bien en format Texte avec le zéro en 1°....
??