2016-07-25 13 views
-1

So studiere ich zurzeit SQL Server, aber gerade arbeite ich gerade einen Standardbüronadminjob, während ich studiere. Ich habe noch nie wirklich Makros gemacht und wenig Ahnung von VB, habe mich aber dazu entschieden, ein Makro für die Arbeit zu entwickeln, um die Dinge für mein Team etwas einfacher zu machen. Das Makro erlaubt dem Benutzer ganz einfach, Daten, Statistiken usw. einzugeben und gibt die Prozent- oder Durchschnittsstatistik an, die den Benutzer darüber informiert, ob die Statistik an diesem Tag, an der Woche, am Monat usw. gefallen ist. Es funktioniert aber ich Ich möchte einen "SUBMIT" -Button hinzufügen, der, wenn ein Benutzer darauf klickt, die Daten, die er in die angegebenen Zellen eingegeben hat, an mich selbst sendet. Ich bin mir nicht sicher, wie ich vorgehen soll. Wenn nötig, habe ich keinen Zugang zu Systemen wie SQL, Visual Studio usw. in der Arbeit, wie es gerade der einfache Admin-Job im Moment sagt.Excel-Makro, Daten des Benutzers senden

Müsste es als CSV eingereicht werden? Oder könnte es vom Benutzerblatt direkt auf ein anderes Makro übertragen werden, das ich entworfen habe, um die Ergebnisse für das gesamte Team zu liefern? Wie gesagt, ich bin völlig neu in dieser Idee.

Cheers Guys.

+0

Wenn Sie sagen, dass Sie Daten an sich selbst senden möchten, sprechen Sie über eine Mail mit dem Excel-Buch als Anhang? – jsanchezs

+0

Nein, was ich meine, ist nur die Daten extrahieren, wenn möglich natürlich. Also wenn ich "macro_user" hätte, was mein Team benutzt und ich selbst "macro_owner" hätte, möchte ich, dass die Daten, die der Benutzer in "macro_user" eingegeben hat, an "macro_owner" übergeben werden und die Daten auf dem Blatt anzeigen, dann mit einigen berechneten Zellen Anzeige der Teamstatistiken als Ganzes. –

+0

Sie meinen wie ein Blatt für die Eingabe von Daten und ein gesperrtes Blatt für Sie, um eine Kopie der eingegebenen Werte zu erhalten? – jsanchezs

Antwort

2

Gut, je nachdem, was Sie in einem sehr einfachen Ansatz benötigen, ist das erste, was Sie tun müssen, um die Zellen zu wissen, wo sie Informationen eingeben (Pflege mit Bereichen), lassen Sie uns für dieses Beispiel davon ausgehen Wobei nur eine Daten in die erste Zelle des Teamarbeitsblattes eingegeben wurde. So erstellen Sie eine Schaltfläche namens ‚button1‘ oder, wie Sie möchten und auf dem Click-Ereignis diesen Code verwenden:

Private Sub button1_click() 

Teamsheet.Cells(row,column) = Yoursheet.Cells(destinyrow,destinycolumn) 

End Sub 

, dass der Wert von einem Blatt zum anderen kopieren würde, jetzt, wenn Sie Sie Blatt über Passwort gesperrt hatte , müssen Sie es, bevor Sie, dass entsperren, dann ist es wieder sperren, so würde der Code wie folgt sein:

Private Sub button1_click() 

    On Error Resume Next 
    yoursheet.unprotect password:="yourpassword" 
    Teamsheet.Cells(row,column) = Yoursheet.Cells(destinyrow,destinycolumn) 
    On Error Resume Next 
    yoursheet.PROTECT password:="yourpassword" 

End Sub 

ich klarstellen, dass dies eine sehr einfache Ansatz ist, so, wenn Sie bestimmte Zellen verwenden Sie eine kopieren um eins und dies würde tun (so können Sie eine Berechnung machen Sohn Ihr Admin-Blatt), aber wenn Sie kopieren Bereiche sollte wie folgt sein:

Teamsheet.Range("A1:D3").Value = yoursheet.Range("A1:D3").Value 

Denken Sie auch immer daran, wie sie diese Daten eingeben, die Sie benötigen.

UPDATE:

Angenommen, Sie haben ein Team Arbeitsmappe haben und dein ist admin_workbook, Konzept, es ist ähnlich. Dieser Code wird das tun, was Sie brauchen, aber beide Arbeitsmappe in dem gleichen Ordner oder Pfad sein sollten:

Private Sub button1_click() 
    Var_data = Teamsheet.Cells(row,column) 
    Application.ScreenUpdating = False 
    Workbooks.Open Filename:=ThisWorkbook.Path & "\admin_workbook.xls" 
    ThisWorkbook.Activate 
    Admin_sheet.Cells(destinyrow,destinycolumn) = var_data 
    Workbooks("admin_workbook.xls").Close SaveChanges:=True 
    Application.ScreenUpdating = True 
End Sub 

Zuerst Sie Daten auf einem var erfassen Sie dann Ihr Admin-Buch öffnen, legen Sie die Daten auf der Zelle, die Sie wollen, und Schließen Sie diese Arbeitsmappe, um Änderungen zu speichern (Sie entscheiden, ob Sie diese Zeile behalten oder die Arbeitsmappe öffnen und manuell speichern). Application.screenupdating ist auch eine Zeile, die Ihrem Bildschirm nicht hilft, wenn zwischen Arbeitsmappen gewechselt wird.

Hoffe es hilft Freund!

+0

Ich redigierte meine Antwort einschließlich einer Möglichkeit für Bereiche – jsanchezs

+0

danke wirklich zu schätzen, ich glaube, ich habe vergessen zu erwähnen, dass sie verschiedene gespeicherte Makro-fähige Dateien obwohl? Ist es mit diesem Code noch möglich? –

+0

@ JonathanClark Ich sehe natürlich, aber es erfordert Änderungen kommen. Überprüfen Sie das Update, das ich zur Antwort gemacht habe, und denken Sie daran, es als korrekt zu markieren, wenn es Ihre Anforderung gelöst hat. – jsanchezs