2017-02-10 2 views
0

Ich versuche gerade, einen Genehmigungsprozess zu erstellen, und um dies zu tun, habe ich ein Übersichtsblatt, das aktuelle die Details der Angebote und dann ein Detailblatt zeigt, wo ich Ich protokolliere, was genehmigt ist. Zurzeit geben Sie die Informationen des Angebots in das zweite Blatt ein (Angebotsdetails), und dann kann der Genehmiger ein Dropdown-Feld anzeigen, um zu sehen, was geöffnet ist und genehmigt werden muss. Ich habe alles funktioniert, außer, ich brauche den Genehmiger, um auf eine Schaltfläche zu klicken, und es wird den Benutzernamen des Genehmigers und das Datum an die entsprechende Zelle auf der Registerkarte Angebotsdetails senden. Ich habe einen Schlüssel in H1 erstellt, der es dem Code ermöglicht, die richtige Zeile zu finden. Die Spalte B auf der Angebotsdetailseite stimmt mit der Zusammenfassung in H1 überein.Befehlsschaltfläche für Genehmigungen auf verschiedenen Blatt

Ich habe diesen Code, den ich unten geschrieben habe, aber es funktioniert nicht. Die Zellen, bei denen der Benutzername in Spalte M des Angebotsdetailblattes gehen muss (sobald die richtige Zeile basierend auf dem Schlüssel in der Zusammenfassung gefunden wurde). Es muss fest codiert sein, damit ich es für Prüfungszwecke aufbewahren kann.

Wenn das keinen Sinn macht lass es mich wissen und ich werde versuchen zu klären.

Vielen Dank!

Private Sub CommandButton1_Click() 
Dim rng As Range 
Dim cell As Object 
With Sheets("Offer Details") 
    Set rng = Sheets("Offer Details").Range("B1:B1000") 
    For Each cell In rng 
     If cell.Value = Sheets("Offer Details").Cells(1, 8) Then 
      cell.Offset(0, 12).Value = Environ("USERNAME") 
      Exit For 
     End If 
    Next 
End With 
End Sub 
+0

'Cell' in Spalte 'B' sein wird. Wenn Sie das um 12 Spalten versetzen, wäre das nicht die Spalte "N"? Da Sie 'With Sheets (" Offer Details ")' verwenden, müssen Sie diese Anweisung nicht mit "With" wiederholen. Sie können einfach ein vorangestelltes '.' Verwenden, d. H. 'Set rng = .Range (" B1: B1000 ")'. – BruceWayne

Antwort

0

Sie können dies tun, wenn Sie colum brauchen "M" jedes Mal, Unterseite auf Ihren Code zu sein:

Private Sub CommandButton1_Click() 
Dim rng As Range 
Dim cell As Object 
Dim inc as Integer 
With Sheets("Offer Details") 
    Set rng = .Range("B1:B1000") 
    For Each cell In rng 
     inc = inc + 1 
     If cell.Value = .Cells(1, 8) Then 
      .Range("M" & inc) = Environ("USERNAME") 
      Exit For 
     End If 
    Next 
End With 
End Sub 
+0

Aus irgendeinem Grund funktioniert es immer noch nicht. Wenn ich den Knopf drücke passiert nichts. Irgendwelche Vorschläge? – Lisa

+0

Nevermind, ich habe gerade das Blatt spezifiziert und es hat funktioniert. Vielen herzlichen Dank! – Lisa

+0

Gern geschehen. Wenn das Problem gelöst ist und die Antwort gut war, können Sie die Antwort markieren? –

Verwandte Themen