Modification macro trie

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

  • Wawa_v01.xls
    168.5 KB · Affichages: 52
  • Wawa_v01.xls
    168.5 KB · Affichages: 47
  • Wawa_v01.xls
    168.5 KB · Affichages: 47

JCGL

XLDnaute Barbatruc
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
 

Grand Chaman Excel

XLDnaute Impliqué
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

  • Wawa_v01(1).xls
    172.5 KB · Affichages: 68

Statistiques des forums

Discussions
312 763
Messages
2 091 833
Membres
105 076
dernier inscrit
simeand