Décalage compteur-bornes

Bonjour,

En recopiant des lignes d'un onglet vers un autre (transfert_bordereau() ), le numéro de ligne s'incrémente selon une condition de cellule non vide.

Lorsque la boucle (attention j'étais pas très inspiré avec des Do Until) rencontre une case vide le numéro de ligne ne s'écrit pas ce qui est voulu, mais au tour suivant j'ai un décalage dans les numéros ce qui n'est pas voulu puisqu'il faudrait repartir de la valeur précédente.

J'imagine qu'il faudrait redimensionner un tableau de façon dynamique (le tableau de départ ?), mais là ................

Mes boucles DO Until ne sont pas belles, si si je vous promets elles ne sont pas belles, c'est tout ce que j'ai trouvé pour faire le saut de page de la page 1 à la page 2 sachant que je voulais définir de façon explicite les tableaux (des pages 1 et 2) et les différentes bornes

Serait-il possible de me reprendre pour avoir des boucles "normales ",

Rq: Au càs ou celà aurait une incidence sur la ré écrituredes boucles, je prévois (probablement dans la feuille Résultat-CC, de faire un formatage pour faire ensuite sur le bordereau séparations, ici en bleu pour l'exemple)

Merci d'avance et je compatis pour ceux qui seraient choqués par les Do Until

10gouda-transfert.xlsm (260.35 Ko)

Bonjour

Un essai à tester.

Te convient-il ?

Bye !

Bonjour gmb,

merci pour ta proposition, en regardant le code j'ai vu que tu transformais le test en colonne indice sur la colone de l'onglet Résutat-cc ce qui entraine la suppression des lignes "-----------------------------"

Ce qui m'a amené à une solution sur la base des boucles Do Until en paramétrant un décalage sur le bordereau tout en gardant l'incrémentation du tableau initial.

Merci tu m'a aidé à avancer.

Je reste persuadé, qu'il est possible d'écrire cette boucle en 3 lignes, mais là............................

Spoiler
 ' initialisation paramètres boucle
        i = 3
        décalage = 1
        n = 0

         Do Until i > 21

                ActiveWorkbook.Sheets("Bordereau_BDT (2)").Cells(y_page1, "D") = ActiveWorkbook.Sheets("Résultat-CC").Cells(i, "R")
                ActiveWorkbook.Sheets("Bordereau_BDT (2)").Cells(y_page1, "M") = ActiveWorkbook.Sheets("Résultat-CC").Cells(i, "M")

                If sh2.Cells(y_page1, "M") <> "" Then
                  sh2.Cells(y_page1, "B") = i - 2 - (n * décalage) & "-"
                Else
                  n = n + 1
                  sh2.Cells(y_page1, "B") = ""
                End If

                y_page1 = y_page1 + 1

                i = i + 1
         Loop

Bonsoir gmb, TahitiBoy

Une proposition :

Elle "joue" sur les plage nommée des pages.

@ bientôt

LouReeD

Bonjour LouReed, quelle belle galette en image,

Merci à toi,

Je comprends 2 choses, qu'à priori il faut travailler séparément sur les 2 plages (1 par page)

Et surtout, je n'ai plus besoin de mettre des numéros de lignes 38-67-22-.... car si le bordereau change de forme alors le code ne compilera plus.

C'est ainsi que je l'entendais avoir des plages dynamiques, c'est super.

Merci à toi et gmb, c'est ainsi pleinement fonctionnel.

Je vais quand même réfléchir à intégrer un calcul en amont pour déterminer le nombre de bordereaux qu'il faudrait si par exemple les Résultat-CC sont > 183 . Je posterai le code.

Bonjour LouReed, On continu,

J'ai tout mis dans une seule boucle qui gère les 2 pages

Plus une question dans le code concernant le cas ou le nombre de lignes à écrire devient important.

C'est une situation qui à mon avis s'anticipe même si la solution la plus simple est de laisser l'utilisateur refaire la manip, sauf que là on n'est pas.

à l'abri d'oublier la moitié des lignes [si si, Errare humanum est, perseverare diabolicum ].

Si tout est prévu au départ c'est gagné.

Je suis preneur de vos avis,

Merci d'avance

Bonjour,

le soucis et que vous avez des entêtes de document différentes pour chaque page, puis des lignes avec une quantité aléatoire, puis un pied de page de document différent entre les deux.

Tout ceci avec des hauteurs de lignes différentes... Donc pour gérer sur un seul document de plusieurs pages je ne vois pas trop.

Le plus simple comme vous dites c'est une boucle sur le recto/verso du document (taille connue des deux coté) puis un enregistrement pdf, puis une init du document, et rebelote pour le remplissage et ce tant qu'il y a des lignes à inscrire.

La forme du document est elle figée ?

Les sommes des colonnes à chaque page est-elle nécessaire ?

@ bientôt

LouReeD

Rechercher des sujets similaires à "decalage compteur bornes"