Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1588to1592
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
Liste erstellen mit UF
01.11.2017 10:51:55
Spuler
Liebe VBA-Kolleginnen und Kollegen
Ich brauche bei folgendem Problem eure Hilfe (Weiss aber nicht, ob ich schon am Möglichkeitslimit von VBA kratze):
Ich möchte eine Personalliste meiner Feuerwehr erstellen und diese Verwalten. Neue Angehörige der Feuerwehr (AdF) sollen mit einer Eingabemaske erfasst warden. Ich Weiss aber nicht wie ich in VBA realisiere, dass er die nächste freue Zeile sucht und dann die Texteingaben aus der UF übernimmt. Also vor allem das mit der Suche weiss ich nicht...
Der absolute Höhepunkt würde sein, wenn ich sagen könnte: Wenn Rang "Hptm", "Oblt" oder "lt" dann such nur im bereich Offiziere und wenn dann die nächste freie Zeile gefunden wurde, bitte eine neue Zeile einfügen.
Danach noch eine benutzerdefinierte Sortierung einpflanzen aber ich denke das sollte ich alleine schaffen.
Die UF und der Inhalt der ComboBox habe ich bereits. Die Datei habe ich ebenfalls angefügt.
https://www.herber.de/bbs/user/117343.xlsm
Wäre super wenn jemand mit helfen kann. Wenn möglich möchte ich die neue Prozedur nicht nur "kopieren" sondern ich möchte gerne verstehen, was Excel dann macht und wie er dann sucht... Über eine Erklärung oder Beschreibung würde ich mich sehr freuen. So kann ich es das nächste Mal selber Coden :-) .
Vielen Dank im Voraus!
Freundliche Grüsse und einen schönen Tag
Marcel

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Liste erstellen mit UF
02.11.2017 09:18:42
hary
Moin
Ich wuerde mit abhaengigen Cbo's arbeiten und benannten Bereichen(Blatt Rang)
In der ersten Cbo waehlst du den Rang aus. Cbo(Grad) wird automatisch gefuellt)
Erstmal nur als Ansatz. Code auskommentiert.
https://www.herber.de/bbs/user/117370.xlsm
gruss hary
AW: Liste erstellen mit UF
02.11.2017 09:38:47
Spuler
Hallo Hary
Vielen Dank für dein Ansatz. Ich werde das gleich testen!
Gruss Marcel
AW: Liste erstellen mit UF
02.11.2017 10:17:39
Peter(silie)
Hallo,
hier deine Mappe mit einem groben Vorschlag.
Vielleicht hilft der Code dir ja.
Der Code benötigt bis Dato Hilfszeilen wo drinnen steht, welche Abkürzung zu welchem Grad gehört.
https://www.herber.de/bbs/user/117375.xlsm
Hier ist nur Code:
Option Explicit
Private Personal As Worksheet
Private rng As Range
Public Sub Add_New_Person(ByRef frm As MSForms.UserForm, ByVal Grad_ As Variant)
Dim off, unt, sol As String
Dim lRow, s, e As Long
Set Personal = ThisWorkbook.Sheets("FOR Personal")
With Personal
lRow = .Cells(.Rows.Count, 2).End(xlUp).Row
Set rng = .Range(.Cells(1, 2), .Cells(lRow, 2))
off = .Cells(4, 13).Value
unt = .Cells(5, 13).Value
sol = .Cells(6, 13).Value
End With
If InStr(1, off, Grad_) > 0 Then
s = Get_Start("Offiziere")
ElseIf InStr(1, unt, Grad_) > 0 Then
s = Get_Start("Unteroffiziere")
ElseIf InStr(1, sol, Grad_) > 0 Then
s = Get_Start("Soldaten")
End If
If s = 0 Then Exit Sub
e = Get_End(s)
If e = 0 Then Exit Sub
Personal.Cells(e, 1).EntireRow.Insert
Add_Values frm, e
End Sub
Private Function Get_Start(ByVal Grad_ As Variant) As Long
With Application
If Not VBA.IsError(.Match(Grad_, rng, 0)) Then
Get_Start = .Match(Grad_, rng, 0)
End If
End With
End Function
Private Function Get_End(ByVal start As Long) As Long
With Personal
Dim tmp, c As Range
Set tmp = rng.Resize(rng.Rows.Count + 1 - start, 1).Offset(start)
For Each c In tmp
If c.Value = "" Then Get_End = c.Row: Exit For
Next c
End With
End Function
Private Sub Add_Values(ByRef frm As MSForms.UserForm, ByVal inputRow As Long)
If frm Is Nothing Then Exit Sub
With Personal
.Cells(inputRow, 2).Value = frm.cb_Grad.Text
.Cells(inputRow, 3).Value = frm.tb_Name.Text
.Cells(inputRow, 4).Value = frm.tb_Vorname.Text
.Cells(inputRow, 10).Value = frm.tb_Zugeinteilung.Text
If frm.opt_Yes Then
.Cells(inputRow, 5).Value = "j"
ElseIf frm.opt_No Then
.Cells(inputRow, 5).Value = "n"
End If
End With
End Sub

Anzeige
AW: Liste erstellen mit UF
02.11.2017 10:49:10
Spuler
Hallo
Vielen Dank für die Hilfe! Da brauch ich nen Moment um mich da einzulesen :-) ! Aber danke!!
AW: Liste erstellen mit UF
02.11.2017 16:54:03
Hajo_Zi
warum Offen, soll jemand vorbei kommen und beim lesen helfen?

Ich gebe keinen Dank für eine Rückmeldung, da ich durch solche Beiträge nicht meine Beitragszahl erhöhen muss.
Also ich schreibe keine Beiträge mit dem Betreff "Gerne u. Danke für die Rückmeldung. o.w.T."
Rückmeldung ist ja in der Heutigen Zeit nicht üblich und die wenigen die eine Rückmeldung geben, mögen mir das verzeihen, das kein Danke für eine Rückmeldung kommt.
Beiträge von Werner, Luc, robert und folgende lese ich nicht.
Anzeige

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige