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

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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

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
 
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
 
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é 👍🙂
 
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 ?
 
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
 
Bonjour Andrekn, Soan,
A tout hasard vous n'auriez pas dans vos macros un :
VB:
Application.EnableEvents = False
sans son pendant en sortie avec True ?
Car dans ce cas ma macro Worksheet_Change ne pourrait pas se lancer.
 
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 🙄

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

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour