copier/coller les données d'une période vers autre feuille

Wawa07

XLDnaute Nouveau
Bonjours à tous,
Je viens vous voir car j'ai une requête à vous faire.
J'ai un fichier avec une liste de donnée (+ de 3000) classées selon la date de commande. Le problème c'est que le logiciel me les donne toutes les unes à la suite des autres depuis la première commande.
j'ai donc créer un fichier excel pour les classer année par année (un onglet par moi; et un classeur par année).
Un classeur se présente avec une page contenant la liste des commandes (que je colle); un onglet par mois; et un onglet dans lequel je renseigne les périodes pour chaque onglet. Par exemple, pour le mois de janvier, je note la date de début de période et la date de fin de période. J'aimerais qu'automatiquement les données correspondantes soient copiées à partir de la loooongue liste, puis collées dans l'onglet correspondant.

Pour le moment j'utilise un filtre automatique personnalisé (avec les critères supérieur ou égal à la date de début de période, et inférieur ou égal à la date de fin de période). Le problème est que c'est très long à faire dans le cadre d'une gestion quotidienne...
Mais c'est quelque chose du même genre, mais en automatisé, que je cherche :/

Je ne sais pas si j'ai réussi à vous faire comprendre ce que je veux dire :s,
En tout cas je vous suis reconnaissant de l'attention que vous me porterez
Merci d'avance et à bientôt
 

Pièces jointes

  • Classeur v1.xls.zip
    114.6 KB · Affichages: 30

Robert

XLDnaute Barbatruc
Repose en paix
Re : copier/coller les données d'une période vers autre feuille

Bonjour Wawa, bienvenu, bonjour le forum,

Quel intérêt les periodes dans l'onglet Page ? Puisque visiblement tu utilises les mois compets. Au passage, il n'y a pas de 29 février en 2010...
Quand tu as parlé de périodes je pensais que tu n'utilisais que certaine dates du mois.
Ça n'est pas clair et ton exemple semble dire le contraire. D'autant plus que c'est beaucoup plus facile à coder si c'est le mois complet que si se sont des periodes de chaque mois. Donc plutôt que de te proposer quelque chose qui risque de ne pas convenir, j'attends ta réponse. Si tu utilises les mois complets il suffit juste de renseigner l'année de référence. L'onglet Page pourrait s'appeler Année et contenir en A1 (par exemple) l'année de référence (2010) sans rien ajouter d'autre.
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : copier/coller les données d'une période vers autre feuille

Bonjour Wawa, bonjour le forum,

En pièce jointe ton fichier modifié. Un bouton Classer dans l'onglet Commandes (en haut à gauche) lance la macro. J'ai renommé les onglet des mois en mettant les accents (Février, Août, Décembre) car sinon la macro plante. J'ai donc mis dans le code un message qui signale une anomalie. Les lignes déjà traitées deviennent rouge dans l'onglet Commandes pour éviter d'être traitées une seconde fois si tu relances la macro.
Maintenant si tu as vraiment besoin de periodes dans le mois, il faudra penser différemment...
 

Pièces jointes

  • Wawa_v01.xls
    493.5 KB · Affichages: 97
  • Wawa_v01.xls
    493.5 KB · Affichages: 99
  • Wawa_v01.xls
    493.5 KB · Affichages: 100

Wawa07

XLDnaute Nouveau
Re : copier/coller les données d'une période vers autre feuille

Salut,
Oui, oui, c'est bien pour les mois entiers, pas certaines dates (désolé je me suis mal exprimé ^^").

Je te remercie de bien vouloir m'aider, mais je m'excuse, pour le moment je peux pas te dire si ton fichier me conviens (car aujourd'hui je travaille sur excel 2008 (donc pas de macro) alors que normalement je suis sur 2004) je te dit ce qu'il en est au plus vite (dès que je récupère mon PC).

Merci, merci
 

Wawa07

XLDnaute Nouveau
Bonjours tout le monde,
désolé de remonter ce sujet, mais j'ai un petit problème avec la macro.
En fait, j'ai changé la configuration de mon fichier.
Au lieu de copier mois par mois dans chaque onglets, j'aimerai copier toute l'année dans un seul onglet appelé "2010" 'toujours avec les même données)
Alors j'ai essayé de modifier la macro précédente en enlevant ce qui référait aux mois, mais "erreur de compilation, référence non qualifiée"...
Voila la macro

Code:
Sub MacroMac()
Dim pl As Range 'déclare la variable pl (PLage)
Dim cel As Range 'déclare la variable cel (CELlule)
Dim a As String 'déclare la variable a (Année)
Dim an As Integer 'déclare la variable an (ANnée du classeur)
'Dim m As String 'déclare la variable m (mois)
Dim dest As Range 'décalre la variable dest (DESTination)

an = Sheets("Menu").Range("c8").Value 'définit la variable an
Set pl = Sheets("Commandes").Range("C2:C" & Sheets("Commandes").Cells(Application.Rows.Count, 3).End(xlUp).Row) 'définit la plage pl
For Each cel In pl 'boucle sur toutes les cellules éditées cel de la plage pl
    'condition 1 : si l'année de la cellule est égale a la variable an et si la cellule n'est pas rouge
    If Year(cel.Value) = an And cel.Interior.ColorIndex <> 3 Then
    
    '    m = Format(cel.Value, "mmmm") 'définit la variable m
     '   On Error Resume Next 'en cas d'erreur passe à la ligne suivante
        
     '   With Sheets(m) 'prend en compte l'onglet m (si cet onglet n'existe pas cela provoque une erreur)
    '        If Err > 0 Then 'condition 2 : si une erreur a été provoquée
     '           MsgBox "l'onglet " & m & " n'existe pas dans ce classeur vous devez le créer !" 'message
     '           Exit Sub 'sort de la procédure
     '       End If 'fin de la condition 2
            
            Set dest = .Cells(Application.Rows.Count, 1).End(xlUp).Offset(1, 0) 'définit la cellule de destination
            
      '  End With 'fin de la prise en compte de l'onglet m
        
        
        With cel.EntireRow 'prend en compte la ligne entière de la cellule cel
            .Copy dest 'la copie dans la cellule de destination
            .Interior.ColorIndex = 3 'la colore de rouge (pour eviter de remettre ces données si la macro est relacée)
        End With 'fin de la prise en compte de la ligne entière de la cellule cel
    End If 'fin de la condition 1
Next cel 'prochaine cellule cel de la boucle

End Sub

En gros je voudrais décomposer cette étape en deux :
1, je copie toute l'année dans une feuille "2010" pour pouvoir le mettre en forme (j'ai 3 macro pour ca) (aprés toutes les manip, je supprimerai ces lignes, c'est seulement une étape transitoire pour mettre en forme)
2, une fois la mise en forme faite (la même que pour tous les mois), une seconde macro copie au mois par mois (dans les feuilles correspondantes) seulement des colonnes A à AG

voila, c'est pas facile à expliquer ^^', mais j'espère que quelqu'un pourra m'aider !
Je suis disponible si vous avez d'autres questions
Merci beaucoup et à bientot
 

Pièces jointes

  • Classeur2.xls.zip
    286.9 KB · Affichages: 46
  • Classeur2.xls.zip
    286.9 KB · Affichages: 43
  • Classeur2.xls.zip
    286.9 KB · Affichages: 48

Wawa07

XLDnaute Nouveau
Re : copier/coller les données d'une période vers autre feuille

Personne :p ?
En fait, si j'ai besoin de ça, c'est parce que j'utilise ces données quotidiennement.
Or pour les traiter, je fait une mise en forme qui change complètement des données sources... (en feeft, les références sont données par mon logiciel dans une seule cellule (produit_xml); et il arrive qu'il y en ait plus de 10 regroupées dans une seule cellule)

Donc diviser cette macro en 2 c'est la seule chose qui me semble réalisable pour pouvoir travailler au jours le jours. (mais je suis une novice totale en VBA ...)

De plus grâce au surlignement en rouge qui permet de ne pas recopier les lignes déja copiées, je peut faire des modifications sans craindre qu'elles soient effacées la prochaine fois que j'importe des données!!
 

Statistiques des forums

Discussions
312 612
Messages
2 090 227
Membres
104 453
dernier inscrit
benjiii88