traitement de données trés complexe !!!

babelone

XLDnaute Occasionnel
Bonjour a tous,

J'ai quelque chose de complexe a faire (en tout cas pour moi !)

J'ai une feuille,dans cette feuille,les colonnes de A à AD contiennent des données d'une autre feuille,qui sont en attente de traitement.

Toutes ses données,doivent être traitées par lot de 20,10 ou 250 en fonction d'un numero de fournisseur.

Ce que je souhaiterai,c'est extraire de cette feuille(demande RMA),dés que j'ai 20 dossier pour un code fournisseur déterminé,pour les mettre dans la feuille (demande AR).

ci joint le lien du fichier,en esperant avoir expliqué correctement
Merci de votre aide .

Free - Envoyez vos documents

encore merci a tout ceux qui voudront bien se pencher sur mon probleme
 

skoobi

XLDnaute Barbatruc
Re : traitement de données trés complexe !!!

Re,
Sauf que là,je ferais le filtre sur la col N°RMA,ne connaissant pas le N°,puis je dire au code de s'executer si la cellule n'est pas vide si oui que l est il ?
quelque chose comme ça?
Code:
Sub test2()
  With Sheets("CTRF")
    'on filtre sur "non vide" pour N° RMA
    [COLOR=Black].[AD1].AutoFilter Field:=30, Criteria1:="<>"[/COLOR]
    'on vérifie qu'il y a au moins un N° RMA
[B][COLOR=Blue]    [/COLOR][/B][COLOR=Black]If .Range("AD65536").End(xlUp).Address = "$AD$1" Then
      MsgBox "Il n'y a pas de N° RMA dans la liste!", vbExclamation
      Exit Sub
    End If[/COLOR]
    For Each Y In .Range("[COLOR=Black]AD2:" & .Range("[/COLOR][COLOR=Black]AD65536").End([/COLOR]xlUp).Address).SpecialCells(xlCellTypeVisible)
      If Plage Is Nothing Then
        Set Plage = Y.Resize(1, 30)
      Else: Set Plage = Union(Plage, Y.Resize(1, 30))
      End If
    Next
    'si "plage" n'est pas vide, on copie son contenu vers EXPEDITION, à la suite
    If Not Plage Is Nothing Then Plage.Copy [COLOR=Black]Sheets("Expedition")[/COLOR].Range("A65536").End(xlUp).Offset(1, 0)
  End With

End Sub
mais le PB reste le même,puisque le N° de RMA n'est ni dans Attente AR ni dans CTRF
:confused: comment ajoutes-tu cette info dans ton fichier alors?

Bonne soirée
 

babelone

XLDnaute Occasionnel
Re : traitement de données trés complexe !!!

Concernant le bug ,ton cde marche bien sans le " trim "

Concernant le RMA, je fais 1 demande pour 20 produits,le fournisseur accapte 18 produit sur les 20,donc en refuse 2,je dois faire correspondre les 18 dosret au N° RMA recu,quand au 2 dosret refusé,je les extrait vers une feuil litige (pour retour magasin ).

comme cela les dosret correspondant ne sont plus dans aucun traitement FOURNISSEUR,et le magasin ne peut facturer car non respect des procedure de retour.
la feuille litige,c'est juste pour isoler les dosret que l'on ne peut traiter et permet de faire des stats eventuelles sur les retour des mag qui ne sont pas justifiés .

Pour l'extraction des dosret avec rma,j'ai adapté ton USF,je filtre sur la COL N° RAM,Je fait une copie de la matrice ensuite je colle les 20 dosret concerné avec la dte de demande,et le N° RMA,ensuite j'imprime,je supprime la copie de la matrice et ensuite les lignes sont supprimé de la feuil attente AR pour aller dans expediton,tu vois je progresse,par contre tjrs pas de solution pour eviter de taper 20 fois le N° de RMA

Merci !!!
 

babelone

XLDnaute Occasionnel
Re : traitement de données trés complexe !!!

Bonjour le forum,bonjour Skoobi,

Pour Mon tableau,j'ai pas mal avancé,cela commence a devenir plus que bon et je t'en remercie encore 1000 fois.

J'ai un autre soucis et là mes compétence sont plus que limité par rapport a ce que j'ai pu apprendre dernierement.

J'ai dans ma base,des code articles,avec les libellés correspondant.
Mais pour 2 marques,il souhaiterai que l'on inscrive leur Cde a eux.

Y a t'il un moyen via USF déja existant ou Cde VBA, de dire que lorsque pour tel marque si Mon CDe Art est xxxxxxx mettre a la place le Cde Art du fournisseur soit quand je fait la demande de RMA et que je l'imprime sur la matrice.biensur il faut garder une trace dans la base si je dois réimprimer ou vérifié ce que j'ai expédié.
Si je fait une demande pour Archos,serait il possible d'utiliser leur matrice a eux pour y déposer les infos de la base et imprimer leur matrice(ils sont plus exigeant que les autres(ci joint matrice)

