Modification feuil source dans la macro lors d'un changement de date excel

Sabine.ant

XLDnaute Nouveau
Bonjour à tous!

J'ai trouvé beaucoup de réponses à mes questions dans le forum, malheuresement aujourd'hui je n'y arrive plus ;(...J'ai crée avec l'aide des réponses de chacun sur différents sujets du forum une macro me permettant de copier une plage de cellules d'un fichier que nous appellerons A qui est donc mon " fichier source" vers un ficher " destinataire B. Tout cela fonctionne à merveille( après des heures passées il faut l'avouer^^) cependant j'aimerais compléter ma macro.
Je vais essayer de m'expliquer clairement. Il faudrait que lorsque je change ma date dans la celule A5 par exemple, que je change donc de mois, ma feuille source change également de mois.

Par exemple
DossierA.Sheets("Mai 2012").Range("R8:R37").Copy DossierB.Sheets("Achats").Range("M11:M41")

Actuellement je change la date "manuellement" en allant dans la macro, j'aimerais donc que cela se fasse automatiquement en changeant juste une cellule de format =DATE(année;mois;jours) sous excel


Je ne sais absolument pas si cela est possible, je suis absolument nulle en programation!

Je vous remercie infiniment de votre aide!

Sabine
 

MichD

XLDnaute Impliqué
Re : Modification feuil source dans la macro lors d'un changement de date excel

Bonjour,

Tu peux créer un NOM (insertion / nom/ définir) avec une date en dure ou
une formule (date(année,mois,jour) qui retourne une date.

Dans ton code pour récupérer cette date

Dim D As String
'Le nom d'une feuille ne peut pas contenir le symbole "/"
'Tu adaptes le format de la date selon selon le format de ta feuille

Le nom MaDate contient la formule suivante : =Date(2012;07;05)
Si tu veux que la date soit celle de la journée en cour =Aujourdhui()


D = Format([MaDate], "DD-mm-yyyy")

DossierA.Sheets(D).Range("R8:R37").Copy DossierB.Sheets("Achats").Range("M11:M41")
 

Sabine.ant

XLDnaute Nouveau
Re : Modification feuil source dans la macro lors d'un changement de date excel

Merci beaucoup de la réponse rapide MichD!

Je vous joins ma macro complète, car elle ne fonctionne pas, je me suis pourtant bien assurée que le format Date de mes feuilles source soit identique à celui que j'ai associé en créant un Nom comme vous me l'avez suggéré! Voyez vous une erreur flagrante dans ce que j'ai écrit?
Mille fois merci pour votre aide!

Sub Effluents()
Dim A As Workbook, B As Workbook
Set A = Application.Workbooks.Open("G:\........xls", , True)
Set DossierB = ThisWorkbook
Dim D As String
D = Format([MaDate], "mmmm-aaaa")
A.Sheets("D").Range("R8:R37").Copy B.Sheets("Total Usine").Range("M11:M41")
End Sub

Sabine
 

MichD

XLDnaute Impliqué
Re : Modification feuil source dans la macro lors d'un changement de date excel

Cette ligne de code : D = Format([MaDate], "mmmm-aaaa")

MaDate est un "NOM" de la collection "NAMES" que t'ajoutes via l'interface de calcul par
la commande du menu : Insertion / nom / définir -> voir mon premier message

Si tu préfères, tu peux mettre cette date dans une cellule de ton choix et la ligne de code devient :

D = Format(Worksheets("Feuil1").Range("A1"), "mmmm-aaaa")

en supposant que tu aies mis la date dans la cellule A1 de la feuil1
 

Sabine.ant

XLDnaute Nouveau
Re : Modification feuil source dans la macro lors d'un changement de date excel

MichD!

Après des jours de modification je ne trouve toujours pas ;(.
Mon fichier source a pourtant des onglets avec la date sous le même format (janvier-2012 et donc mmmm-aaaa) que la cellule ou il va la chercher ( ici C3) !
Pourrais tu jeter un coup d'oeil à mon code si tu as le temps et me dire si tu vois quelque chose de faux?

Sub Datefi()
Dim A As Workbook, B As Workbook
Set B= ThisWorkbook
Dim MaDate As String
MaDate = Format(Sheets("Chimie").Range("C3"), "mmmm-aaaa")
'ouvrir le classeur source (en lecture seule)
Set A = Application.Workbooks.Open("C:\...\.xls", , True)
'définir le classeur destination
'copier les données de la "Feuil1" du classeur source vers la "Feuil1" du classeur destination
A.Sheets("MaDate").Range("R8:R37").Copy B.Sheets("Total").Range("M11:M41")
End Sub

Je te remercie beaucoup

Sabine
 

Sabine.ant

XLDnaute Nouveau
Re : Modification feuil source dans la macro lors d'un changement de date excel

Done! J'ai remplacé mais toujours cette fameuse erreur 9, l'indice n'appartient pas à la sélection. Je me suis pourtant bien assurée que mes noms d'onglets soient du même format que ma cellule "Date", c'est bizarre!
J'avoue que je sèche, j'y suis dessus depuis un bon bout de temps, je pense qu'il ne me reste plus qu'à changer le nom de mon onglet "manuellement" chaque mois dans la macro et ne pas attendre de changer ma date de cellule excel!
Trop dommage, ça aurait été plus sympa ;)
Merci à tous!:eek:
 

Discussions similaires

Statistiques des forums

Discussions
312 097
Messages
2 085 257
Membres
102 844
dernier inscrit
atori2