/ / Excel: cliquez sur le bouton pour copier la ligne dans une autre feuille de calcul - excel, vba, excel-vba

Excel: cliquez sur le bouton pour copier la ligne dans une autre feuille de calcul - excel, vba, excel-vba

Je sais je sais. Il y a une tonne de suggestions sur la façon de résoudre ce problème particulier, mais elles ont toutes tendance à échouer avec moi.

Ce que j'ai (simplifié): Une feuille de sortie Excel (Mac) avec:

Name   Time   Date
Mike   08:00  01.01.2016

La deuxième ligne produit les données sur la base d'une entrée sur une autre feuille.

Ce dont j'ai besoin: Chaque fois que je changerai la deuxième ligne de "Sortie" (c'est-à-dire en changeant l'entrée), je peux cliquer sur un bouton pour ajouter la deuxième ligne entière sur une nouvelle feuille de calcul "Journal" (qui comportera également un en-tête). Consigner essentiellement les données en cliquant sur le bouton. Les données ne peuvent être ajoutées qu'une seule fois, plusieurs entrées des mêmes données sont supprimées. Après avoir enregistré les données dans "Journal", la deuxième ligne de "Sortie" n'a pas besoin d'être effacée, mais je ne devrais pas pouvoir ajouter à nouveau les mêmes données.

Des pensées?

*MODIFIER

J'ai modifié le code d'ici: http://goo.gl/48jjDo.

Sub Submit()
Application.ScreenUpdating = False

Dim refTable As Variant, trans As Variant
refTable = Array("A = A2", "B = B2", "C=C2")
Dim Row As Long
Row = Worksheets("Log").UsedRange.Rows.Count + 1
For Each trans In refTable
Dim Dest As String, Field As String
Dest = Trim(Left(trans, InStr(1, trans, "=") - 1)) & Row
Field = Trim(Right(trans, Len(trans) - InStr(1, trans, "=")))
Worksheets("Log").Range(Dest).value = Worksheets("Output").Range(Field).value
Next

Application.ScreenUpdating = True

End Sub

* Edit2

Ok, ça m'a poussé plus loin:

Sub CopyRangeFromSheet1toSheet2()
Dim lastRow As Long
lastRow = Sheets("Sheet2").Range("A100000").End(xlUp).Row + 1 " then next free   row in sheet2
Sheets("Sheet1").Range("A2:C2").Copy Destination:=Sheets("Sheet2").Range("A" &   lastRow)
End Sub

Cependant, comment puis-je rechercher maintenant plusieurs données? Et je devrai coller uniquement les valeurs.

Réponses:

0 pour la réponse № 1

Jusqu'ici cela fonctionne:

Sub CopyFormulas()
Dim sht1 As Worksheet, sht2 As Worksheet

Set sht1 = Sheets("Output")
Set sht2 = Sheets("Log")

sht1.Range("A2:C2").Copy
sht2.Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues


Application.CutCopyMode = False

response = MsgBox("data was added")

End Sub

Non, ce n'est que la vérification de plusieurs entrées qui manque