Merci ci jint les tableau de correspondance avec commentaire.

Free - Envoyez vos documents
 

skoobi

XLDnaute Barbatruc
Re : traitement de données trés complexe !!!

bonjour babelone,

de dire que lorsque pour tel marque si Mon CDe Art est xxxxxxx mettre a la place le Cde Art du fournisseur

Je dirais plutôt si le fournisseur est ARCHOS car le code article fait toujours 7 numéros?
littéralement je verrais quelque chose comme ça:

pour chaque élément de la feuille ???
si le code article (offset(0,?) est égal à ARCHOS alors
cherche n° dosret dans feuille ARCHOS???
puis récupère le code article.

Tu conviendras que pour faire un code, il faut être précis.
 

babelone

XLDnaute Occasionnel
Re : traitement de données trés complexe !!!

Bonjour,le forum,bonjour Skoobi,

Non regarde dans le lien que je t'ai envoyé,il y a les correspondances pour Archos.

EN fait dans la base que j'ai (CTRF) cela vient d'une extraction faite par le siege lorsqu'un client vient au mag pour un produit HS,le SAV constitut le dosret avec les éléments que tu as dans CTRF,quand je recois l'extraction je l'incorpore dans ma base.

Seulement pour Achos et Creative,lors des demandes de RMA,ils veulent leur propre Cde.
D'ou ma demande pour Archos,faire correspondre si tel N° d'article / libellé faire apparaite dans USF admin (txtBox) le Cde et Libellé pour Archos (Cde art est à 6 chiffres)
et chez créative,c'est uniquement la correspondance entre Cde Art /Libellé de chez nous avec le Part Number de chez eux.
Une fois la correspondance faite,je ferais un USF pour ces 2 fournisseur pour les demandes de RMA ainsi qu'une matrice specifique.

Mais je ne sais pas et arrive pas a les faire correspondre

Merci
 

skoobi

XLDnaute Barbatruc
Re : traitement de données trés complexe !!!

Re,

faire correspondre si tel N° d'article / libellé faire apparaite dans USF admin (txtBox) le Cde et Libellé pour Archos (Cde art est à 6 chiffres)

Dans USF admin, j'ai modifié le code du bouton "Recherche par n° de dossier" qui va rechercher dans le fichier de correspondance archos le code à 6 chiffres ainsi que le libellé si le nom du fournisseur est archos (en rouge à supprimer)
Code:
 ........
.............
Admin.TextBox12.Value = Sheets("CTRF").Cells(LigneActive, "J").Value
 
[B][COLOR=#ff0000][COLOR=blue]If TextBox10.Value = "ARCHOS" Then
  Set CCdeArchos = Workbooks("ARCHOS_table de correspondance.xls").Sheets(1).Columns(3).Find(TextBox13.Value, LookIn:=xlValues, lookat:=xlWhole)
  If Not CCdeArchos Is Nothing Then
    TextBox13.Value = CCdeArchos.Offset(0, -2).Value
    TextBox14.Value = CCdeArchos.Offset(0, 1).Value
  Else: MsgBox "Code perso " & TextBox13.Value & " non trouvé dans la correspondance.", vbExclamation
  End If
Else
  Admin.TextBox13.Value = Sheets("CTRF").Cells(LigneActive, "K").Value
  Admin.TextBox14.Value = Sheets("CTRF").Cells(LigneActive, "L").Value
End If[/COLOR]
[/COLOR][/B]
[B][COLOR=blue][/COLOR][/B]
[COLOR=red][B]Admin.TextBox13.Value = Sheets("CTRF").Cells(LigneActive, "K").Value[/B][/COLOR]
[COLOR=red][B]Admin.TextBox14.Value = Sheets("CTRF").Cells(LigneActive, "L").Value[/B][/COLOR]
Admin.TextBox15.Value = Sheets("CTRF").Cells(LigneActive, "M").Value
...
........
.....
Ca devrait t'aider pour "créative".

Bon après-midi
 
Dernière édition:

babelone

XLDnaute Occasionnel
Re : traitement de données trés complexe !!!

Bonjour le forum,bonjour Skoobi,

J'ai testé ton cde,soit je me suis trompéou il ne marche pas,losque je l'exécute,il ne met plus rien dans TxtBox 13 & 14,si j'ai bien compris il devrait mettre la correspondance de la feuil1 Archos !!!!
Aprés j'ai rajouté txtbox 25 et 26 pour qu'il affiche si trouve correspondance le PN archos ainsi que la désignation,mais rien non plus.

D'autre part,si je rajoute la feuil1 (LISTE PN) quel code dois je mettre a la place du tien.
Set CCdeArchos = Workbooks("ARCHOS_table de correspondance.xls").Sheets(1).Columns(3).........

J'ai essayé celui ci mais marche pas non plus...

Set CCdeArchos = Sheets("LISTE PN").Columns(3)......

A quoi correspond Offset(0, -2) & Offset(0, 1)

Je crois que je vais commander un livre bien détaillé sur VBA au père Noël !!!

Merci
 

babelone

XLDnaute Occasionnel
Re : traitement de données trés complexe !!!

Méa Culpa,cela marche comme je le souhaitais,par contre,je dois clicker 2 fois sur la recherche par dossier,1 fois pour faire apparaitre le dosret,et la 2 eme fois pour qu'il trouve la correspondance et l'affiche dans txtB 25 & 26
y a t'il un moyen que cela le fasse dés le 1 er click ?

Merci
 

babelone

XLDnaute Occasionnel
Re : traitement de données trés complexe !!!

Bonjour Skoobi,

If TextBox10.Value = "ARCHOS" Then
Set CCdeArchos = Workbooks("ARCHOS_table de correspondance.xls").Sheets(1).Columns(3).Find(TextBox13.Value, LookIn:=xlValues, lookat:=xlWhole)
If Not CCdeArchos Is Nothing Then
TextBox25.Value = CCdeArchos.Offset(0, -2).Value
TextBox26.Value = CCdeArchos.Offset(0, -1).Value
Else: MsgBox "Code Article " & TextBox13.Value & " non trouvé dans la correspondance ARCHOS.", vbExclamation
End If
'Else
'
'Admin.TextBox13.Value = Sheets("CTRF").Cells(LigneActive, "K").Value
'Admin.TextBox14.Value = Sheets("CTRF").Cells(LigneActive, "L").Value

End If

Admin.TextBox13.Value = Sheets("CTRF").Cells(LigneActive, "K").Value
Admin.TextBox14.Value = Sheets("CTRF").Cells(LigneActive, "L").Value


Je n'ai pas supprimé les 2 lignes rouges sinon plus rien dans TxtB 13 & 14
Sinon tout fonctionne si ce n'est que je dois clicker 2 fois
Si je copie " ARCHOS_table de correspondance " dans Traitement CTRF,que dois je mettre comme chemin dans le code de l' USF Admin ? Ce qui m'éviterai d'ouvrir le ficier avant
Merci
 

skoobi

XLDnaute Barbatruc
Re : traitement de données trés complexe !!!

Il faut mettre textbox13 & 14 avant la recherche car sinon lors du premier clic, comme le textbox est vide, il recherche "rien".

Admin.TextBox13.Value = Sheets("CTRF").Cells(LigneActive, "K").Value
Admin.TextBox14.Value = Sheets("CTRF").Cells(LigneActive, "L").Value

If TextBox10.Value = "ARCHOS" Then
Set CCdeArchos = Workbooks("ARCHOS_table de correspondance.xls").Sheets(1).Columns(3).Find(Tex tBox13.Value, LookIn:=xlValues, lookat:=xlWhole)
If Not CCdeArchos Is Nothing Then
TextBox25.Value = CCdeArchos.Offset(0, -2).Value
TextBox26.Value = CCdeArchos.Offset(0, -1).Value
Else: MsgBox "Code Article " & TextBox13.Value & " non trouvé dans la correspondance ARCHOS.", vbExclamation
End If
'Else
'
'Admin.TextBox13.Value = Sheets("CTRF").Cells(LigneActive, "K").Value
'Admin.TextBox14.Value = Sheets("CTRF").Cells(LigneActive, "L").Value

End If
 

babelone

XLDnaute Occasionnel
Re : traitement de données trés complexe !!!

Bonjour le forum,bonjour Skoobi,

OK c'est bon !!!

merci

Pour le chemin d'acces,si je copie la feuil1 "LISTE PN" du classeur ARCHOS

Set CCdeArchos = Workbooks("ARCHOS_table de correspondance.xls").Sheets(1).Columns(3).Find(Tex

Que dois je mettre comme chemin ?


Merci pour tout Skoobi.
 

babelone

XLDnaute Occasionnel
Re : traitement de données trés complexe !!!

Bonjour le forum,bonjour Skoobi,

J'ai modifié le code,c'est OK.
Est il possible losque j'ai extrait 20,40,ou 60 produits pour une meme marque,
indiquer que les 20 premier selectionnés auront le N° de colis 1
les 20 second le N° de colis 2 ext.....
ce qui me permet une fois le N° RMA obtenu de retrouver les dosret correspondant facilememt.
Je pense ajouter dans usf "attente AR un TxtBox N° de colis,selectionner les 20 produits de la marque "X ", y mettre le N° de Colis est lorsque je click sur extraire,il mette dans la colonne N° de Colis (AE de le Feuil Attente AR) le N° correspondant pour ses 20 produits.

Je sais tout faire sauf y déposer ce fameux N° de colis dans la selection effectuée par le tri dans le code.

Merci
 

Discussions similaires

Statistiques des forums

Discussions
311 721
Messages
2 081 928
Membres
101 842
dernier inscrit
seb0390