Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1440to1444
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
VBA: nächste freie Bildnummer
09.08.2015 15:42:22
Andy
Hallo zusammen,
für eine Fotoaktion habe ich eine Exceltabelle mit Maske entworfen, in der Namen und Bildnummer aufgenommen werden sollen.
Die Tabelle ist soweit fertig, ich benötige jedoch noch eine Funktion zur Ermittlung der nächsten freien Bildnummer aus der Spalte B "Fotonummer". In dieser Spalte sind alle bisher vergebenen Nummern eintragen, jedoch können in einer Zelle mehrere Bildnummern (getrennt durch Komma; Bsp. "00001, 00002, 00003") stehen.
Die nächste freie Bildnummer soll dann per Button in einer Maske einfügbar sein.
Das Einfügen ist auch kein Problem; das einzige war mir Schwierigkeiten bereitet, ist die Ermittlung der höchsten Bildnummer aus dem Bereich der Spalte B.
Könnt ihr mir da helfen?
Gruß Andy

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

Betreff
Datum
Anwender
Anzeige
AW: VBA: nächste freie Bildnummer
09.08.2015 17:13:24
Sepp
Hallo Andy,
eine Möglichkeit.
' **********************************************************************
' Modul: Modul4 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub test()
MsgBox nextNumber(ActiveSheet.UsedRange.Columns(2))
End Sub


Private Function nextNumber(Target As Range) As Long
Dim rng As Range
Dim lngTmp() As Long, lngI As Long, lngN As Long
Dim vntTmp As Variant

For Each rng In Target.Cells
  If InStr(1, rng.Text, ",") > 0 Then
    vntTmp = Split(rng.Text, ",")
    For lngN = 0 To UBound(vntTmp)
      If IsNumeric(vntTmp(lngN)) Then
        Redim Preserve lngTmp(lngI)
        lngTmp(lngI) = Clng(vntTmp(lngN))
        lngI = lngI + 1
      End If
    Next
  Else
    If IsNumeric(rng.Text) Then
      Redim Preserve lngTmp(lngI)
      lngTmp(lngI) = Clng(rng.Text)
      lngI = lngI + 1
    End If
  End If
Next

If lngI > 0 Then nextNumber = Application.Max(lngTmp) + 1

End Function


Gruß Sepp

Anzeige
AW: VBA: nächste freie Bildnummer
09.08.2015 20:34:08
Andy
Hallo Sepp,
danke, dass sieht schon sehr gut aus. Für den ersten Aufruf in der Maske klappt es auch.
Wie kann ich denn die erste freie Zahl in einer Textbox (in der Maske) ermitteln? Also die Ermittlung der zweiten freien Zahl (oder weiteren), bevor es dann aus der Maske in die Liste eingetragen wird.
Gruß Andy

AW: VBA: nächste freie Bildnummer
09.08.2015 20:46:25
Sepp
Hallo Andy,
und was kommt dann noch?
Wie viele Textboxen hast du den?
Da wäre eine Beispieldatei mit deinem UF un Beschreibung hilfreich.
Gruß Sepp

Anzeige
AW: VBA: nächste freie Bildnummer
09.08.2015 21:28:59
Sepp
Hallo Andy,
Private Sub CommandButton7_Click()
Dim vntNumbers As Variant, lngN() As Long, lngI As Long
If TextBox_Bildnummer = "" Then
  'keine Nummer in der Textbox vorhanden
  TextBox_Bildnummer = nextNumberCells(ActiveSheet.UsedRange.Columns(2))
  
Else
  'Nummern in der Textbox vorhanden
  '################# hier muss die Textbox berücksichtig werden
  vntNumbers = Split(TextBox_Bildnummer, ",")
  For lngI = 0 To UBound(vntNumbers)
    Redim Preserve lngN(lngI)
    lngN(lngI) = Clng(vntNumbers(lngI))
  Next
  TextBox_Bildnummer = TextBox_Bildnummer & ", " & Application.Max(lngN) + 1
End If

End Sub


Gruß Sepp

Anzeige
Danke für die Unterstützung
09.08.2015 21:45:47
Andy
Hallo Sepp,
vielen Dank für Deine Hilfe!
Gruß Andy

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige