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

Userform ausgeben | Herbers Excel-Forum

Userform ausgeben
21.01.2010 10:06:06
Martin

Morgen Leute,
hab gestern schonmal nen Thread aufgemacht. Hier jetzt nochmal frisch mit Beispieldatei
https://www.herber.de/bbs/user/67376.xls
gut ich versuchs mal etwas detaillierter zu beschreiben:
ich hab eine große liste, die in mehrere blöcke unterteilt ist. zwischen diesen blöcken gibt es immer wieder leerzeilen und anschließend dann eben die blockübersicht mit überschrift
meine intention ist es eine art "Neuen Eintrag verfassen" button einzubinden.
nach betätigen des buttons öffnet sich dann das userform mit mehreren Comboboxen und textboxen.
die erste Combobox ist mit der suchfunktion verknüpft (alle Überschriften der Blöcke erfasst). d.h. hier bestimmte ich, wo der neue eintrag zu stehen hat. die anderen boxen sind dann eben dazu da die zeile zu ändern. sobald der Button "eintrag erstellen" getätigt wird soll dann folgendes ablaufen:
-Tabellenblock, in der der neue Eintrag eingefügt werden soll wird gesucht
-neue Zeile wird erstellt (kopieren und einfügen)
- die restlichen combo- und textboxen ändern die werte der neu erstellten Zeile ab -- diesen punkt bekomme ich nicht hin....userform passt soweit und alles nur eben nicht, die angabe wo die Werte des Userforms eingefügt werden...
war das soweit verständlich?
viele grüße
martin

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Unsinn
21.01.2010 12:45:19
Rudi Maintaire
Hallo,
sorry, aber die Form ist unsinnig.
demnächst bist du wieder hier und willst irgendwelche Auswertungen machen.
Halte dich an datenbankartige Strukturen. 'Schön' ausgeben kannst du es dann immer noch.
Gruß
Rudi
AW: Unsinn
21.01.2010 13:42:03
Martin
hallo,
wieso ist es unsinn? ich verändere ja anschließend nichts mehr...geht mir erstmal darum, ob es überhaupt umsetzbar ist und wenn dann wie?
wie würden diese datenbankartigen strukturen denn aussehen?
Danke für Eure Hilfe
gruß martin
AW: Userform ausgeben
21.01.2010 13:56:18
fcs
Hallo Martin,
mit den folgenden Anpassungen für das Erstellen-Makro wird die neue Zeile vor der 1. Leerzeile eingefügt die unterhalb der Titelzeile in der Spalte C gefunden wird.
Gruß
Franz
Private Sub CommandButton2_Click()
Dim c As Range
Dim Zeile As Long
Dim SuchWert As String
Application.ScreenUpdating = False
Application.EnableEvents = False
SuchWert = CB_Projektart.Value
If Me.TB_Name = "" Then
MsgBox "Es idt keine Name für das Projekt eingegeben"
Exit Sub
End If
With Worksheets("Übersicht")
'Datenblock und nachfolgende Leerzeile suchen
Set c = .Range("C:C").Find(SuchWert, LookIn:=xlValues, LookAt:=xlWhole)
If Not c Is Nothing Then
Zeile = c.Row
'Quercheck ob 1. Zeile vom Block
Do Until .Cells(Zeile, 2).Value = "Aufwand" And .Cells(Zeile, 3).Value = SuchWert
Zeile = Zeile + 1
If Zeile > .Cells.SpecialCells(xlCellTypeLastCell).Row Then
MsgBox "Zeile Aufwand - Thema nicht gefunden", vbInformation + vbOKOnly, _
"Neues Projekt erstellen"
Exit Sub
End If
Loop
'Leerzeile nach Block suchen
Do Until .Cells(Zeile, 3).Value = ""
Zeile = Zeile + 1
If Zeile > .Cells.SpecialCells(xlCellTypeLastCell).Row Then
MsgBox "Leerzeile nach Thema nicht gefunden", vbInformation + vbOKOnly, _
"Neues Projekt erstellen"
Exit Sub
End If
Loop
'Neue Zeile einfügen
.Rows(Zeile).Insert Shift:=xlDown
With .Rows(Zeile)
'Daten/Formate der Zeile oberhalb kopieren
.Rows.Offset(-1, 0).Copy Destination:=.Range("A1")
'Daten in Spalten A bis O der Zeile löschen
.Range("A1:O1").ClearContents
End With
'Eingabe-Werte eintragen
.Cells(Zeile, 1) = Me.CB_Prio
.Cells(Zeile, 2) = Me.CB_Aufwand
.Cells(Zeile, 3) = Me.TB_Name
.Cells(Zeile, 4) = Me.CB_Leitung
.Cells(Zeile, 5) = Me.CB_Unterstützung
'            .Cells(Zeile, 6) = Me.cbS1
'            .Cells(Zeile, 7) = Me.cbS2
'            .Cells(Zeile, 8) = Me.cbS3
'            .Cells(Zeile, 9) = Me.cbS4
.Cells(Zeile, 11) = Me.ComboBox4
.Cells(Zeile, 12) = Me.ComboBox9
.Cells(Zeile, 13) = Me.ComboBox7
.Cells(Zeile, 14) = Me.ComboBox8
.Cells(Zeile, 15) = Me.TB_Kommentar
End If
End With
Application.ScreenUpdating = True
Application.EnableEvents = True
Unload UserForm1
End Sub

Anzeige
AW: Userform ausgeben
21.01.2010 14:51:52
Martin
Hallo Franz,
vielen Dank für deine Hilfe. Kann die einzelnen schritte dank deiner beschreibung sehr gut nachvollziehen.
Leider funktioniert es allerdings noch nicht reibungslos.
Zum einen funktioniert das erzeugen und befüllen der neuen zeilen, nur wenn ich Thema 4 auswähle. Dies könnte meiner meinung daran liegen, dass der vielleicht code versucht, die erste leere zeile nach dem block anzuwählen und in den spalten D und E ja immer kreuze sind wegen der filterfunktion(wobei er ja eigentlich die spalte c nur durchsucht?!?)
das wäre der fehler, den ich mir erklären könnte, allerdings konnte ich ihn nicht beheben und beim rauslöschen der kreuze tut sich auch absolut nichts. keine fehlermeldung, aber auch kein einfügen neuer zeilen
zum anderen kann ich über das angeben des Status nicht die Ampel steuern. Einen fehler hab ich bereits selbst gefunden. man kopiert ja die daten und formatierung der zeile und löscht anschließend den inhalt.
mit .Range("A1:O1").ClearContents löscht man ja aber die ganze zeile.
habe es jetzt so umgebaut:
.Range("A1:f1").ClearContents
.Range("j1:O1").ClearContents
jetzt müsste die ampel ja eigentlich noch vorhanden sein und mit hilfe der bedingten formatierung auf die statusangabe zugreifen können....leider jedoch fehlanzeige...
ich hoffe ihr könnt mir helfen!
viele grüße martin
Anzeige
sorry, sollte fcs heissen :-) owT-Gruß
21.01.2010 16:27:27
robert
AW: sorry, sollte fcs heissen :-) owT-Gruß
21.01.2010 17:38:27
Martin
Danke Leute,
hab alles hinbekommen. Ist echt klasse geworden. Ich danke euch vielmals
gruß martin

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige