Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

[Réglé] TRI somme 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 !

Bearn 64

XLDnaute Occasionnel
Bonjour le Forum,

Je viens une fois de plus vers vous pour une énigme de boucle en excel VBA.

Je me fait des nœuds avec ces boucles. Voila en pièce jointe mon petit problème.



Merci de votre regard sur ma demande.
 

Pièces jointes

Dernière édition:
Re : TRI somme autre feuille

Bonjour paf, Bonjour le Forum,


Petite erreur de départ. Je joint le bon classeur, mille excuses.

Macro lance automatise les opérations :

Copie des données de la Feuille3 vers la Feuille1
Tri les données par ordre croissant de CATxxx, PRODUITSxxx, Taille, Qte
j'inverse Colonne Qte et Taille les données arrivant d'un autre classeur sous cette présentation

je lance le tri pour le tableau macro recoupé sur Forum
ok avec les données colonnes ABCD de la Feuille3, Plante erreur 1004 avec les données FGHI

<<<erreur 1004 tampon1 = tampon1 & Cells(i, J).Value>>>>

Donc
Je viens une fois de plus vers vous pour une énigme de boucle en excel VBA.
Je me fait des nœuds avec ces boucles.

Il me reste a transférer vers la présentation de la feuille 2.


Merci
 

Pièces jointes

Re : TRI somme autre feuille

re,

prenant a priori le train en route, pas facile de saisir quelles sont les données au départ, l'attendu du code.

Par ailleurs pas compris:
je lance le tri pour le tableau macro recoupé sur Forum

et non plus :
ok avec les données colonnes ABCD de la Feuille3, Plante erreur 1004 avec les données FGHI

puisque la première macro appelée (Sub copiedefeuille3versfeuille1()) ne copie que les colonnes A,B,Cet D

il vaudrait sans doute mieux soit réexposer précisemment le besoin, soit recontacter l'intervenant qui a créé ce code.

Bon suite
 
Re : TRI somme autre feuille

re,

je lance le tri pour le tableau macro recoupé sur Forum

Lire après correction : je lance le tri pour le tableau macro récupérée sur Forum.

puisque la première macro appelée (Sub copiedefeuille3versfeuille1()) ne copie que les colonnes A,B,Cet D
Exemple qui fonctionne avec 23 lignes de données.

Si je remplace les colones A,B,C,D dans la Feuille3 par les colonnes FGHI avec 44 lignes de données
On copie donc 44 lignes dans Feuille1 et la la macro tir Plante erreur 1004 avec les données FGHI.

A+++
 
Re : TRI somme autre feuille

re,

Plus clair dans le besoin, pas trop sur le code.

L'erreur 1004 vient du fait que la boucle while parcours les lignes du classeur au delà des limites d'Excel.
Je regarde de plus près et résultat pour demain (sans doute réécriture de la macro tri() ).

Faut-il conserver le fusionnement des cellules?

A+
 
Re : TRI somme autre feuille

la nouvelle macro

Code:
Sub tri2()
Dim DerLig As Long, Compt As Long, i As Long, Qte As Integer
Dim Ligne As String, LignePrec As String

With Worksheets("Feuil1")
DerLig = .Range("A" & Rows.Count).End(xlUp).Row

For i = DerLig To 2 Step -1
    Ligne = .Cells(i, 1) & .Cells(i, 2) & .Cells(i, 3)
    LignePrec = .Cells(i - 1, 1) & .Cells(i - 1, 2) & .Cells(i - 1, 3)
    If Ligne = LignePrec Then
        Qte = Qte + .Cells(i, 4)
        Rows(i).Delete
    Else
        .Cells(i, 4) = .Cells(i, 4) + Qte
        Qte = 0
    End If
Next
End With

End Sub

supprimer l'ancienne macro Sub tri() et renommer la macro ci dessus en Sub tri() (au lieu de Sub tri2() )

je regarde également la première macro de copie qui s'arrête à la ligne 23

A+
 
Re : TRI somme autre feuille

la macro de copie
Code:
Sub copiedefeuille3versfeuille1()
Dim DerLig As Long

    DerLig = Worksheets("Feuil3").Range("A" & Rows.Count).End(xlUp).Row
    Sheets("Feuil3").Select
    Range("A1:D" & DerLig).Select
    Selection.Copy
    Sheets("Feuil1").Select
    Range("A1").Select
    ActiveSheet.Paste
End Sub
 
Dernière édition:
Re : TRI somme autre feuille

re,

Merci de ta rapidité et de on efficacité.
Modifié en suivant OK et bien plus rapide que le mien.

Une petite idée pour réaliser la présentation de la feuille 2 à partir des données de la feuille 1.



J'abuse mais...



A++++
 

Pièces jointes

Re : TRI somme autre feuille

la macro de transfert de la feuille 1 à la feuille 2 (pas super optimisée mais ça marche) :
Code:
Sub Transfert()
Dim DerLig As Long,  i As Long,  j As Long


j = 2
Worksheets("Feuil2").Activate
With Worksheets("Feuil1")
DerLig = .Range("A" & Rows.Count).End(xlUp).Row

For i = 2 To DerLig
    If .Cells(i, 2).Value <> .Cells(i - 1, 2).Value Then
        Cells(j, 1).Value = .Cells(i, 2).Value
        With Range(Cells(j, 1), Cells(j, 3))
            .Interior.ColorIndex = 19
            .Font.Name = "Arial"
            .Font.Size = 16
        End With
        j = j + 1
    End If
    
    Cells(j, 1).Value = .Cells(i, 1).Value
    Cells(j, 2).Value = .Cells(i, 3).Value
    Cells(j, 3).Value = .Cells(i, 4).Value

    With Range(Cells(j, 1), Cells(j, 3))
        .Font.Name = "Arial"
        .Font.Size = 16
    End With
    j = j + 1
Next
End With

End Sub
Rajouter en fin de Sub lancer() : Call Transfert ou simplement Transfert


il y avait, sans aucun doute, moyen de faire toutes les étapes en une seule macro et sans passer par une feuille intermédiaire mais j'ai la flemme ....

Bonne suite
 
- 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

Réponses
3
Affichages
326
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…