VBA copie de données d'une feuille vers une autre avec calcul

emiliedusud

XLDnaute Nouveau
Bonjour à toutes et à tous,

voila 3 jours que je ne sais pas quoi faire avec ce classeurs excel je me tourne vers vous car je suis perdu,
je suis en stage et mon responsable m'a confié un fichier excel contenant 2 feuilles synthèse et rapport.
La feuille synthèse contient le nom des lignes de prod, les process sur les lignes et les couts unitaires.
Sur la feuille rapport, je voudrais pouvoir recopier les lignes et les 5 processus les plus couteux pour chacunes d'elles avec leur descriptif, la quantité et le cout = quantité*cout unitaire.
Etant une vrai quish en vba je ne sais pas comment je pourrais m'en sortir mon dernier espoir est ici
aidez moi s'il vous plait
 

Pièces jointes

  • process.xlsm
    39.4 KB · Affichages: 44
  • process.xlsm
    39.4 KB · Affichages: 44
  • process.xlsm
    39.4 KB · Affichages: 46

Dranreb

XLDnaute Barbatruc
Re : VBA copie de données d'une feuille vers une autre avec calcul

Bonsoir.

Enregistrez peut être une nouvelle macro et faites les manœuvres nécessaires pour le créer à la main.
Vous aurez besoin de cette formule :
Code:
=$K5*SUBSTITUE($P5;".";",")*($L5="OUI")
Puis, après classement 1 croissant 2 décroissant, de ces deux là :
Code:
=SI($B5=$B$4;S$4+1;1)
Code:
=1/($S5<=5)
Atteindre les formules en erreur de cette dernière, en supprimer les lignes entières et hop le tour est joué !
 

emiliedusud

XLDnaute Nouveau
Re : VBA copie de données d'une feuille vers une autre avec calcul

merci pour la réponse et les formules aus, seulement j'aurai besoin de beaucoup plus d'explication..
pour la macro que doit elle faire car je ne vois pas vraiment et les formules ou dois je les mettre ??
 

Dranreb

XLDnaute Barbatruc
Re : VBA copie de données d'une feuille vers une autre avec calcul

Dans des colonnes supplémentaires après avoir d'abord tout copié en colonne B. La 1ère calcule le produit K * P convertissable en nombre * la condition L = "OUI". Après tri sur colonne B en croissant, puis ce produit en décroissant, la 2ième met 1 à chaque nouveau prod puis ajoute 1 à chaque répétition. La dernière met #DIV/0! aux numéros > 5, ce qui permet de les isoler par un SpécialCells (c'est Edition, Atteindre…, Cellules…, Formules, Erreurs seulement) puis d'en supprimer les lignes entières.
 
Dernière édition:

emiliedusud

XLDnaute Nouveau
Re : VBA copie de données d'une feuille vers une autre avec calcul

j'ai essayé les formules et véritablement je ne comprend absolument pas comment elle fonctionne
et les résultat quelle donne ne corresponde pas vraiment à ce que je recherche
 

Dranreb

XLDnaute Barbatruc
Re : VBA copie de données d'une feuille vers une autre avec calcul

Bonjour.

Joignez ce que vous avez essayé, je regarderai ça.
Comment elles fonctionnent, ce n'est pas compliqué, il faut calculer le produit puisqu'on veut classer en décroissant dessus. Mais le 2ième terme n'est pas numérique: c'est du texte avec un point dedans. Alors il faut remplacer ce point par une virgule. On multiplie encore ça par une expression Logique convertie en nombre vallant 1 s'il y a "OUI" dans l'autre colonne et 0 dans le cas contraire. On classe, et après on compte à partir de 1 dans chaque process (2ième formule) et on stigmatise d'une erreur repérable les > 5 que vous ne voulez pas (3ième formule).
 

emiliedusud

XLDnaute Nouveau
Re : VBA copie de données d'une feuille vers une autre avec calcul

Re
Dranred merci de revenir pour me donner un coup de main, merci beaucoup
je n'ai pas fait grand chose de nouveau pour avancer je me suis servi d'un code que j'ai déjà utilisé pour traiter un autre document j'ai essayé de l'adapter sur mon fichier(que je remet)
en fait ce code m'a permis de recopier les lignes de la feuille synthèse vers rapport ainsi que la colonne I pour tout te dire le resultat n'est pas fameux...
Pour les calcul c'est la cata j'y arriverai pas à le faire correctement !
voila le code que j'ai utilisé pour recopier les cellules

Code:
    Set Plage = Range("B4").CurrentRegion.Offset(1, -1).Resize(, 5)
                       
    Plage.ClearContents     
    Plage.Offset(1).Clear  
    Application.ScreenUpdating = False
    With Sheets("synthèse")
        For Each C In .Range("A2:A" & .Range("A" & Rows.Count).End(xlUp).Row)   'le point devant "Range(..." remplace: Sheets("synthèse")
                                                                             
             DerLgn = Range("B" & Rows.Count).End(xlUp).Row
            Flag = 0                                                           
            For Each Cell In Range("B5:B" & DerLgn)                            
             
Next Cell
            If Flag = 0 Then       

                DerLgn = DerLgn + 1
                Cells(DerLgn, "B").Value = .Cells(C.Row, "A").Value
              
                Cells(DerLgn, "D").Value = .Cells(C.Row, "I").Value
                Range("A5:E5").Copy                                    
                Cells(DerLgn, "A").PasteSpecial xlPasteFormats          
                Range("A3:E3").Copy                                     
                Cells(DerLgn + 1, "A").PasteSpecial xlPasteFormats      
            End If
        Next C                                                        
    End With
    Application.CutCopyMode = False
    Cells(1, 1).Select
 

Pièces jointes

  • process.xlsm
    39.4 KB · Affichages: 40
  • process.xlsm
    39.4 KB · Affichages: 36
  • process.xlsm
    39.4 KB · Affichages: 38

Staple1600

XLDnaute Barbatruc
Re : VBA copie de données d'une feuille vers une autre avec calcul

Bonjour à tous

emiliedusud
Est-ce que ces résultats sont ceux que tu souhaites trouver?
1TCDSynth.pngCliques sur l'image à droite
MODE OPERATOIRE pour ce TCD
Sur la feuille synthèse
•1) Afficher/Supprimer les colonnes masquées
•2) Données/Convertir pour remplacer les points par des virgules
•3) Ajout d'un colonne avec la formule: =C2*F2
[à recopier vers le bas]
•4) Insertion/Tableau Croisé Dynamique

NB: Tu trouveras de nombreux tutoriels sur le net consacrés au TCD
Voici Ce lien n'existe plus (membre d'XLD)
 
Dernière édition:

emiliedusud

XLDnaute Nouveau
Re : VBA copie de données d'une feuille vers une autre avec calcul

Bonjour à tous;
je te remercie pour ton lien avec le tuto je me suis entrainé à faire des tableaux croisés dynamique et la je suis prète pour réxsoudre mon problème
seulement avant de pouvoir faire mon TCD j'ai un soucis
la colonne R= J*O sur toutes les lignes de la colonne.
je ne sais pas comment ecrire cela en vba sachant que la taille du tableau est dynamique et les données sont actualisées chaque semaine
 

emiliedusud

XLDnaute Nouveau
Re : VBA copie de données d'une feuille vers une autre avec calcul

bonjour je relance mon sujet, car je n'ai pas avancer,
pouvez vous m'aider à faire les formules liées à la feuille rapport qui permettra d'afficher les 5 processus les plus couteux et les noms de ligne auxquels ils apparitennent.
je voudrais effectuer tout cela grace à un bouton qui va lancer les calculs au chargement des données après changement sur la feuille synthèse.

Je met à nouveau mon fichier exemple avec des modifications, merci d'avance pour votre aide précieuse
 

Pièces jointes

  • process - Copie.xlsm
    47.6 KB · Affichages: 27

Discussions similaires

Réponses
7
Affichages
453

Statistiques des forums

Discussions
312 765
Messages
2 091 893
Membres
105 086
dernier inscrit
hyacinthe