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 » ?
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