XL 2016 Copier certaines cellules de plusieurs ou d'une ligne(s) d'un tableau sur autre feuille

andrekn13

XLDnaute Occasionnel
Bonjour, je fais encore appel aux génies présents !
je tourne en rond
je préfère vous envoyer le fichier vierge qu'avec tous mes essais
Je dois donc suivant le résultat d'une cellule nommée (numero de commande) faire apparaitre dans une autre feuille (résultat commande) sous forme de tableau les lignes d'une même commande. mais, agencée différemment, et que celles qui m'interresent. en vba !
voici mon fichier
Merci infiniment de m'aider
 

Pièces jointes

  • Classeur1.xlsm
    46.3 KB · Affichages: 13

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Andrekn,
Un essai en PJ avec :
VB:
Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Fin: If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, [C9]) Is Nothing Then
         Application.ScreenUpdating = False
         Application.EnableEvents = False
         Dim T, i%, Ligne%
         [B16:F1000].ClearContents
         With Sheets("ORDERS")
            DL = .[A65500].End(xlUp).Row
            T = .Range("A1:G" & DL)
            Ligne = 16
            For i = 2 To UBound(T)
                If T(i, 2) = Val(Target) Then
                    Cells(Ligne, "B") = T(i, 1) 'Code
                    Cells(Ligne, "C") = T(i, 4) 'Product
                    Cells(Ligne, "D") = T(i, 7) 'Price
                    Cells(Ligne, "E") = T(i, 5) 'Number
                    Cells(Ligne, "F") = T(i, 6) 'Total
                    Ligne = Ligne + 1
                End If
            Next i
         End With
    End If
Fin:
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
La macro se lance automatiquement pas modification de la cellule C9 (ID)
Mais attention :
1- Pour Orders et Benefit j'ai fait un copier coller valeurs car n'ayant pas accès à votre base j'avais des #REF partout.
2- J'ai supposé que :
- Facturation ID était la colonne B de ORDERS
- CODE était ORDER ID
- PRICE était BENEFIT
sinon il suffit d'adapter.
 

Pièces jointes

  • Classeur1 (15).xlsm
    43.3 KB · Affichages: 2

andrekn13

XLDnaute Occasionnel
euhh ton code me dépasse
par contre tu as mis sur code les N° de commande
sur produit tu as mis les codes !!
en fait le
ORDER NUMBER :​
20220370
est le numero en "nommé" : OrderNumber
et c'est à partir de lui qu'il faut aller chercher dans la feuille ORDERS TOUTES LES LIGNES qui ont été ajoutés lors de la commande (avec combobox) puis les replacer dans la feuille de FACTURATION
 

andrekn13

XLDnaute Occasionnel
j'ai beaucoup hésiter à passer par cette solution; j'avais l'option de tout récupérer à partir de mon USF, mais il est conçu (ne sachant pas faire autrement) que chaque chois d'un produit affiche son prix et quantite puis le total de ce produit. Pour en choisir un autre je dois d'abord transférer ces donées sur la feuille ORDERS PUIS réinitialiser le USf; MALHEUREUSEMENT JE NE SAIT PAS COMMENT faire pour créer "une feuille de commande" soit par le USF par par cette feuille ORDERS
 

andrekn13

XLDnaute Occasionnel
merci infiniment pour ton aide
mon fichier d'origine est trop complexe pour aider, je ne pensais pas qu'en copiant simplement 2 feuilles pour isoler mon problème ça allait afficher pleins d'erreurs.
Je viens de tester...........
je reste admidratif, après au moins 8 heures à essayer je me demande quand je pourrais sortir ce style de code !
un grand merci. J'ai même eu du mal à comment savoir comment "le faire bouger"pour réinitialiser la macro
super top c'est exactement le résultat désiré 👍🙂
 

andrekn13

XLDnaute Occasionnel
Re bonjour Sylvanu
J'ai pas pas mal de modifs sur mes macros mais là je reste stotché :
même en re téléchargeant ton fichier d'origine qui marchait hier , ta macro ne fonctionne plus du tout. j'ai "tout essayé" pour comprendre pourquoi alors que ce j'ai modifié n'a rien à voir .
De plus ton code est sur la feuille elle-même sans aucun rapport avec le reste........
si par miracle tu aurais une idée ?
 

soan

XLDnaute Barbatruc
Inactif
Bonjour,

si la macro ne fonctionne plus du tout sur le fichier d'origine qui a été re-téléchargé, alors à tout hasard : peut-être que les macros ont été désactivées entre-temps ? (je n'ai pas d'autre piste à proposer)

soan
 

job75

XLDnaute Barbatruc
Bonjour andrekn13, sylvanu, soan,

Les gens qui ont de la suite dans les idées utilisent les mêmes noms de colonnes dans les 2 feuilles :rolleyes:

Voyez le fichier joint et cette macro qui utilise le filtre avancé :
VB:
Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [H9]) Is Nothing Then Exit Sub
Dim titre As Range, mem, critere As Range
Application.ScreenUpdating = False
Set titre = [B15:F15]
mem = titre 'mémorise'
titre = Array("ID", "PRODUCTS", "BENEFIT", "QUANTITY", "TOTAL") 'on a de la suite dans les idées
titre.Offset(1).Resize(Rows.Count - titre.Row).Delete xlUp 'RAZ
With Sheets("ORDERS").[A1].CurrentRegion
    Set critere = .Cells(1, .Columns.Count + 2).Resize(2)
    critere(1) = "ORDER ID"
    critere(2) = [H9]
    .AdvancedFilter xlFilterCopy, critere, titre 'filtre avancé copié
End With
critere = "" 'RAZ
titre = mem 'restitution
titre.CurrentRegion.BorderAround Weight:=xlMedium 'bordures
End Sub
A+
 

Pièces jointes

  • Filtre avancé(1).xlsm
    42 KB · Affichages: 2

Discussions similaires

Statistiques des forums

Discussions
300 795
Messages
1 987 250
Membres
209 758
dernier inscrit
eguillet