Microsoft 365 [VBA] Transfert de données en fonction d'une date

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Aith17

XLDnaute Nouveau
Bonjour,

Je suis à la recherche d'une solution sur VBA concernant un transfert de données en fonction d'une date.

Je m'explique :

Dans l'onglet 1, je remplis des données d'indicateurs ainsi que la date du jour.
J'aimerais qu'en lançant une macro, mes données soient retranscrites dans l'onglet 2, en fonction de la date saisie.

Donc par exemple, si je saisis le 03/11/2022, alors le fichier va rechercher la colonne qui correspond au 03/11/2022 dans l'onglet 2 et ensuite, il colle les valeurs en dessous dans la colonne correspondante.
Je bloque complètement sur les codes en VBA qui me permettrait d'obtenir ce résultat.

Est-ce quelqu'un pourrait m'aider sur ce sujet ?
Je vous remercie d'avance de l'attention portée à ma requête!
 

Pièces jointes

Solution
Bonsoir Aith,
Un essai en PJ avec :
VB:
Sub CopieColle()
With Sheets("Feuil2")
    If Application.CountIf(.Range("1:1"), Range("B2")) > 0 Then                 ' Si la date existe
        Colonne = Application.Match(Range("B2"), .Range("1:1"), 0)              ' Chercher colonne où coller
        Range(.Cells(2, Colonne), .Cells(8, Colonne)) = Range("B3.B9").Value    ' Copier Coller valeurs
        Range("B2.B9").ClearContents                                            ' Effacer données d'entrée
    End If
End With
End Sub
Bonsoir Aith,
Un essai en PJ avec :
VB:
Sub CopieColle()
With Sheets("Feuil2")
    If Application.CountIf(.Range("1:1"), Range("B2")) > 0 Then                 ' Si la date existe
        Colonne = Application.Match(Range("B2"), .Range("1:1"), 0)              ' Chercher colonne où coller
        Range(.Cells(2, Colonne), .Cells(8, Colonne)) = Range("B3.B9").Value    ' Copier Coller valeurs
        Range("B2.B9").ClearContents                                            ' Effacer données d'entrée
    End If
End With
End Sub
 

Pièces jointes

Bonjour,

Merci beaucoup de votre proposition !
Cependant quand j'essaye la macro, un message d'erreur apparait, je mets le message en question en PJ.
Il y a pas une notion de préciser les feuilles de calcul, je vois que vous précisez la feuille 2 pour la recherche de date mais on ne doit pas préciser que la valeur à rechercher est sur la feuille 1 ?

Pour info : j'ai testé avec la date du 03/11/2022 lors de l'apparition de l'erreur.
 

Pièces jointes

  • Message erreur VBA.png
    Message erreur VBA.png
    21.8 KB · Affichages: 33
Bonjour,
Par défaut c'est la feuille courante qui est utilisée.
Comme le bouton est sur Feuil1 c'est elle qui sera utilisée donc inutile de préciser.
Sur mon PC, Win10 XL2007 la macro marche, je l'avais évidemment testée avant :
20221104_073742.gif

Avez vous effectué le test sur ma PJ ou sur un autre fichier ?
 
Bonjour,

Désolé de ne répondre que maintenant.
Oui j'ai testé sur votre fichier et encore maintenant j'ai le même message d'erreur.
Le code VBA cible l'erreur sur la partie copier/coller les valeurs.

Correction : l'erreur venait des "." au lieu des ":" sur ma version, effectivement ça marche parfaitement, merci beaucoup pour le temps accordé et la proposition !
 

Pièces jointes

  • Message erreur VBA 1.JPG
    Message erreur VBA 1.JPG
    35.6 KB · Affichages: 30
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour