Anzeige
Archiv - Navigation
884to888
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
884to888
884to888
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Umwandlung einer siebenstelligen Zahl (Prüfziffer)

Umwandlung einer siebenstelligen Zahl (Prüfziffer)
17.07.2007 11:14:00
Josef
Hallo!
Mit dem ersten Makro werden bei der Eingabe einer siebenstelligen Zahl in der nächsten freien Zelle der Spalte 10 in der Tabelle1 die ersten 6 Zahlen sowie die Prüfziffer /7 als siebenstellige Zahl in der nächsten freien Zelle der spalte C eingetragen.
Mit dem zweiten Makro wird bei der Eingabe einer siebenstelligen Zahl in der nächsten freien Zelle der Spalte 10 in der Tabelle1 diese Zahl 1 zu 1 in der nächsten freien Zelle in der Spalte 3 in der Tabelle 1 eingetragen und die ersten 6 Stellen dieser Zahl in der sPalte AD,AE,AF aufgeteilt in jeweils 2 Stellen eingetragen.
Wie und wo müßte ich den Code im zweiten Makro verändern, damit die Zahl in der "Tabelle1" in der nächsten freien Zelle ebenfalls mit der Prüfziffer /7 eingetragen (so wie im Makro 1) wird und danach die Splittung der Nummer erfolgt.?

Private Sub Worksheet_Change(ByVal Target As Range)
Dim efz As Long, c As Range, strS As String
On Error GoTo Weiter
If Target.Column = 10 And Target.Row > 1 Then
strS = Left(Target, 6) & (CLng(Left(Target, 6)) Mod 7)
With Worksheets("Tabelle1")
Set c = .Columns(3).Find(strS, LookAt:=xlWhole)
If c Is Nothing Then
efz = .Cells(Rows.Count, 3).End(xlUp).Row + 1
Else
efz = c.Row
MsgBox strS & " ist schon vorhanden."
Target.ClearContents
Target.Activate
End If
.Cells(efz, 3).Value = strS
End With
End If
End Sub


'*********************************************************************


Private Sub Worksheet_Change(ByVal Target As Range)
Dim LoLetzte As Long
If Target.Count > 1 Then Exit Sub
If Target.Column = 10 Then
Application.EnableEvents = False
With Worksheets("Tabelle1")
''''''               letzte belegte Zeile unabhängig von Excelversion für Spalte C (3)
LoLetzte = IIf(IsEmpty(.Cells(.Rows.Count, 3)), .Cells(.Rows.Count, 3).End(xlUp) _
_
.Row, .Rows.Count) + 1
.Cells(LoLetzte, 3) = Target
If Len(Target) >= 6 Then
LoLetzte = IIf(IsEmpty(Worksheets("Tabelle1").Cells(Rows.Count, 30)),  _
Worksheets("Tabelle1").Cells(.Rows.Count, 30).End( _
xlUp).Row, Rows.Count) + 1
.Range("Ad" & LoLetzte) = Left(Target, 2)
LoLetzte = IIf(IsEmpty(Worksheets("Tabelle1").Cells(Rows.Count, 31)),  _
Worksheets("Tabelle1").Cells(.Rows.Count, 31).End( _
xlUp).Row, Rows.Count) + 1
.Range("AE" & LoLetzte) = Mid(Target, 3, 2)
.Range("AF" & LoLetzte) = Mid(Target, 5, 2)
LoLetzte = IIf(IsEmpty(Worksheets("Tabelle1").Cells(Rows.Count, 32)),  _
Worksheets("Tabelle1").Cells(.Rows.Count, 32).End( _
xlUp).Row, Rows.Count) + 1
End If
End With
Application.EnableEvents = True
End If
End Sub


Danke
Josef

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Umwandlung einer siebenstelligen Zahl (Prüfziffer)
17.07.2007 11:18:35
Hajo_Zi
Hallo Josef,
pro Tabelle darf nur ein Change Ereignis sein. Da mußt Du schon einenCode draus machen.

AW: Umwandlung einer siebenstelligen Zahl (Prüfziffer)
17.07.2007 11:27:19
Josef
Hallo Hajo!
Danke für Deine Antwort!
Ich wollte ja auch nicht pro Tabelle zwei Change Ereignisse mit zwei codes machen.
Ich wollte nur wissen wie und wo ich diese Zeile
strS = Left(Target, 6) & (CLng(Left(Target, 6)) Mod 7)
aus dem 1. Code im zweiten Code einfügen kann, damit bei der Abarbeitung des 2. Codes ebenfalls die Prüfziffer berechnet wird und nicht nur die siebenstellige Zahl 1 zu 1 übernommen wird.
Beispiel:
Eingetragene Zahl: 1401600 Ergebnis nicht 1401600 sondern 1401606.
Josef

Anzeige
AW: Umwandlung einer siebenstelligen Zahl (Prüfziffer)
17.07.2007 11:37:36
Hajo_Zi
Hallo Josef,
ich baue das jetzt nicht nach.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim LoLetzte As Long
If Target.Count > 1 Then Exit Sub
If Target.Column = 10 Then
Application.EnableEvents = False
With Worksheets("Tabelle1")
''''''               letzte belegte Zeile unabhängig von Excelversion für Spalte C ( _
3)
LoLetzte = IIf(IsEmpty(.Cells(.Rows.Count, 3)), .Cells(.Rows.Count, 3).End(xlUp). _
Row, .Rows.Count) + 1
.Cells(LoLetzte, 3) = Target
If Len(Target) >= 6 Then
Target = Left(Target, 6) & (CLng(Left(Target, 6)) Mod 7)
LoLetzte = IIf(IsEmpty(Worksheets("Tabelle1").Cells(Rows.Count, 30)), _
Worksheets("Tabelle1").Cells(.Rows.Count, 30).End(xlUp).Row, Rows.Count) +  _
1
.Range("Ad" & LoLetzte) = Left(Target, 2)
LoLetzte = IIf(IsEmpty(Worksheets("Tabelle1").Cells(Rows.Count, 31)), _
Worksheets("Tabelle1").Cells(.Rows.Count, 31).End(xlUp).Row, Rows.Count) +  _
1
.Range("AE" & LoLetzte) = Mid(Target, 3, 2)
.Range("AF" & LoLetzte) = Mid(Target, 5, 2)
LoLetzte = IIf(IsEmpty(Worksheets("Tabelle1").Cells(Rows.Count, 32)), _
Worksheets("Tabelle1").Cells(.Rows.Count, 32).End(xlUp).Row, Rows.Count) +  _
1
End If
End With
Application.EnableEvents = True
End If
End Sub


Gruß Hajo

Anzeige
AW: Umwandlung einer siebenstelligen Zahl (Prüfziffer)
17.07.2007 11:44:00
Josef
Hallo Hajo!
Danke für Deinen Lösungsvorschlag.
Es würde soweit alles funktionieren, nur die Zahl mit der Prüfziffer soll in der Tabelle1 aufscheinen und nicht in dem Blatt wo die Nummer eingegeben wird.
Eingabe im Blatt "Ausprägungen" = 1401600
Ergebnis im Blatt "Tabelle1" 1401606
Josef

AW: Umwandlung einer siebenstelligen Zahl (Prüfziffer)
17.07.2007 11:58:01
Hajo_Zi
Halo Josef,
bei mir wird was in Tabelle1 geschrieben. Ich habe nur noch die Zeile geändert
.Cells(LoLetzte, 3) = Left(Target, 6) & (CLng(Left(Target, 6)) Mod 7)
obwohl die nach meiner Auffassung erst hinter If Len(Target) >= 6 Then gehört.
Gruß Hajo

Anzeige
AW: Umwandlung einer siebenstelligen Zahl (Prüfziffer)
17.07.2007 12:26:02
Josef
Hallo Hajo!
Besten Dank für Deine Hilfe und Deine Mühe. Jetzt passt alles bestens.
Danke
Josef

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige