Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA-Grundkurs :)
#11
ok gut, dann wird dieses Tabellenblatt ausnahmslos für die Personen - die anderen Tabellen daneben werden in andere Blätter verfrachtet, danke :)
Antworten Top
#12
Hallo,

Zitat:ok gut, dann wird dieses Tabellenblatt ausnahmslos für die Personen - die anderen Tabellen daneben werden in andere Blätter verfrachtet, danke

ähm, ja, ... dann warte ich mal drauf, wie es hier weitergehen wird.  Huh
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!

Grüße aus Norderstedt, Peter
Antworten Top
#13
Wieso?

Weitergehen soll es damit, dass man für jeden Mitarbeiter dann div. Urlaubswünsche eintragen kann ... das wird nun in einem anderen Tabellenblatt geschehen. Dort wird dann ebenso eine Auflistung gebaut. Oder verrenn ich mich da jetzt?
Antworten Top
#14
Zwei weitere kleinere Probleme sind aufgetreten:


1.
Ich möchte gerne eine Listbox mit genau den vorher eingetragenen Namen befüllen. Dazu habe ich folgenden Code bislang:


Code:
Private Sub UserForm_Initialize()

'Einlesen der Mitarbeiter
Worksheets("Mitarbeiter").Activate
UserForm_Mitarbeiter_entfernen.ListBox_Namensliste.RowSource = "A2:A25"

End Sub


Allerdings soll der Bereich A2:A25 dynamisch sein. Ist das möglich? Ich werde nicht immer den gesamten Bereich gefüllt haben.


2.
Der Befehl Worksheets("Mitarbeiter").Activate macht zwar, was ich erwartet habe, jedoch nicht das, was ich wollte :). Eigentlich soll er die Liste im Hintergrund auslesen und nicht dazu das Tabellenblatt öffnen
Antworten Top
#15
Moin!
Nimm es nicht persönlich!
Aber solltest Du Dir nicht zunächst mal Grundlagen anlesen, bevor Du mit UserForms "spielst"?

Basics:
Verzichte auf Activate und so ein Gedöns!

Fortgeschritten:
.RowSource ist eher kontraproduktiv!
Dafür gibt es .List und Ähnliches

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#16
Hi,

nein ich nehme es nicht persönlich. Ein paar Grundlagen habe ich mir mit Youtube-Videos angeeignet und die baue ich dann hier nach - allerdings trifft nicht immer alles so zu, wie ich es brauche. Von daher wende ich mich an euch
Antworten Top
#17
Ich habe deinen Anstoß zu Herzen genommen... komme allerdings jetzt nicht mehr weiter. Mein Code bis hierhin:


Code:
Private Sub UserForm_Initialize()

'Array der Namensliste erstellen

Dim Namen()
Dim size As Integer
Dim i As Integer

size = WorksheetFunction.CountA(ThisWorkbook.Sheets("Mitarbeiter").Columns(1))
ReDim Namen(size)

For i = 1 To size
   Namen(i) = Cells(i, 1).Value
Next i

End Sub


ich finde nun allerdings nicht den Code, um das Array einzulesen :(


Code:
ListBox_Namensliste.List = Namen

Wie bekomme ich hin, dass er auch aus dem richtigen Tabellenblatt liest, wenn ich ein anderes geöffnet habe? :(
Antworten Top
#18
Hallo,
Private Sub UserForm_Initialize()
With ThisWorkbook.Worksheets("Mitarbeiter")
Me.ListBox_Namensliste.List = .Range(.Cells(2, 1), .Cells(.Rows.Count, 1).End(xlUp)).Value
End With
End Sub
Gruß Uwe
Antworten Top
#19
Hallo Uwe,

ich habe die Begriffe, die später in die Listbox eingetragen werden sollen, bereits erfolgreich in einem eindimensionalen Array ("Namen") eingelesen. Wenn ich mich im Tabellenblatt "Mitarbeiter" befinde, funktioniert der Code


Code:
ListBox_Namensliste.List = Namen


perfekt.

Nun soll er aber auch funktionieren, wenn ich mich in einem anderen Tabellenblatt befinde. Ich finde den Befehl dafür leider nicht :(
Antworten Top
#20
So nach ewigem Herumprobieren, hat sich das Problem gelöst - mein Fehler lag darin, dass ich die Anweisung thisworkbook.sheets("Mitarbeiter") weiter oben beim Erstellen des Arrays nicht drin hatte!



Nun zu einem weiteren Problem:

Aus einer Spalte, in der ein zu suchender Begriff mehrfach vorkommt, sollen die entsprechenden Zeilen, in der er vorkommt, gelöscht werden. Das Suchen der Zeile bekomme ich hin:


Code:
   Dim finden As Range

   Set finden = Range("A:A").Find(what:=ListBox_Namensliste.Value)
   ThisWorkbook.Sheets("Urlaubswuensche").Rows(finden.Row).Delete


Nun löscht er allerdings nur die erste Zeile die er findet. Um alle zu löschen, habe ich an ein Do-Loop-Schleife gedacht - könnt ihr mir da weiterhelfen oder geht das evtl. auch einfacher?
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste