Copier/coller cellule de feuille à feuille toutes les 60mn
Bonjour a tous,
Déjà merci beaucoup de votre aide, grâce a ce forum, a vous tous, j'arrive a travailler sur excel avec des macros, alors que je n'y connais rien du tout... Alors je vous demanderez un tout petit peu d'indulgence...
Donc voilà le soucis, j'aimerai, pour de l'événementiel, créer une mini caisse enregistreuse pour les 3 bars, mais sans tiroir caisse, puisque cela fonctionne avec des tickets, c'est juste pour enregistrer les commandes, pour une gestions de stock et quantité écoulé a l'heure. Donc j'ai commencé un exemple sur fichier excel avec des boutons, que je vous ai mis en pièce jointe, vous comprendrez mieu
Mon soucis c'est que j'aimerai: que toute les 60mn (du Chrono F19), des cellules de feuille 1 aillent dans des cellules de la feuille 3, tout en sautant 1 ligne toutes les 60 mn biensur.
F19 vers A2
C13 vers B2
E13 vers C2
G13 vers D2
I13 vers E2
K13 vers F2
Merci d'avance, les critiques et avis sont les bienvenues
A très bientot
PLS47
Salut PLS et bienvenue sur le Forum!
Ci-dessous un code que tu peux utiliser pour ton problème :
Option Explicit
Public h As String, t As Long
Sub Init()
h = Mid(Now, 12, 2)
Chrono
End Sub
Sub Chrono()
If Mid(Now, 12, 2) <> h Then Call MaMacro
Application.OnTime Now + TimeValue("00:00:01"), procedure:="Chrono"
End Sub
Sub MaMacro()
'Ici ton code
Init
End Sub
Voilà donc :
La macro Init est la pour initialiser le chrono en donnant l'heure à la variable h (Genre la au moment où j'écris ce post, la variable h prendrait la valeur "15")
La macro Chrono est lancé, et toutes les secondes, on vérifie l'heure !
Et si l'heure est différente de celle qui a été enregistré par h alors on lance ta macro
Restant à dispo!
Bonsoir Juice
Je n'ai pas trop compris ton code...
Merci
Pls47
Re!
Je n'ai pas trop compris ton code...
Qu'est ce qui en est de la copie de mes cellules? Merci
Méaculpa x)
Je pensais que tu cherchais un code pour le chrono alors que tu l'avais déjà x)
J'avais pas regardé ton fichier!
Bref! Désolé pour le HS, et tu trouvera ci-joint ton fichier modifier avec les codes suivants :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target = [F19] And [F19] = "01:00:00" Then CopyPaste
End Sub
Sub CopyPaste()
Dim i As Long
Application.EnableEvents = False
Sheets(1).Cells(19, 6) = 0
i = Sheets(2).Range("A" & Rows.Count).End(xlUp).Row + 1
With Sheets(2)
.Cells(i, 1) = Mid(Now, 12, 2)
.Cells(i, 2) = Sheets(1).Cells(13, 3)
.Cells(i, 3) = Sheets(1).Cells(13, 5)
.Cells(i, 4) = Sheets(1).Cells(13, 7)
.Cells(i, 5) = Sheets(1).Cells(13, 9)
.Cells(i, 6) = Sheets(1).Cells(13, 11)
End With
Reinitialisation
End Sub
Pour que t'ai pas a attendre une heure de voir comment ce passe le copier / coller je t'invite à modifier les critères de lancement de la macro par genre ="00:00:05"
A dispo!
il y a aucun soucis, tu es un pro, c'est magique ce qu'on peut faire avec excel, un grand merci a toi...
En revanche, juste un petit bémol, est ce possible que mon chrono reste en constante activité? car la il se remet a zéro a chaque fois que les données sont copier! de plus si je modifie l'heure dans mon chrono avant de le démarrer, est ce que ça change quelque chose au code...
Re- PLS
il y a aucun soucis, tu es un pro, c'est magique ce qu'on peut faire avec excel, un grand merci a toi...
Un plaisir !
En revanche, juste un petit bémol, est ce possible que mon chrono reste en constante activité? car la il se remet a zéro a chaque fois que les données sont copier!
Okep remplace le code que je t'ai mis par celui ci-dessous et l'heure ne repassera pas à zéro :
Public Heure As Integer
Private Sub Worksheet_Change(ByVal Target As Range)
If Target = [F19] And [F19] = Heure & ":00:00" Then CopyPaste
End Sub
Sub CopyPaste()
Dim i As Long
Heure = Heure + 1
Application.EnableEvents = False
i = Sheets(2).Range("A" & Rows.Count).End(xlUp).Row + 1
With Sheets(2)
.Cells(i, 1) = Mid(Now, 12, 2)
.Cells(i, 2) = Sheets(1).Cells(13, 3)
.Cells(i, 3) = Sheets(1).Cells(13, 5)
.Cells(i, 4) = Sheets(1).Cells(13, 7)
.Cells(i, 5) = Sheets(1).Cells(13, 9)
.Cells(i, 6) = Sheets(1).Cells(13, 11)
End With
Application.EnableEvents = True
End Sub
de plus si je modifie l'heure dans mon chrono avant de le démarrer, est ce que ça change quelque chose au code...
Dans mon code non, dans celui qui ta fais le chrono oui :p
Quand tu clic sur 'Start' le code démarre direct à zéro
A dispo!
Bonjour,
Je pensais avoir répondu a ton dernier poste, alors mille excuses, merci beaucoup ça m'a vraiment aidé, mais le probléme est sur la mise en place de ce projet en milieu réel, ça devient trop compliqué, alors je le laisse en stand-by...
En revanche je bloque sur une autre question sur Excel, beaucoup moins chiant que le dernier...
J'envois une photo en pièce jointe,
En fait j'aimerai que D7 = C7 tant qu'aucune valeur n'est rentré dans les cellules de I7 à O7...
Ensuite quand je vais mettre une valeur dans I7, il faut que cette valeur soit copier dans la cellule D7 en remplacement de la valeur précédente... et même chose quand je vais mettre une valeur dans J7, copier dans D7 en remplacement de la valeur précédente, et ainsi de suite jusqu'à O7.
Merci d'avance
Cordialement
Nicolas