Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1188to1192
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
Inhaltsverzeichnis

Nummerkreise aufgrund Alphabet

Nummerkreise aufgrund Alphabet
Horstmann
Hallo im Forum,
ich habe kaum VBA-Kenntnisse. Kann mir bitte jemand behilflich sein bei der Lösung meines Problems: Aufgebaut werden soll eine Kundendatei. Für jeden Buchstaben im Alphabet (also 29 mit Ü) sollte ein eigener Kundennummernkreis sein. A startet mit 1000, der nächste Kunde bekommt bei A 1001 usw.; B startet mit 2000, der nächste neue Kunde bekommt 2001 usw. pro Buchstabe reichen 1000 KdNr. und als Format wäre es mit führender Null bei A. Kann das Ganze als Alphanumerisches gemacht werden. Ich bekomme so etwas nicht hin - aber vielleicht kann mir ja hier jemand bitte mit einem VBA skript behilflich sein, dass greift, wenn ich einen neuen Namen anlege. Der Name wäre in Spalte C, die KdNr wäre idealer Weise in Spalte B davor. Danke schon einmal für jegliche Mühe! Gruß, Horstmann

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

Betreff
Benutzer
Anzeige
AW: Nummerkreise aufgrund Alphabet
15.12.2010 15:04:39
Horstmann
... ich vergaß zu scchreiben, dass ich schon mit einigen Begriffen wie Nummernkreise, Kundennummer usw. im Forum gesuht und auch wenige gefunden habe, aber die entsprachen nicht dieser Idee, pro Buchstabe eigene Nummer zu vergeben. - Horstmann
AW: Nummerkreise aufgrund Alphabet
15.12.2010 15:05:34
Rudi
Hallo,
in das Modul der Tabelle:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 3 And Target  "" Then
Select Case Asc(UCase(Left(Target, 1)))
Case 65 To 90
Target.Offset(, -1) = (Asc(UCase(Left(Target, 1))) - 64) * 1000 _
+ Application.CountIf(Columns(3), UCase(Left(Target, 1)) & "*") - 1
Case 196
Target.Offset(, -1) = (Asc(UCase(Left(Target, 1))) - 169) * 1000 _
+ Application.CountIf(Columns(3), UCase(Left(Target, 1)) & "*") - 1
Case 214
Target.Offset(, -1) = (Asc(UCase(Left(Target, 1))) - 186) * 1000 _
+ Application.CountIf(Columns(3), UCase(Left(Target, 1)) & "*") - 1
Case 220
Target.Offset(, -1) = (Asc(UCase(Left(Target, 1))) - 191) * 1000 _
+ Application.CountIf(Columns(3), UCase(Left(Target, 1)) & "*") - 1
End Select
End If
End Sub

Gruß
Rudi
Anzeige
AW: Nummerkreise aufgrund Alphabet
15.12.2010 15:44:44
Horstmann
Hallo Rudi,
das ist toll !
Kann man das also schlecht als Text machen? Da ich es in einer anderen Spalte gerne noch erweitern würde. Dort ist Text: Betreuer ID ist txt 3-stellig und für Serienbriefe kommt noch in der Mitte ein F oder M hinzu. Bei Name Klaus der 3.te wäre das dann "11002F769". Dies bekomme ich mit sverweis schon hin. Allerdings habe ich beim Buchstaben A bis I halt nur 4 Stellen. Durchgängig müsste es möglichst ein gleichlanger string sein. Es könnte auch eine höhere Zahl mit einer anderen Eineinteilung sein. Hättest du da vielleicht eine oder andere Idee - jetzt kann ich das noch anpassen - später sind Abhängigkeiten und die anderen hier können noch weniger als ih in Excel. Einen Tipp aus deiner Erfahrung? ABer so schon einmal sehr, sehr gut. Danke! Gruß, Horstmann
Anzeige
AW: Nummerkreise aufgrund Alphabet
15.12.2010 15:54:50
Rudi
Hallo,
kleine Anpassung:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count = 1 Then
If Target.Column = 3 And Target  "" Then
On Error GoTo ERRHandler
Application.EnableEvents = False
Select Case Asc(UCase(Left(Target, 1)))
Case 65 To 90
Target.Offset(, -1) = "'" & Format((Asc(UCase(Left(Target, 1))) - 64) * 1000 _
+ Application.CountIf(Columns(3), UCase(Left(Target, 1)) & "*") - 1, "00000")
Case 196
Target.Offset(, -1) = "'" & Format((Asc(UCase(Left(Target, 1))) - 169) * 1000 _
+ Application.CountIf(Columns(3), UCase(Left(Target, 1)) & "*") - 1, "00000")
Case 214
Target.Offset(, -1) = "'" & Format((Asc(UCase(Left(Target, 1))) - 186) * 1000 _
+ Application.CountIf(Columns(3), UCase(Left(Target, 1)) & "*") - 1, "00000")
Case 220
Target.Offset(, -1) = "'" & Format((Asc(UCase(Left(Target, 1))) - 191) * 1000 _
+ Application.CountIf(Columns(3), UCase(Left(Target, 1)) & "*") - 1, "00000")
End Select
End If
End If
ERRHandler:
Application.EnableEvents = True
End Sub

Gruß
Rudi
Anzeige
AW: Nummerkreise aufgrund Alphabet
15.12.2010 15:55:49
Horstmann
Danke, Josef Ehrensberger - dadurch hat sich meine Frage erledigt (hat sich wohl zeitlich gekreuzt).
Ihr seid aber sehr hilfsbereit in diesem Forum. Danke an alle!
Gruß
Horstmann
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige