Clever-Excel-Forum

Normale Version: VBA Counter zurücksetzen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

ich bräuchte mal Eure Hilfe und möchte mich vorab schonmal herzlich bedanken!

Ich habe 2 Formlare:

1. Eine Excel mit einem Lieferschein welche sich aus der TanListe.xlsm fortlaufend die Lieferscheinnummer zieht
2. Die TanListe.xlsm (hier wird die Lieferscheinnummer gezogen als auch Basisdaten der geschriebenen Lieferscheine eingetragen)

Wie kann ich den Counter für die Lieferscheinnummer zurücksetzen?

Folgendes Makro läuft in der TanListe.xlsm:


Code:
Public Function getTANFromList(p_date, p_kst, p_MAName, p_BehPal, p_Empfang, p_Gefahr As String) As String
Dim p_TAN As String
Dim p_ws As Worksheet
Dim p_TANList As ListObject
Dim p_ListRow As ListRow
On Error GoTo ErrorHandler
Set p_ws = ThisWorkbook.Worksheets("TAN-Liste")
Set p_TANList = p_ws.ListObjects("TanListe")
Set p_ListRow = p_TANList.ListRows.Add
p_TAN = p_ListRow.Index
getTANFromList = Year(Now)
For i = Len(p_TAN) To 7
getTANFromList = getTANFromList & "0"
Next i
getTANFromList = getTANFromList & p_TAN
For Each Cell In p_ListRow.Range
Select Case Cell.Column
Case 1
Cell.Value = getTANFromList
Case 2
Cell.Value = DateValue(p_date)
Case 3
Cell.Value = p_kst
Case 4
Cell.Value = p_MAName
Case 5
Cell.Value = p_BehPal
Case 6
Cell.Value = p_Gefahr
Case 7
Cell.Value = p_Empfang
Case Else
' Do nothing
End Select
Next
Exit Function
ErrorHandler:
If Not p_ListRow Is Nothing Then
p_ListRow.Delete
End If
End Function 

Public Function getStorno(p_TAN As String) As Boolean
Dim p_TANList As ListObject
Dim p_ListRow As ListRow
Set p_TANList = ActiveSheet.ListObjects("TanListe")
For Each p_ListRow In p_TANList.ListRows
If p_ListRow.Range.Cells(1) = p_TAN Then
p_ListRow.Range.Cells(7).Value = "STORNO - " & Environ("USERNAME") & " - " & Now() & Chr(10) & p_ListRow.Range.Cells(7).Value
getStorno = True
Exit Function
End If
Next
End Function
Hi seschi,

du erhöhst die Wahrscheinlichkeit, dass dir geholfen wird, ungemein mit einer Besipiedatei Wink
Hallöchen,

von Deinen Variablennamen in den beiden Codes lässt keiner auf eine Lieferscheinnummer schließen. Oder ist das die TAN?

Du schreibst auch nicht, was Du unter zurücksetzen verstehst. 1 abziehen oder auf 0 setzen?
Da bräuchtest Du nur die entsprechende variable nehmen und das ausführen.

Du schreibst auch nicht, wann bzw. unter welcher Bedingung Du zurücksetzen willst.
Da Du die Makros gepostet hast, soll das sicher in eins von den beiden rein, aber in welches und wo genau?

Oder willst Du nur einen Button und der soll in einer Zelle einen Eintrag ändern? Glaub ich aber eher nicht, denn dann wären die beiden Codes in der Aufgabenstellung nicht nötig gewesen. Aber man weiß ja nie Sad Sind übrigens nicht alle Makros. Du rufst z.B. noch die Funktion getTANFromList auf, die hast Du nicht gepostet.
Verwende:

Code:
Sub M_snb()
   If Dir(Environ("temp") & "\*TAN") = "" Then CreateObject("scripting.filesystemobject").createtextfile Environ("temp") & "\0000TAN"
   c00 = Dir(Environ("temp") & "\*TAN")

   Name Environ("temp") & "\" & c00 As Environ("temp") & "\" & Format(Val(c00) + 1, "0000") & "TAN"

   MsgBox Val(c00) + 1
End Sub