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

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

  • Classeur1.xlsx
    9.8 KB · Affichages: 8
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

sylvanu

XLDnaute Barbatruc
Supporter XLD
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

  • CopieColle.xlsm
    17 KB · Affichages: 16

Aith17

XLDnaute Nouveau
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: 31

sylvanu

XLDnaute Barbatruc
Supporter XLD
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 ?
 

Aith17

XLDnaute Nouveau
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: 28
Dernière édition:

natorp

XLDnaute Accro
Bjr Aith17 et sylvanu

dans ces lignes :
Range(.Cells(2, Colonne), .Cells(8, Colonne)) = Range("B3.B9").Value ' Copier Coller valeurs
Range("B2.B9").ClearContents
Remplacer le point entre B3 et B9 et entre B2 et B9 par :

Cordialement, Gérard
 

Discussions similaires

Réponses
16
Affichages
314

Statistiques des forums

Discussions
313 289
Messages
2 096 848
Membres
106 765
dernier inscrit
valger