transfert de données selon un code

sebbbbb

XLDnaute Occasionnel
Bonjour à tous

excellente année 2017 à vous toutes et tous et longue vie à ce site.

vous le devinez je vous sollicite pour résoudre un problème qui me gâche la vie depuis plusieurs jours.
vous trouverez en PJ le document en question

Voilà je dois renseigner dans l'onglet new D1 des types de matériel qui embarque dans un navire.

en fonction du type de marchandises un code s'applique ; ce code permettra de faire le distingo sur un autre onglet et de les séparer par type (trailer, TCU etc).

JE précise que les données sont entrées sans aucun ordre dans l'onglet D1, je ne peux donc pas prevoir à l'avance des renvoi dans tel ou tel cellules

pour résumer je souhaiterai que toutes les marchandises listées dans l'onglet NEW D1 et ayant le code 1 soient listées les unes après les autres dans l'onglet terminal report ( partie trailers : a commencer sur la cellule B25 ; puis C25, D25 etc etc)

Toutes les marchandises listées dans l'onglet NEW D1 et ayant le code 2 soient listées les unes après les autres dans l'onglet terminal report (partie TCU : a commencer sur cellule B39; puis c39 etc etc)

Toutes les marchandises listées dans l'onglet NEW D1 et ayant le code 3 soient listées les unes après les autres dans l'onglet terminal report (partie cars : a commencer sur cellule B51; puis c51 etc etc)

un énorme merci par avance à tous ceux qui voudront bien m'aider. vous l'aurez compris je suis novice (même si j'apprends plein de choses grâce à vous) et mes différentes recherches sur le net ne m'ont pas aidées

seb
 

Fichiers joints

JBARBE

XLDnaute Barbatruc
Bonjour à tous,
Bonjour à tous
en fonction du type de marchandises un code s'applique ; ce code permettra de faire le distingo sur un autre onglet et de les séparer par type (trailer, TCU etc).
Je présume que ces codes sont représentés par ces N° qui se suivent ( 1-2-3 etc...)

JE précise que les données sont entrées sans aucun ordre dans l'onglet D1, je ne peux donc pas prevoir à l'avance des renvoi dans tel ou tel cellules
Peux-tu nous donner quelques exemples afin que l'on comprenne mieux
D'autre part, d'où vient Cars : Dacia Cars tanger

Merci & bonne soirée
 

sebbbbb

XLDnaute Occasionnel
Bonsoir Jbarbe

je me rends compte que j'avais mis un fichier erroné. désolé :). Mes explications n'étaient pas très claires également

ci-joint le bon fichier

donc je résume à nouveau. je souhaiterai que :

- toutes les marchandises listées dans l'onglet NEW D1 et ayant le code 1 (sous type) soient listées également et automatiquement les unes après les autres dans l'onglet terminal report ( partie Trailers : en commençant sur la cellule B25 ; puis B26, B27 etc etc), tout comme la provenance (N25, puis N26, puis N27...)

- toutes les marchandises listées dans l'onglet NEW D1 et ayant le code 2 (sous type) soient listées également et automatiquement les unes après les autres dans l'onglet terminal report ( partie TCU : en commençant sur la cellule B39 ; puis B40, B41 etc etc), tout comme la provenance (N39, puis N40, puis N41...)

- toutes les marchandises listées dans l'onglet NEW D1 et ayant le code 3 (sous type) soient listées également et automatiquement les unes après les autres dans l'onglet terminal report ( partie Cars : en commençant sur la cellule B51 ; puis B52 etc etc), tout comme la provenance (N51, puis N52...)

en fait il s'agit d'un tri en fonction du code

j'espère être plus clair maintenant

un grand merci par avance
seb
 

Fichiers joints

JBARBE

XLDnaute Barbatruc
Re,
Je constate qu'il y a des doublons :
exemple :SA J 13/14 - 1 - TUNIS
Faut-il les éliminer ?
D'autre part, dans la feuille "New D1" les lignes 48 (Marchandise en chargement), 80 (marchandise en remport) sont -elle appelée à être modifiées ?
Bonne soirée !
 

sebbbbb

XLDnaute Occasionnel
Merci pour ton retour
Oui il peut y avoir des doublons si les march sont identiques.
Pour le chargement le principe est le meme mais je pourrai me debrouiller si tu peux m aider deja sur la 1ere partie. ca me fera 1 entrainement ☺
Merci par avance
 

JBARBE

XLDnaute Barbatruc
Re,
En cliquant sur le bouton "GO"
Dans la feuille "Terminal report" J'ai fait en sorte d’insérer une ligne aux lignes 38 - 50 lorsqu’elles sont atteintes !
A tester !
Bonne nuit !
 

Fichiers joints

sebbbbb

XLDnaute Occasionnel
JBarbe

Bravo ! tu as parfaitement compris ce que je souhaitais. Un ENORME merci à toi.
Je voulais t'éviter quelques modif et les faire par moi même mais en regardant la macro je te confirme que cela me dépasse totalement.
Puis je abuser à nouveau de ton aide et de tes connaissances ?
j'ai mis à jour le tableau.
Pourrais tu adapter ta macro pour que cela marche avec la totalité des marchandises listées dans l'onglet New D1, a la fois pour les marchandises en déchargement ainsi que celles en chargement (partie droite du tableau).
Sincèrement tu m'enlèves une grosse épine du pied.
ci-joint le fichier modifié
Seb
 

Fichiers joints

JBARBE

XLDnaute Barbatruc
Re,
Question : où met-on "marchandise en remport " dans la feuille "Terminal report " et avec quel type ?
Je m'absente un peu et reprends le travail dans la soirée !
Bonne journée !
 

JBARBE

XLDnaute Barbatruc
Re,
J'ai neutralisé " Worksheet_Change " dans les feuilles car ils posaient problèmes !
Dans la feuille "Terminal report " une ligne supplémentaire s'ajoute lorsqu'il n'y a plus de place pour la copie !
Dans la feuille "New D1", si de nouvelles saisies doivent avoir lieu avant "MARCHANDISE EN CHARGEMENT" et ainsi avoir les lignes décalées par l'ajout de ces saisies supplémentaires, ce décalage est tenu en compte !
bonne soirée !
 

Fichiers joints

sebbbbb

XLDnaute Occasionnel
Génial !!!!
Tu es un king du VBA :). Ouah je suis impressionné !
Mille mercis
Dis moi : est il possible de shinter le bouton GO pour la macro s'exécute d'elle même, lorsque l'on se place dans l'onglet terminal report par exemple ?
Mais c'est déjà super. sans toi je n'aurai pas réussi.
comment pourrais je te remercier ?
seb
 

