Clic sur bouton - Mise à jour lignes tableau et date

Tcheva

XLDnaute Nouveau
Bonjour à toutes et à tous,

Je possède un simple classeur avec 2 feuilles.

Dans la feuille 1 j'affiche la date du jour dans une cellule (disons A1) et j'ai 3 autres cellules qui se mettent automatiquement à jour (en fonction d'autres données du tableau, disons A2, A3 et A4)

Sur cette même feuille 1, je voudrais créer un bouton nommé "Export statistiques".

L'idée est d'effectuer un clic journalier sur ce bouton et que ce clic remplisse un tableau sur la feuille 2 (Composé des colonnes : "Date du jour", "Donnée A2 feuille1", "Donnée A3 feuille1", "Donnée A4 feuille1").

Vous l'aurez compris, la difficulté est que ce clic journalier remplisse à chaque fois une nouvelle ligne du tableau à la suite du jour précédent donc.

L'idéal serait même d'avertir l'utilisateur si un deuxième clic dans la même journée est détecté pour ne pas générer deux fois la même ligne.

Etant débutant en VBA, je galère un peu avec cela et je compte sur une âme charitable pour me donner un petit coup de pouce :).

J'espère avoir été clair. Merci d'avance !
 
Solution
Bonsoir Tcheva,

Affecter au bouton cette macro :
VB:
Sub Transfert()
Dim F1 As Worksheet, F2 As Worksheet, i As Variant
Set F1 = Feuil1: Set F2 = Feuil2 'CodeNames des feuilles source et destination
If F2.FilterMode Then F2.ShowAllData 'si la feuille est filtrée
i = Application.Match(F1.[A1], F2.[A:A], 0)
If IsError(i) Then i = F2.Range("A" & F2.Rows.Count).End(xlUp).Row + 1
F2.[A:A].NumberFormat = "dd/mm/yyyy"
F2.Cells(i, 1).Resize(, 4) = Application.Transpose(F1.[A1:A4])
F2.Activate 'facultatif
End Sub

Si dans la journée on clique plusieurs fois sur le bouton, les anciennes valeurs sont écrasées par les nouvelles.

A+

job75

XLDnaute Barbatruc
Bonsoir Tcheva,

Affecter au bouton cette macro :
VB:
Sub Transfert()
Dim F1 As Worksheet, F2 As Worksheet, i As Variant
Set F1 = Feuil1: Set F2 = Feuil2 'CodeNames des feuilles source et destination
If F2.FilterMode Then F2.ShowAllData 'si la feuille est filtrée
i = Application.Match(F1.[A1], F2.[A:A], 0)
If IsError(i) Then i = F2.Range("A" & F2.Rows.Count).End(xlUp).Row + 1
F2.[A:A].NumberFormat = "dd/mm/yyyy"
F2.Cells(i, 1).Resize(, 4) = Application.Transpose(F1.[A1:A4])
F2.Activate 'facultatif
End Sub

Si dans la journée on clique plusieurs fois sur le bouton, les anciennes valeurs sont écrasées par les nouvelles.

A+
 

Discussions similaires

Réponses
7
Affichages
298
Réponses
8
Affichages
481

Statistiques des forums

Discussions
314 634
Messages
2 111 427
Membres
111 133
dernier inscrit
dominique001