Copier coller sous VBA
Bonjour / Bonsoir
J'ai posté il y a quelques mois sur un problème de copier / coller sous VBA, et j'ai trouvé réponse grâce au Forum. Il s'agissait de coller en feuille2, la feuille1 par rapport à la date du jour (les deux feuilles avaient les dates déjà renseignées dans chaque colonne)
J'ai de nouveau besoin d'aide toujours pour un copier /coller . Mais cette fois ci, en Feuille 1 il n'y a qu'une seule colonne (F) avec la date "aujourd'hui" et des données dans les cellules dessous. Dans la feuille 2 toutes les colonnes sont déjà renseignées avec les dates. Je veux donc que mes données dans la feuille 1 "d'aujourd'hui" soient sauvegardées dans la colonne correspondante à "aujourd'hui" dans la feuille 2... et bien sûr qu'elles y restent demain quand la date aura changée.
J'espère avoir été clair et vous remercie d'avance pour votre aide.
Cdt
JCM
Bonjour jcm,
Essai ceci
Sub CopierCollerDonnees()
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim DateAujourdhui As Date
Dim DerniereLigne1 As Long
Dim i As Long
' Spécifie la feuille 1 (où se trouvent les données d'aujourd'hui)
Set ws1 = ThisWorkbook.Sheets("Feuil1")
' Spécifie la feuille 2 (où tu veux coller les données)
Set ws2 = ThisWorkbook.Sheets("Feuil2")
' Obtient la date d'aujourd'hui
DateAujourdhui = Date
' Trouve la dernière ligne de données dans la colonne F de la feuille 1
DerniereLigne1 = ws1.Cells(ws1.Rows.Count, "F").End(xlUp).Row
' Boucle à travers les données de la feuille 1
For i = 2 To DerniereLigne1 ' Commence à la ligne 2 (si les en-têtes sont en ligne 1)
' Vérifie si la date dans la colonne F correspond à la date d'aujourd'hui
If ws1.Cells(i, "F").Value = DateAujourdhui Then
' Trouve la colonne correspondant à la date d'aujourd'hui dans la feuille 2
' En supposant que les dates commencent en colonne B (colonne 2)
' La colonne correspondant à la date d'aujourd'hui est donc la colonne B + le nombre de jours depuis la colonne B
Dim ColonneCible As Long
ColonneCible = 2 + DateDiff("d", DateSerial(Year(DateAujourdhui), 1, 1), DateAujourdhui)
' Copie les données de la feuille 1 et les colle dans la feuille 2 dans la colonne correspondante
ws1.Cells(i, "F").Copy ws2.Cells(i, ColonneCible)
End If
Next i
End SubAssure-toi de personnaliser les noms des feuilles ("Feuille1" et "Feuille2") et les emplacements des données en fonction de ton classeur. Ce code recherche la date d'aujourd'hui dans la colonne F de la feuille 1 et copie les données associées dans la colonne correspondante de la feuille 2. Les données resteront associées à la date correcte même lorsque la date change.
Bonjour Stepaustras
Dans un premier temps je te remercie pour ta réponse.
Dans un deuxième, je m'excuse pour la mienne tardive.
Je viens d'essayer ton code, malheureusement rien ne se passe, pas de message d'erreur, j'ai bien regardé le nom de mes feuilles, j'ai effectué quelques modif du genre format de cellules etc . Tout à l'air correct dans ton code mais rien n'y fait ... je pense que c'est tout bête mais bon je ne suis pas un pro du VBA ...
Si une idée te vient ...
En te remerciant
Bonne journée
JCM
Bonjour JCM,
Avec un fichier ce sera plus explicites
Essai ceci
Merci Beaucoup c'est gentil.
Ca marche, comme je le veux, me reste à ajuster mes chronomètres car ça merdouille un peu ...
Bonne fin de journée et merci encore
JCM