Modification Code Dispatching (Code de Job)

an@s

XLDnaute Occasionnel
Bonjour à tous,
premièrement je m'excuse d'avoir crée tant de psoeudo et cela parce que premièrement je suis nul en VBA donc je me connecte rarement sur le site du coup à chaque fois j'ai besoin de quoi que ce soit concernant mon boulot je crée un nouveau pseudo parce que je ne garde pas l'ancien en pensant que ce n'est pas grave tant que ca ne fait mal à personne ( je déclare garderai dorénavant celui ci)

pour mon sujet et comme vous pouvez constater dans le fichier ci-annexé j'ai un code dans la feuille RECAP qui crée deux tableaux qui viennent des feuilles PAIE MENS & PAIE HOR

ce que je souhaite avoir c'est de rajouter sur cette feuille RECAP un autre code permettant de :

  • Pour feuille ODA MENS :
Copier colonne C de RECAP dans colonne H de ODA Mens
Copier colonne A de RECAP dans colonne L si les données de colonne A commencent avec MATX. (avec point)
Copier colonne A de REcap dans colonne J si les donnes de la colonne A commencent avec MATX (sans point)

  • Pour feuille ODA HOR :
Copier colonne I de RECAP dans colonne H de ODA Mens
Copier colonne H de RECAP dans colonne O de ODA Hor
Copier colonne G de RECAP dans colonne L si les données de colonne A commencent avec MATX. (avec point)
Copier colonne G de RECAP dans colonne J si les donnes de la colonne A commencent avec MATX (sans point)

NB: les données de colonne B et G (nature comptable) puis I et P sans oublier la colonne O sont exporté avec ce tableau d'un système et il faut les garder tel qu'ils sont

  • pour la feuille CAP Congés (Mens)
copier les données de la colonne W de la feuille PAIE-MENS-DTE dans la colonne D de la feuille CAP Congés (Mens)
copier les données de la colonne AD de la feuille PAIE-MENS-DTE dans la colonne M de la feuille CAP Congés (Mens) si ca commence avec MATX. (avec Point)
copier les données de la colonne AD de la feuille PAIE-MENS-DTE dans la colonne L de la feuille CAP Congés (Mens) si ca commence avec MATX. (sans Point)
copier les données de la colonne D de la feuille PAIE-MENS-DTE dans la colonne N de la feuille CAP Congés (Mens)

NB: dans PAIE-MES-DTE s'il existe des lignes dont les données de la colonne AD et D sont identiques on les rassemble dans une seule ligne dans CAP Congés (Mens) avec la somme des montant de la colonne W en un seul
  • pour la feuille CAP Congés (Hor)
copier les données de la colonne W de la feuille PAIE-HOR-DTE dans la colonne D de la feuille CAP Congés (Hor)
copier les données de la colonne AD de la feuille PAIE-HOR-DTE dans la colonne M de la feuille CAP Congés (Hor) si ca commence avec MATX. (avec Point)
copier les données de la colonne AD de la feuille PAIE-HOR-DTE dans la colonne L de la feuille CAP Congés (Hor) si ca commence avec MATX. (sans Point)
copier les données de la colonne D de la feuille PAIE-HOR-DTE dans la colonne N de la feuille CAP Congés (Hor)

NB: dans PAIE-HOR-DTE s'il existe des lignes dont les données de la colonne AD et D sont identiques on les rassemble dans une seule ligne dans CAP Congés (Mens) avec la somme des montant de la colonne W en un seul

Cordialement
 

Pièces jointes

  • REFAC.xlsm
    349.6 KB · Affichages: 45

job75

XLDnaute Barbatruc
Re,
il ne faut pas créer cette colonne K dans RECAP, donc je souhaite copier les données de la colonne Z (PAIE-HOR) dans ODA-HOR sans passer par RECAP
Je pense que vous racontez n'importe quoi !

Il serait stupide de ne pas utiliser la feuille "RECAP" puisqu'on l'utilise déjà dans la macro ODA.

Mais puisque vous ne voulez pas modifier la colonne K (vide) il suffit de l'effacer après utilisation.

J'ai ajouté un paramètre supplémentaire (NC, facultatif) à la macro RECAP :
Code:
Sub RECAP(feuille$, deb As Range, Optional NC As Byte)
Fichier (6 bis).

A+
 