JBARBE

XLDnaute Barbatruc
Génial !!!!
Dis moi : est il possible de shinter le bouton GO pour la macro s'exécute d'elle même, lorsque l'on se place dans l'onglet terminal report par exemple ?
seb
Re,
Met cette macro dans la feuille : Terminal report !
Code:
Private Sub Worksheet_Activate()
  Call Transfert_Total
End Sub
bonne soirée !
 

JBARBE

XLDnaute Barbatruc
Re,
J'ai abandonner l'insertion de lignes dans la feuille Terminal report car le décalage de lignes posaient problèmes !
Néanmoins, j'ai fait en sorte qu'il y ai suffisamment d'espace pour la copie
bonne soirée !
 

Fichiers joints

sebbbbb

XLDnaute Occasionnel
Bonjour JBarbe
j'ai redéfini la mise en page de mon document et donc fait de légères modif sur ton code pour que les infos s'intègrent sur les bonnes lignes.
Tout marche nickel.
Encore mille merci pour ton aide.
Plus que quelques tests a réaliser après l'avoir intégré à un autre fichier et ce sera parfait pour moi.
Comment as tu toutes ces connaissances sur le VBA ? cela me donne vraiment envie de me former à cela.
seb
 

sebbbbb

XLDnaute Occasionnel
Mince, je crois que je vais t'embêter à nouveau si tu veux bien.

j'aimerai que lorsque l'on entre une marchandise (en déchargement ou en chargement) et que l'on oublie d'entrer le code correspondant il y ait un message d'alarme qui se lance.

j'ai bien trouvé ce type de message mais il y a un hic :

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Sheets("D1 Airbus").Range("D19") = "" Then MsgBox "SVP INDIQUER LE CODE MARCHANDISE": Cancel = True
End Sub

Je suis persuadé que tu sauras me dépanner
Merci JBarbe
 

JBARBE

XLDnaute Barbatruc
Re,
dans la macro " transfert_Dechargement " insère ce code en gras bleu au bon endroit :
With Sheets("New D1")
For i = 19 To 65536
If .Cells(i, 2) = "" Then Exit Sub
If .Cells(i, 4) = "" Then
MsgBox " Vous avez oublié le type à la cellule D" & " " & i
Exit Sub
Else
If .Cells(i, 4) = 1 Then
--------------------------------------------------------------------------------
dans la macro " transfert_Chargement " insère ce code en gras bleu au bon endroit :
For i = B To 65536
If .Cells(i, 2) = "" Then Exit Sub
If .Cells(i, 4) = "" Then
MsgBox " Vous avez oublié le type à la cellule D" & " " & i
Exit Sub
Else
If .Cells(i, 4) = 1 Then
------------------------------------------------------------------------------------
Peux-tu nous mettre ton fichier modifié !
Mon apprentissage VBA c'est fait par l'intermédiaire de vieux bouquin (exemple : VBA Excel 2003 de Micro Application qui n'existe plus ) et surtout en consultant régulièrement ce forum !
Cela dit, j'ai quelques difficultées à comprendre certaines macros fait par des bénévoles comme Job75 etc....( toutes mes excuses pour les autres) parce que je n'ai pas appris leur genre de programmation !
bonne journée !
 
Dernière édition:

sebbbbb

XLDnaute Occasionnel
Merci beaucoup.
en fait je pensais plutôt à une macro (ou complément de macro) qui envoie message d'alerte avant l'enregistrement lorsqu' un code de marchandise n'est pas renseigné avec impossi
 

sebbbbb

XLDnaute Occasionnel
Re-moi
j'ai un p'tit prob :-(
La macro que tu m'as donné pour activer automatiquement les changements à chaque ouverture de l'onglet 'terminal report' ne fonctionne plus.
j'ai beau retourner le prob dans tous les sens rien n'y fait.
par contre le bouton fonctionne toujours
Suis désolé.
peux tu m'expliquer d'où vient ce bug stp
merci
je te joins donc le fichier actualisé
Seb
 

Fichiers joints

JBARBE

XLDnaute Barbatruc
Re,
Prends plutôt ce fichier qui contient plus de lignes dans la feuille "Terminal report " car l'ajout de lignes supplémentaires avec macro n'est pas possible dans ce cas de configuration !
La macro que tu dis fonctionne très bien chez moi !
Quand à une macro qui empêche les oublies de saisie, cela est fait !
Bonne journée !
 

Fichiers joints

sebbbbb

XLDnaute Occasionnel
Merci pour ta réactivité
en fait j'ai trouvé d'où venait le problème. c'était une autre macro qui transformait toutes mes données en majuscule. lorsque je supprimais une donnais celà bloquait toutes les autres macros d'où mon problème.
j'ai trouvé une autre solution pour y remedier donc le fichier marche de nouveau très bien...grâce à toi
merci et bon WE
seb
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas