VBA : Copier coller une cellule en fonction de la date

kalek93

XLDnaute Nouveau
Bonjour,

Je fais appel à votre aide car je bloque :

J'ai 2 fichiers Excel ouvert :
- un premier (fichier source) : en cellule A1 il y a la date du jour, et en cellule A3 il y a un chiffre (obtenu grâce à une macro).
- un deuxième (fichier cible) : en colonne A, il y a une multitude de date.

J'aimerai intégrer à ma macro la proc suivante :
mon fichier source est celle qui est active, et mon fichier cible est déjà ouvert.

1/ copie ma cellule A3 du fichier source
2/ se place ensuite sur le fichier cible, qui est déjà ouvert.
3/ recherche la date du jour, puis colle mon chiffre qui était en A3 du premier fichier, dans ma colonne B, en face de la date du jour

Voici le code que j'ai écrit, cependant elle ne fonctionne pas :-(


Code:
Sub copiercoller_fonction_date()

Set FichierSource = Workbooks("C:\source.xls")
Set FichierCible = Workbooks("C:\cible.xls")

FichierCible.Select

For i = 1 To 15 Step 1

If Range("A" & i) = Date Then

   FichierSource.Range("E3").Copy _
   Destination:=FichierCible.Sheets("Feuil1").Range("B" & i)

End If

Next i

End Sub

Merci d'avance pour votre aide.
 

kingfadhel

XLDnaute Impliqué
Re : VBA : Copier coller une cellule en fonction de la date

Salut,

Voila une rectification du code , fonctionnel et testé

Code:
Sub copiercoller_fonction_date()

Set FichierSource = ThisWorkbook
Set FichierCible = Windows("cible.xls")
For i = 1 To 15 Step 1
FichierCible.Activate
If Sheets("Feuil2").Range("A" & i) = FichierSource.Sheets("Feuil1").Range("E1").Value Then 
Sheets("Feuil2").Range("B" & i) = FichierSource.Sheets("Feuil1").Range("E1").Value
End If
FichierSource.Activate
Next i
End Sub


Changer Feuil1 par le nom de ta feuille du ficheir source.
 

kalek93

XLDnaute Nouveau
Re : VBA : Copier coller une cellule en fonction de la date

Hello

Merci beaucoup pour ton aide.

Cependant ça ne marche toujours pas, quand je l'éxecute, le message suivant apparait :
"Run-time erroe '9' : Subscript out of range"

Et ceci sur la ligne suivante :

If Sheets("Sheet1").Range("A" & i) = FichierSource.Sheets("Sheet1").Range("E1").Value Then

Je n'arrive pas à trouver la raison...
 

kingfadhel

XLDnaute Impliqué
Re : VBA : Copier coller une cellule en fonction de la date

Bonsoir,
Voila une deuxième rectification : attention il faut changer le nom du classeur cible par le vrai nom

Code:
Sub copiercoller_fonction_date()

Set FichierSource = ThisWorkbook
Set FichierCible = Windows("Testeur.xls") 'changer testeur.xls avec le vrai nom du fichier cible
dat = Range("A1").Value
a_copier = Range("A3").Value
For i = 1 To 15 Step 1
FichierCible.Activate
If Sheets("Feuil1").Range("A" & i) = dat Then
Sheets("Feuil1").Range("B" & i) = a_copier
End If
FichierSource.Activate
Next i
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 550
Messages
2 089 522
Membres
104 201
dernier inscrit
Salah1947