Pièces jointes

  • REFAC final(6 bis).xlsm
    245.8 KB · Affichages: 32

job75

XLDnaute Barbatruc
Bonjour an@s, le forum,

Il serait stupide d'introduire des formules dans le fichier source :
Code:
Option Compare Text 'la casse est ignorée
'---
'---regroupements---
Set d = CreateObject("Scripting.Dictionary")
d.CompareMode = vbTextCompare 'la casse est ignorée
ReDim a(1 To nlig, 1 To 3)
For i = 1 To nlig - 1
  x = t(i, 1) & Chr(1) & t(i, 2)
  If x <> Chr(1) Then 'exclut les lignes dont les colonnes T et U sont vides
    y = t(i, 25) * IIf(t(i, 13) = "Péage ADM", 1.01, 1) 'teste la colonne AF
    If d.exists(x) Then
      a(d(x), 3) = a(d(x), 3) + y
    Else
      j = j + 1
      a(j, 1) = t(i, 1): a(j, 2) = t(i, 2): a(j, 3) = y
      d(x) = j 'mémorise
    End If
  End If
Next i
Fichiers joints.

La dernière ligne (vide) sera supprimée, noter que le total reste le même.

Bonne journée.
 

Pièces jointes

  • ODA GASOIL(3).xlsm
    50.9 KB · Affichages: 34
  • Gasoil.xlsx
    991.6 KB · Affichages: 31

an@s

XLDnaute Occasionnel
Bonjour Job,

merci infiniment c'est exactement ce que je souhaitais
bien entendu, le total restera le même puisque le montant qu'on avait sur la dernière ligne à été dispatché en 1% sur les autres lignes

Cordialement
An@s
 

an@s

XLDnaute Occasionnel
Bonjour Job, le forum,

je vais vous casser la tête encore une dernière fois pour ce projet,
est ce que c'est possible de regrouper les données dans une feuille RECAP comme dans le fichier ci-joint,
en mettant les données des colonnes G, F, C (feuille GASOIL) dans A, B, C (feuille Recap) et à chaque fois en clique sur la feuille RECAP les données s'actualisent...

Cordialement
An@s
 

Pièces jointes

  • ODA GASOIL(3).xlsm
    48.8 KB · Affichages: 33

an@s

XLDnaute Occasionnel
Bonsoir Job,
vous avez raison, j'ai oublié qu'on a traité une recap similaire sur un autre projet
j'ai essayé de l'adapté sur ce fichier et ça marche mais pas a 100% comme vous pouvez constater sur le fichier ci-joint:
  • dans la colonne A de la feuille RECAP tout est bien les EOTP sont regroupés pur qu'ils ne soient pas en double
  • la colonne C présente la somme des valeurs par EOTP est c'est bien aussi
  • le seul souci c'est la colonne B qui ne doit pas faire la somme des valeurs de la colonne F (feuille GASOIL), la colonne B doit comporter comme la colonne A les codes des chantiers sans doublons
  • pour la ligne totale (ligne 34) je souhaite que A34 et B34 soient fusionnées avec le mot TOTAL et la seule cellule qui aura la somme c'est C34
j'espère que ce soit possible de faire ces deux modifications,
je m'excuse de ne pas pouvoir adapté tout le code à mes besoins, et de vous tracasser la tête plusieurs fois avec mes demandes.
en revanche je vous remercie encore une fois infiniment pour tout les codes que vous m'avez déjà fourni auparavant parce que ça m'a permis de réduire mon temps de travail, et pour cela je vous en serai reconnaissant toute ma vie.

Cordialement
An@s
 

Pièces jointes

  • ODA GASOIL(3).xlsm
    51 KB · Affichages: 27

an@s

XLDnaute Occasionnel
Bonsoir chti, job, le forum

Votre réponse est aussi importante et réponds bien à ma demande et certes je vais l'utiliser sur un autre projet.
En revanche je préfère avoir une réponse adéquate au code de job que j'ai essayé d'adapter à ma problématique

Amicalement
An@s
 

job75

XLDnaute Barbatruc
Re,

Avec un tableau VBA (matrice) c'est plus rapide car on ne traite plus les cellules une par une.

Mais ce n'est pas du tout indispensable si le tableau source ne dépasse pas disons 10 000 lignes...

Fichier (4).

A+
 

Pièces jointes

  • ODA GASOIL(4).xlsm
    58.2 KB · Affichages: 35