[Résolu] Macro qui transfère mal les données dans la base (décalage à gauche)

Webperegrino

XLDnaute Impliqué
Supporter XLD
Bonsoir Le Forum,
Je suis contraint de devoir ouvrir cette nouvelle discussion.
En effet l’application que vous découvrirez fonctionne presque parfaitement grâce à l’intervention de VGENDRON du 4/06/2014 puis de EFGÉ (conversation précédente pour placer le jour recherché en cohérence dans toutes les feuilles à la fois).

Il reste un problème à résoudre au niveau des transferts de valeurs des trois colonnes BRUT SAC VIDE et NET des feuilles FICHE et SAISIE vers la feuille BD, soit pour chaque jour dans feuille BD : colonne 1, 2 et 3, les trois colonnes 4, 5 et 6 qui suivent restant avec leurs éventuelles formules.
Ces trois dernières colonnes ne doivent pas être écrasées quand on archive les valeurs dans le jours suivants.
C’est ce qui se passe pour les jours 2, 3, 4 et suivants comme je l’explique dans ce qui suit.
Et le comble serait que cela fonctionne chez vous.

Dans la feuille BD la macro qui me prose problème est la macro MODULE 1 « SvBD » en sa ligne suivante :

b.Range(plgAdresse).Offset(0, obj.Row * 5 - 5).Value = .Value

Je ne comprends pas le fonctionnement de cette macro.
Elle agit parfaitement pour le premier jour dans la base : POIDS BRUT, SAC VIDÉ et POIDS NET sont bien transférés dans les trois bonnes colonnes correspondantes dans la base. Colonnes 4, 5, 6 restent avec leurs formules éventuelles pour ce 1er jour.

Malheureusement quand on transfert à partir du 2ème jour, la ligne de macro ci-dessus décale vers la gauche d’une colonne dans la base et chamboule tout l’ordonnancement prédéfini dans la feuille BD.

Où est l’erreur quand on saisit les jours 2, 3, 4 etc ?
Pourquoi ce décalage parasite ?
Comment faire pour que les transferts se fassent de la feuille saisie vers la base dans les trois premières colonnes de chaque jour recherché sur la ligne 3 (F3, L3, et jusqu’à BH3) ?

Votre aide me faciliterait l’achèvement de cette petite application qui me tient à cœur.

J’aimerais connaître pourquoi la macro ne fonctionne pas pour tous les jours de cette ligne 3.

Cordialement,
Webperegrino
 

Pièces jointes

  • TEST transfert vers base en fonction du jour.xls
    322.5 KB · Affichages: 40
Dernière édition:

Modeste

XLDnaute Barbatruc
Re : Macro qui transfère mal les données dans la base (décalage à gauche)

Bonjour Webperegrino,

Une piste à explorer/question à te poser: "Se pourrait-il que, depuis que ce code a été écrit, tu aies ajouté une colonne, pour chaque "bloc de date", en feuille "BD", de sorte que tu aurais des blocs de 6 colonnes plutôt que 5?"
 

Bebere

XLDnaute Barbatruc
Re : Macro qui transfère mal les données dans la base (décalage à gauche)

bonjour Webperegrino
essaye ce qui suit
Code:
    With Sheets("SAISIE")
        dl = .Cells(Application.Rows.Count, 2).End(xlUp).Row
        c = Day(.Range("F3").Value) - 1
        c = 3 + (6 * c)    '1ère  colonne 3(C),2ème 9(I),3ème 15(O),etc
        l = b.Cells(65536, c).End(xlUp).Row + 1
        plgAdresse = "C7:D" & dl
        .Range(plgAdresse).Copy Destination:=b.Cells(l, c)
 

Webperegrino

XLDnaute Impliqué
Supporter XLD
Re : Macro qui transfère mal les données dans la base (décalage à gauche)

Bonjour Le Forum,
Bonjour Modeste,

Glups Bebere, Bonjour, je viens de découvrir ta proposition que je vais essayer. Merci.

Modeste, je réponds pour ta piste de recherche :
- La constitution de la feuille BD n'a pas changé depuis la mise en place du code ;
- Seule modification en feuille SAISIE :
Il a été intercalé dans la Feuille SAISIE la colonne "Sac vidé".
On assure ainsi une cohérence entre le contenu des feuilles FICHE, SAISIE et BD lors de l'action ultérieure du bouton RAPPELER en feuille MENU.
Avec ce bouton les valeurs du jour recherché dans "BD" sont retournées dans les feuilles FICHE et SAISIE pour une possible rectification ou un complément de valeurs avant nouveau transfert dans la feuille BD-Archive.
Voilà ce qui a été amélioré depuis la mise en place du code.
Enfin il y a toujours les mêmes colonne A et B préalables dans chacune des trois feuilles FICHE, SAISIE et BD.
Webperegrino
 
Dernière édition:

Webperegrino

XLDnaute Impliqué
Supporter XLD
Re : Macro qui transfère mal les données dans la base (décalage à gauche)

Le Forum, Bebere, Modeste,
La proposition de Bebere, rectifiée comme suit, semble être acceptée :

'14juin14 solution de Bebere, et rectifiée en dernière ligne
With Sheets("SAISIE")
dl = .Cells(Application.Rows.Count, 2).End(xlUp).Row
c = Day(.Range("F3").Value) - 1
c = 3 + (6 * c) '1ère colonne 3(C),2ème 9(I),3ème 15(O),etc
'l = b.Cells(65536, 2).End(xlUp).Row + 1
plgAdresse = "C7:D" & dl
.Range(plgAdresse).Copy Destination:=b.Cells(7,c)

Je poursuis la vérification de ces codes avec le reste du fonctionnement de l'application.
Merci à vous,
Cordialement,
Webperegrino
 

Webperegrino

XLDnaute Impliqué
Supporter XLD
Re : Macro qui transfère mal les données dans la base (décalage à gauche)

Le Forum,
Modeste, Bebere,
Tout fonctionne ; le dernier code proposé est en place.
J'ai corrigé quelques anomalies dans la colonne Nombre (formule avec références absolues) et tout est parfait.
L'application tourne correctement dans tous les sens.
Merci encore à vous pour votre aide précieuse,
Cordialement,
Webperegrino
 

Discussions similaires