Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1100to1104
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

Automatische nummerierung und Buchstabenteil

Automatische nummerierung und Buchstabenteil
Sonja
Hallo Forum-User!
Ich habe nun in den letzten 2-3h fast sämtliche "automatische Nummerierung"s-threats durchgesucht und probiert, bin auch fündig geworden und es hat mir sehr geholfen. Nur ein Problem ist geblieben:
Ich hab nun mein Makro, startbar über Button, es funktioniert tadellos.
Ich öffne aus meiner aktiven Datei "64304.xls"eine neue schon abgespeicherte Datei "Mappe1", suche mir die erste leere Zeile, setze in Spalte A eine fortlaufende Nummer, die sich aus der Nummer der Zelle A in der Zeile darüber generiert ( mit "1" aufsummieren), setze in die Zelle daneben in Spalte B einen Wert aus meinem Ausgangssheet, speichere die Ausgangsdatei ab und schliesse sie, speichere die Zieldatei "Mappe1" udn setze sie aktiv.
Folgendes ist das Makro dazu:
Private Sub CommandButton1_Click()
Dim strPfad As String, strDatei As String
Dim lngNeueZeile As Long
Dim lngLetzteZeile As Long
strPfad = "C:\Dokumente und Einstellungen\Sonja\Desktop\" 'Pfad angeben
strDatei = Dir(strPfad & "Mappe1.xls")
If strDatei  "" Then
Workbooks.Open strPfad & strDatei
Else
MsgBox "File ist nicht auffindbar"
End If
' zeile ermitteln und daten reinschreiben
lngNeueZeile = ActiveSheet.Range("A65536").End(xlUp).Row + 1
lngLetzteZeile = ActiveSheet.Range("A65536").End(xlUp).Row
ActiveSheet.Cells(lngNeueZeile, 1).Value = ActiveSheet.Cells(lngLetzteZeile, 1).Value + 1
ActiveSheet.Cells(lngNeueZeile, 2).Value = Workbooks("64304"). _
Worksheets("TabEingabe").Range("E12").Value
Workbooks("64304.xls").Save
Workbooks("64304.xls").Close
Workbooks("Mappe1").Save
Workbooks("Mappe1").Activate
End Sub

Meine Probleme:
1.) Ich brauche keine Nummerierung in reinem Zahlenformat, sondern die Buchstabenkombination "an" davor, dann die laufende Nummer und ein Datum, das sich nicht auf heute bezieht, sondern aus einer Zelle des Ausgangsfiles "64304" ausgelesen wird.
2.) trivial, aber ich hab schon Scheuklappen auf und steh im Wald....: am Ende des Makros möchte ich den Kursor auf die nächste freie Zeile in der Zieldatei setzen. Ich habs mit select probiert, aber der Kursor lässt sich nicht mal lieb bitten und bleibt an der Stelle, wo ich ihn willkürlich hingesetzt hab.
Ich hoffe, mich kann jemand aus meinem Dilemma befreien!
Vielen Dank für Eure Hilfe!
Liebe Grüsse,
Sonja
AW: Automatische nummerierung und Buchstabenteil
18.09.2009 18:13:41
Roland
Hallo Sonja,
zu 1. . . . sondern aus einer Zelle des Ausgangsfiles "64304" ausgelesen wird
aus welcher denn?
zu 2. Wenn sich das Makro in der Datei 64304.xls befindet und Du diese schliesst, wird es nicht weiter abgearbeitet; den Cursor willst du aber am Schluss setzen.
Ich würde es so machen, dass die Zieldatei nicht hart codiert wird, sondern eine Dateiauswahl mit Vorgabe gemacht wird. Außerdem würde ich eine Fehlerbehandlung einbauen, die verhindert, dass nach bei fehlender / nicht gefundener Zieldatei die Datei 64304.xls geschlossen wird.
Letztlich würde ich den Code auch nicht in einer Datei platzieren, die während des Prozedurablaufes geschlossen wird, sondern z.B. in einem Addin.
Gruß
Roland Hochhäuser
Anzeige
AW: Automatische nummerierung und Buchstabenteil
18.09.2009 21:34:10
Sonja
Hallo Roland!
Danke für Deine Antwort!
zu 1) Die Zelle im File "64304" ist die A1, ich hab sie mit dem Bereichsnamen "date0" benannt. Datum wird also aus "date0" aus "64304" übernommen. Format dort in der Ausgangsdatei: dd.mm.yy, an der fortlaufenden Nummer soll es im Format ddmmyy dranhängen.
zu 2) Danke für den Hinweis mit dem Nichtabarbeiten-bei-Schließen! Hab ich glatt nicht bedacht...
Aber eine Frage:
"Ich würde es so machen, dass die Zieldatei nicht hart codiert wird, sondern eine Dateiauswahl mit Vorgabe gemacht wird"
Was meinst du genau damit?
Schöne Grüsse,
Sonja.
Anzeige
AW: Automatische nummerierung und Buchstabenteil
19.09.2009 01:58:49
Roland
Moin,
doch noch eine Nachfrage: wenn du aus der Vorzeile aufzählen willst, müssen wir das vorangestellte "an" und das nachgestellte Datum zum Zwecke der Aufzählung ausgrenzen. So wie du das schreibst, soll das alles jedoch direkt aneinander hängen. Soll wirklich sowas herauskommen
"an4711190909" oder vielleicht doch eher "an 4711 19.09.2009"? Schreib mal was dazu, der Rest ist kein Problem.
Roland Hochhäuser
AW: Automatische nummerierung und Buchstabenteil
20.09.2009 11:46:13
Sonja
Serwus Roland!
Ich hab mir nochmal Gedanken gemacht:
Falls es möglich ist, soll das Format so sein: "an4711-190909". Bindestrich, damit das Datum visuell abgekoppelt ist. Hauptaugenmerk liegt auf die fortlaufende Nummer mit "an" vorangestellt (Datum ist zur besseren Auffindbarkeit in der Tabelle, in der die Auflistung geschieht).
Kriegst du das hin? Bzw. funktioniert das mit dem Abkoppeln auch ohne Leerzeichen und ohne Datums-Trenn-Punkte?
Falls ja, wäre obiges Format gefragt. Falls es wirklich kompliziert ist, reicht auch dein Format!
(Ich bin leider noch gar nicht sattelfest in VBA, und teilweise fehlen mir die Ideen, wie man Sachen elegant und überhaupt lösen kann. Deshalb: ein großes Dankeschön für deine Hilfe!)
Liebe Grüsse,
Sonja.
Anzeige
AW: Automatische nummerierung und Buchstabenteil
20.09.2009 15:36:56
Roland
Hallo Sonja,
versuche es mal so:
Private Sub CommandButton1_Click()
Dim strWbk As String, wbZiel As Worksheet, wbUrsprung As Worksheet
Dim l As Long, d As String, z As String
With Application.FileDialog(1)
.Title = "Bitte die Zieldatei öffnen"
.InitialFileName = "C:\Dokumente und Einstellungen\Sonja\Desktop\Mappe1.xls"
.InitialView = 2
If .Show = -1 Then strWbk = .SelectedItems(1) Else Exit Sub
End With
Workbooks.Open strWbk
Set wbZiel = ActiveWorkbook.ActiveSheet
Set wbUrsprung = ThisWorkbook.Worksheets("TabEingabe")
d = Replace(wbUrsprung.Range("date0"), ".", "")
d = Left$(d, 4) & Right$(d, 2)
l = wbZiel.Range("A65536").End(xlUp).Row + 1
With wbZiel
z = Mid$(.Cells(l - 1, 1).Value, 3, Len(.Cells(l - 1, 1).Value) - 9)
.Cells(l, 1).Value = "an" & CLng(z) + 1 & "-" & d
.Cells(l, 1).Select
.Cells(l, 2).Value = wbUrsprung.Range("E12").Value
End With
With wbUrsprung.Parent
.Save
.Close
End With
End Sub
Beim ersten Durchlauf wird es dann einen Fehler geben, wenn du vorher nicht manuell in der letzten Zelle das Format "an4711-190909" drin haben solltest, also stelle das vorher um.
Rückmeldung wäre nett.
Gruß
Roland Hochhäuser
Anzeige
AW: Automatische nummerierung und Buchstabenteil
20.09.2009 23:47:40
Sonja
Hallo Roland!
Dein Sub hat tadellos funktioniert, und ich habs erfolgreich mit dem Rest des Programmes kombinieren können! Danke nochmal für deine schnelle und klar verständliche Hilfe!
(Der Stein vom Herzen war groß!)
Schöne Grüsse,
Sonja.
Na dann . . .
21.09.2009 10:10:10
Roland
. . . sind wir ja auf einen grünen Zweig gekommen ;-)
Bis zum nächsten Mal
Roland Hochhäuser

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige