copie/colle autre classeur avec incrémentation

bbloup47

XLDnaute Junior
bonjour le forum,
je suis à monter des classeurs qui contiennent des items, leur format de vente ainsi que le prix de chaque format. j'aimerais conserver un historique de ces prix une fois par mois. ce qui est présementement fait main...

j'ai copié une macro qui me permet de sauvegarder ma colonne de prix dans un autre classeur mais je n'arrive pas à insérer la date de sauvegarde au haut de la colonne du fichier de sauvegarde, pas plus que d'incrémenter la colonne à chaque copie.

quelqu'un aurait-il la gentillesse de m'aider svp? je suis plus que débutant en VBA et j'aimerais que cela fonctionne sur excel 2003 ou plus.

merci de votre aide et @+

bbloup
 

Pièces jointes

  • historique.zip
    33.9 KB · Affichages: 25
  • historique.zip
    33.9 KB · Affichages: 24
  • historique.zip
    33.9 KB · Affichages: 29

bbloup47

XLDnaute Junior
Re : copie/colle autre classeur avec incrémentation

Bonsoir Robert et grand merci de m'aider, c'est beaucoup apprécié.

j'ai supprimé la colonne de prix dans le fichier sauvegarde et fait un essai sur la macro : cela donne comme résultat "Copie déjà éffectuée pour ce mois" mais il n'y a aucunes données sauf la date dans la colonne "C" de sauvegarde.

j'ai alors supprimé la date en "C1" de façon à ce que la colonne "C" soit vierge et j'ai réessayé : cela donne comme résultat une fenêtre avec débug et une ligne jaune pointant sur "If Month(cel.Value) = mois Then"

je suis en train de lire tous les commentaires mais je n'arrive pas à recopier les prix...

merci de votre aide et @+

dans la fenêtre débug il y a d'inscrit "incompatibilité de type" et je fais le test avec excel 2007
 
Dernière édition:

Robert

XLDnaute Barbatruc
Repose en paix
Re : copie/colle autre classeur avec incrémentation

Bonsr Bbloup, bonsoir le forum,

En pièce jointe le second fichier tel qu'il doit se présenter.

La macro va vérifier les dates dans la ligne 1 de ce fichier. Si le mois existe déjà un message va interdire la copie (d'ailleurs je viens de me rendre compte qu'avec ce code ça ne marchera plus en 2011...). Sinon la date va être placée automatiquement et la copie va se faire. Attention j'ai utilisé dans le code le même nom des fichiers que tu as envoyé pour l'exemple. Si tu renommes l'un de ces fichiers ou l'un des onglets, la macro ne fonctionnera plus. Commence par enregistrer les deux fichiers sur ton disque dur avant d'utiliser la macro car si tu les ouvres juste le nom ne correspond pas.
 

Pièces jointes

  • sauvegarde et historique des prix.xls
    27.5 KB · Affichages: 69

bbloup47

XLDnaute Junior
Re : copie/colle autre classeur avec incrémentation

Merci Robert, je viens de comprendre en modifiant le mois de mon PC et ça fonctionne à merveille...:) il sagit juste de copier manuellement le premier mois et ensuite tout se fait par la macro.

merci encore et @+:)
 

bbloup47

XLDnaute Junior
Re : copie/colle autre classeur avec incrémentation

merci Robert, j'ai testé et losque je clic sur le bouton ça recopie autant de fois que clis dessus mais ce n'est pas grave, c'est même bien ainsi. le seul hic c'est le format date : 2010-02-04 = CDate("02/" & Month(Date) & "/2010")
est-il possible de placer le jour en dernier?

j'ai essayé avec des formats de cellules mais sans résultats et j'ai aussi essayé de bidouiller dans la macro mais c'était un vrai carnage...j'ai donc tout replacé en attendant.

merci encore beaucoup et @+
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : copie/colle autre classeur avec incrémentation

Bonsoir Bbloup, bonsoir le forum,

Chez moi ça marche parfaitement... remplace cette ligne :
Code:
oc.Range(dc).Offset(0, 1).Value = CDate("02/" & Month(Date) & "/2010") 'place la date dans la première cellule vide rencontrée
par :
Code:
oc.Range(dc).Offset(0, 1).Value = "02/" & CStr(Month(Date)) & "/2010" 'place la date dans la première cellule vide rencontrée
Ça devrait résoudre les deux problèmes.
 

bbloup47

XLDnaute Junior
Re : copie/colle autre classeur avec incrémentation

bonsoir Robert, le forum,

j'ai effectué le changement et la c'est la ligne suivante qui tombe en debug

oo.Range("C2:C" & oo.Range("C65536").End(xlUp).Row).Copy

merci de ton aide et @+

PS si ça fonctionne chez toi je suppose que ça devrait aussi fonctionner chez moi? est-ce une question de configuration de mon excel?

merci,

bbloup
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : copie/colle autre classeur avec incrémentation

Bonsoir Bbloup, bonsoir le forum,

la bonne ligne est :
Code:
oo.Range("C2:C" & oo.Range("C65536").End(xlUp).Row).Copy [COLOR=red]dest[/COLOR]

Non c'est au niveau de Windows que ma configuration est un peu J'utilise un clavier QWERTY configuré US Internartinal avec langue Portugais Brésilien...

On est bien d'accord, les deux fichiers sont ouvert hein ?
 

bbloup47

XLDnaute Junior
Re : copie/colle autre classeur avec incrémentation

bonsoir Robert, le forum

oo.Range("C2:C" & oo.Range("C65536").End(xlUp).Row).Copy dest est bien ce qu'il y a dans la macro, je croyais que dest appartenait au commentaire...

l'erreur 5 = argument ou appel de procédure incorrect

les 2 fichiers sont bien ouvert, et sont logés dans le même répertoire...

pour le reste je suis plus à l'aise avec ma configuration clavier et langue :)

@+
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : copie/colle autre classeur avec incrémentation

Bonsoir BBloup, bonsoir le forum,

Je ne sais quoi te dire... Chez moi tout fonctionne parfaitement, je n'ai aucun bug. D'ailleurs avant de t'envoyer j'avais tester.
Peut-ête ferme et ouvre à nouveau Excel ou redémarre ton PC... Je ne vois que ça.
 

Discussions similaires

Statistiques des forums

Discussions
312 859
Messages
2 092 891
Membres
105 552
dernier inscrit
youcef.aksoum