Modification macro trie

  • Initiateur de la discussion Initiateur de la discussion Wawa07
  • Date de début Date de début

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 !

Wawa07

XLDnaute Nouveau
Bonjours tout le monde. Je viens vous voir avec un problème que je rencontre dans un fichier excel. Plus précisément une macro qui ne fonctionne pas correctement.

Je suis complètement novice dans ce domaine, et peut être que la solution est facile à trouver, mais à chaque fois que j’essaie, ça ne fait pas ce que je souhaite …
Cette macro (cf ci après) sert à trier mes lignes de commande que je reçois en les répartissant par mois dans l’onglet correspondant.

Je vous explique mes problèmes :
Tout d’abord, quand la macro sélectionne les données pour les répartir, elle ne copie pas la colonne A.

Ensuite J’aimerai pouvoir décaler le collé des données (dans les onglets au mois par mois) d’une colonne vers la droite, pour laisser la colonne A vide (pour pouvoir y inscrire des chiffres manuellement – cette colonne est en bleu pour bien dire qu’elle soit resté vide).
J’ai essayer de régler ce problème en changeant le « Offset(1, 0) » en « Offset(1, 1) », mais cela ne fonctionne pas non plus (car seule la première ligne est alors copiée…).

Enfin je ne sais pas comment faire pour que la macro fasse un collage spécial (afin de garder la mise en forme de destination), car j’ai des contraintes de mises en forme imposées…


Enfin voila mes problèmes, et je ne sais vraiment pas comment procéder. Quand j’essai de changer le VBA, rien ne se passe comme je le voudrai. Ça me désespère.

Pouvez-vous m’aider ?
En tout cas je vous remercie pour l’attention que vous voulez me porterez.
A bientôt !

Aussi, je me demandai a quoi servent les codes comme par exemple « .Cells(Application.Rows.Count, 3 » ? 

Code:
Sub Macro1()

Dim pl As Range
Dim cel As Range
Dim a As String
Dim an As Integer
Dim m As String
Dim dest As Range

an = Sheets("Commandes").Range("F1").Value 
Set pl = Sheets("Commandes").Range("B3:B" & Sheets("Commandes").Cells(Application.Rows.Count, 3).End(xlUp).Row)
For Each cel In pl
    If Year(cel.Value) = an And cel.Interior.ColorIndex <> 3 Then
        m = Format(cel.Value, "mmmm")
        On Error Resume Next
        With Sheets(m)
            If Err > 0 Then
                 MsgBox "l'onglet " & m & " n'existe pas dans ce classeur vous devez le créer !" 
                Exit Sub 
            End If
            Set dest = .Cells(Application.Rows.Count, 1).End(xlUp).Offset(1, 0)
        End With 
        With cel.Range("A1:AF1") 
            .Copy dest 'la 
            .Interior.ColorIndex = 3 
        End With 
    End If 
Next cel 

End Sub
 

Pièces jointes

Re : Modification macro trie

Bonjour à tous,

Cela commence mal...
Tu as dans ta demande :
an = Sheets("Commandes").Range("F1").Value
Tu as dans ton code :
an = Sheets("Année").Range("A1").Value 'définit la variable an
Il serait préférable que nous ayons une cohérence entre la demande et le fichier déposé...

Je suis pénible, je sais, mais si tout le code est contradictoire avec la demande (je ne suis pas allé plus loin), cela risque d'être difficile de tenter de t'aider.

A + à tous
 
Re : Modification macro trie

Bonjour Wawa07,

Voici ton fichier avec la macro modifiée (celle du Module 1)

J'ai mis quelques commentaires dans le code pour que tu comprennes ce que j'ai fait. J'ai mis un exemple de paste special, (c'est pourquoi, j'ai mis des cellules en jaune dans ton fichier, quand tu vas rouler la macro tu verras le résultats dans l'onglet Février).

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

Réponses
3
Affichages
673
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
532
Réponses
2
Affichages
162
Réponses
8
Affichages
485
Réponses
4
Affichages
478
Réponses
8
Affichages
494
Réponses
10
Affichages
298
Retour