Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
868to872
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
868to872
868to872
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

automatische Nummerierung

automatische Nummerierung
07.05.2007 19:26:00
Cordula
Hallo Excel-Freunde,
ich weiß, wieder das leidige Thema "automatische Nummerierung", aber bei meiner Recherche im Forum habe ich "irgendwie" nichts passendes gefunden.
Mein Problem: Über eine Schaltfäche werden Daten von einer Tabelle (Stammdaten) in eine andere (Auftrag)(der gleichen Mappe) eingelesen. In der Tabelle "Auftrag" lasse ich eine automatische Nummerierung mit WENN / ZEILE usw. erfolgen. Nun möchte ich aber, das die automatische Nummerierung als festen Wert eingetragen wird, damit sich eben diese Nummer zum Auftrag nicht mehr ändert. Ich möchte gerne, dass das automatisch beim Einlesen der Tabelle "Stammdaten" erfolgt. Geht das? So als kleines VBA?!! :-)
Und richtig klasse wäre, wenn ich im Blatt "Auftrag" einen lösche und statt dessen manuell Daten eintrage, das Excel nachguckt, welche nächste Nummer ist frei und diese vergibt (wieder als Wert) !!! Ist heftig, ich weiß.
Wäre toll, wenn Ihr mir helfen könnt. Vielen Dank schon mal!
Gruß
Cordula

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: automatische Nummerierung
07.05.2007 21:05:02
Beni
Hallo Cordula,
kopiere diesen Code in das Modul der Tabelle("Auftrag"), mit rechte Maustaste aus Blattregiste / Code anzeigen.
Wenn eine Aenderung in einer Zeile passiert und in SpalteA noch kein Wert ist, wird der nächst höhere eingefügt. Die Function sucht ab Zeile2 bis letzte Zeile in SpalteA den höchsten Wert.
Gruss Beni

Private Sub Worksheet_Change(ByVal Target As Range)
Dim lz As Integer
If Cells(Target.Row, 1) = "" Then
lz = Cells(Rows.Count, 1).End(xlUp).Row ' letzte Zeile
Cells(Target.Row, 1) = WorksheetFunction.Max(Range(Cells(2, 1), Cells(lz, 1))) + 1
End If
End Sub


Anzeige
AW: automatische Nummerierung
07.05.2007 21:31:12
Cordula
Hallo Beni, vielen Dank für deine Antwort. Das Macro funktioniert auch soweit, nur möchte ich jetzt eine Anpassung machen, und zwar soll Excel in Zelle B9 mit der Nummerierung anfangen, wenn in D9 etwas steht. Habe versucht, dein Macro dahingehend zu ändern, bin aber zu blöd um zu erkennen, wo kommt D9 = Spalte 4, Zeile 9 hin.
Wäre schön, wenn du mir das auch noch schreiben würdest. Danke dir schon einmal.
Gruß
Cordula

AW: automatische Nummerierung
07.05.2007 22:09:00
Matthias
Hallo Cordula,
so?

Private Sub Worksheet_Change(ByVal Target As Range)
Dim lz As Integer
If Not Intersect(Target, Range("D9:D" & Rows.Count)) Is Nothing Then
If Cells(Target.Row, 2) = "" Then
lz = WorksheetFunction.Max(Cells(Rows.Count, 4).End(xlUp).Row, 9) ' letzte Zeile/min.9
Cells(Target.Row, 2) = WorksheetFunction.Max(Range(Cells(9, 2), Cells(lz, 2))) + 1
End If
End If
End Sub


Gruß Matthias

Anzeige
AW: automatische Nummerierung
07.05.2007 22:28:04
Cordula
Hallo Matthias,
auch dir vielen Dank, aber irgendwie funktioniert es jetzt nicht mehr. Von Beni nicht und dein Makro auch nicht. Keine Ahnung warum. Ich habe es 3 bis 4 mal ausprobiert und es ging, dann auf einmal nicht mehr! Bin völlig verzweifelt und genervt. Was kann ich noch tun?
Gruß
Cordula

AW: automatische Nummerierung
07.05.2007 22:39:00
Beni
Hallo Cordula,
Cells(9, 2), die linke Zahl ist die Zeile und die Rechte die Spalte.
Gruss Beni

Private Sub Worksheet_Change(ByVal Target As Range)
Dim lz As Integer
If Cells(Target.Row, 2) = "" And Not IsEmpty(Cells(Target.Row, 4)) Then
lz = Cells(Rows.Count, 2).End(xlUp).Row ' letzte Zeile
Cells(Target.Row, 2) = WorksheetFunction.Max(Range(Cells(9, 2), Cells(lz, 2))) + 1
End If
End Sub


Anzeige
AW: automatische Nummerierung
Cordula
Hey Beni und Matthias,
also, folgendes Makro (Auszug) ist vorhanden, um die Daten zu übertragen:
Sheets("Auftrag").Select
Range("C9:L450").Select
Selection.ClearContents
Range("l9").Select
Cells(4, 3) = a
m = 1
For i = 9 To l + 9
Cells(i, 4) = c(m)
Cells(i, 5) = d(m)
Cells(i, 6) = e(m)
Cells(i, 7) = f(m)
Cells(i, 8) = g(m)
Cells(i, 9) = h(m)
Cells(i, 10) = j(m)
Cells(i, 11) = k(m)
m = m + 1
Next i
********* hier sollte doch eigentlich die automatische Nummerierung erfolgen oder?****** Cordula
******* ab hier werden die eingelesenen Daten automatisch weitergegeben***** Anmerkung von Cordula
Range("B9:K450").Select
Application.CutCopyMode = False
Selection.Copy
Workbooks.Open Filename:= _
"f:\Programme\Bearbeitung\feinplanung.xls"
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ActiveWorkbook.Save
ActiveWorkbook.Close
Windows("Programm.xls").Activate
Range("E5").Select
Application.ScreenUpdating = True
End Sub
Wißt Ihr Rat? Wäre immer noch toll!!
Gruß
Cordula

Anzeige
AW: automatische Nummerierung
07.05.2007 22:53:32
Matthias
Hallo Cordula,
bau mal eine MsgBox ein:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim lz As Integer
If Not Intersect(Target, Range("D9:D" & Rows.Count)) Is Nothing Then
MsgBox "Huhu!!" '


Wenn die MsgBox bei Zelländerungen nicht erscheint, gib mal folgende Zeile ins Direktfenster ein:


Application.EnableEvents = False


Gruß Matthias

Hiiiillllffffeeeee
08.05.2007 20:57:24
Cordula
Hallo, ich brauche immer noch eure Hilfe. Habe jetzt alle "VBA´s" hin und her getestet, es funktioniert nicht, bekomme "Syntaxfehler" bei "If not intersect..."
Bitte bitte gebt mir eine Tipp. Danke euch im voraus.
Gruß
Cordula
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige