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

Frage: bis 40 Zeilen in Tabelle per Userform ändern?

Frage: bis 40 Zeilen in Tabelle per Userform ändern?
14.12.2019 22:43:39
Andre
Hallo Experten!
meine VBA-Kenntnisse sind eher bescheiden und daher mal eine Frage an Euch:
Kann man per Userform bis zu 40 Zeilen aus einem Tabellenblatt aufrufen und teilweise ändern?
Zur Erläuterung: Ich habe ein Tabellenblatt mit Daten in 11 Spalten, von denen bis zu 40 Zeilen durch eine gleiche Nummer, die immer in der gleichen Spalte steht, identifiziert werden können. D.h. ich möchte diese Nummer in eine TextBox eingeben und dann sollen zu dieser Nummer Daten aus 5 Spalten aufgeführt werden, von denen dann vier geändert werden können und dann durch klicken auf einen Butten im Tabellenblatt aktualisiert werden sollen.
Könntet Ihr mir sagen, wie man das am besten abbildet?
Gruß
Andre

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Frage: bis 40 Zeilen in Tabelle per Userform ändern?
15.12.2019 00:54:11
Piet
Hallo Andre
die Datei wird hier keiner für dich aufbauen. Wenn du Hilfe haben willst ist es vorteilhafter eine Beispieldatei, auch mit anonymen Namen hochzuladen. 40 Zeilen sind kein Thema für die UserForm. Die solltest du aber schon ins Beispiel mit einfügen, denn du weisst am besten wie dein Layout aussehen soll.
mfg Piet
AW: Frage: bis 40 Zeilen in Tabelle per Userform ändern?
15.12.2019 14:11:03
Andre
Hallo Piet,
ja, eine Beispieldatei gibt es. Ich wollte nur erst einmal wissen, ob es überhaupt geht!
Vermutlich muss ich eine Userform mit entsprechenden Textfeldern aufbauen oder wie würde es gehen?
In einer Listbox sicherlich nicht, oder?
Gruß
Andre
Anzeige
AW: Frage: bis 40 Zeilen in Tabelle per Userform ändern?
15.12.2019 20:07:27
Piet
Hallo Andre
kannst du bitte die Beispieldatei hochladen. Wenn ich sie sehe faellt mir bestimmt eine passende Lösung dazu ein. Das ist m.E. sinnvoller statt mit Text und Rück-Antworten unnötig herum zu hampeln.
mfg Piet
AW: Frage: bis 40 Zeilen in Tabelle per Userform ändern?
15.12.2019 20:23:39
Andre
Hallo Piet,
hier meine Datei mit den Daten.
https://www.herber.de/bbs/user/133796.xlsm
Noch mal zur Erläuterung:
Folgendes habe ich vor:
Das Tabellenblatt "Bestand" hat Daten in 11 Spalten. In der Spalte "WE-Nr." steht in bis zu 40 Zeilen eine gleiche Nummer (WE-Nr. bzw. Vorgangsnummer). Dadurch kann die jeweilige Zeile identifiziert werden.
Jetzt möchte ich in einer Userform diese Belegnummer in ein Feld eingeben und dann sollen die entsprechenden Zeilen bzw. Teile davon angezeigt werden. Von den insgesamt 11 Spalten des Tabellenblatts "Bestand" brauche ich dann die Daten aus 5 Spalten der jeweiligen Zeile (Lagereinheit, Pal-Faktor, Block, Gang, Platz).
Der Wert der Spalte "Lagereinheit" dient zur Info, die anderen Daten aus den vier Spalten sollen geändert werden und die Daten einfach im Bestands-Tabellenblatt überschrieben werden können.
Quasi analog zur Funktion "Lagerplätze ändern".
Gruß
Andre
Anzeige
AW: Frage: bis 40 Zeilen in Tabelle per Userform ändern?
16.12.2019 13:03:44
Torsten
Hallo Andre,
ich hab dir in deine Datei mal eine weitere Userform eingebaut.
Aufruf ueber Button "Bestand aendern". Finetuning musst du selber erledigen.
In Textbox 1 oben gibts du die Suchnummer ein und bestaetigst mit Enter. Dann werden alle zu dieser Nummer gelistet. Mit klick auf den zu aendernden Eintrag, werden die Werte in die Textboxen rechts geschrieben. Dann kannst du aendern und mit klick auf Button "Aenderung speichern" werden die Daten zurueckgeschrieben.
Viel Spass
Gruss Torsten
https://www.herber.de/bbs/user/133806.xlsm
Anzeige
AW: Frage: bis 40 Zeilen in Tabelle per Userform ändern?
18.12.2019 07:19:02
Andre
Hallo Torsten,
vielen Dank für Deine Hilfe bzw. den Lösungsansatz!
Ich denke, damit kann ich einiges anfangen und es entsprechend designen ;-)
Wenn ich noch einen Wunsch äußern dürfte, wäre es die Funktion, dass nach dem klick auf Speichern, die Listbox aktualisiert wird, damit ich sehen kann, welche Einträge bereits geändert wurden.
Gruß
Andre
AW: Frage: bis 40 Zeilen in Tabelle per Userform ändern?
18.12.2019 13:31:18
Werner
Hallo Andre,
Private Sub CommandButton1_Click()
Dim x
x = ListBox1.List(ListBox1.ListCount - 1)
Dim suche
With ListBox1
Set suche = Sheets("BESTAND").Columns(1).Find(.Column(0, .ListIndex))
End With
With Sheets("BESTAND")
If Not suche Is Nothing Then
.Cells(suche.Row, 1) = TextBox2
.Cells(suche.Row, 8) = TextBox3
.Cells(suche.Row, 9) = TextBox4
.Cells(suche.Row, 10) = TextBox5
.Cells(suche.Row, 11) = TextBox6
End If
End With
Me.ListBox1.Clear
Call TextBox1_AfterUpdate
End Sub
Gruß Werner
Anzeige
AW: Frage: bis 40 Zeilen in Tabelle per Userform ändern?
18.12.2019 22:12:16
Andre
Hallo Werner,
auch Dir Danke!
bei zwei Dingen komme ich nicht weiter:
1. Wenn eine Nummer, die ich in die TextBox1 eingeben nicht existiert, soll eine MessageBox aufgehen mit dem Hinweis "Nummer nicht gefunden"
(Wenn ich das einfüge bekomme ich Fehlermeldungen.
2. Wenn eine Nummer eingegeben wird und die Datensätze angezeigt werden und ich dann Speichern klicke kommt ebenfalls eine Fehlermeldung.
Habt Ihr da eine Lösung für?
Gruß
Andre
AW: Frage: bis 40 Zeilen in Tabelle per Userform ändern?
19.12.2019 00:14:38
Werner
Hallo,
das hier:

2. Wenn eine Nummer eingegeben wird und die Datensätze angezeigt werden und ich dann Speichern klicke kommt ebenfalls eine Fehlermeldung.

Welche Fehlermeldung denn und in welcher Codezeile?
Ich vermute mal, dass du meinst es kommt eine Fehlermeldung wenn kein Eintrag in der Listbox ausgewählt ist und du dann den Button klickst.
Wenn ja dann so:
Private Sub CommandButton1_Click()
Dim suche As Range, x As Long
If Me.ListBox1.ListIndex > -1 Then
x = ListBox1.List(ListBox1.ListCount - 1)
With ListBox1
Set suche = Sheets("BESTAND").Columns(1).Find(.Column(0, .ListIndex))
End With
With Sheets("BESTAND")
If Not suche Is Nothing Then
.Cells(suche.Row, 1) = TextBox2
.Cells(suche.Row, 8) = TextBox3
.Cells(suche.Row, 9) = TextBox4
.Cells(suche.Row, 10) = TextBox5
.Cells(suche.Row, 11) = TextBox6
End If
End With
Me.ListBox1.Clear
Call TextBox1_AfterUpdate
End If
Set suche = Nothing
End Sub
Und Meldung wenn die Nummer nicht vorhanden ist:
Private Sub TextBox1_AfterUpdate()
Dim boVorhanden As Boolean, ws As Worksheet
Dim zeile As Long, letzte As Long
Set ws = ThisWorkbook.Sheets("BESTAND")
letzte = ws.Cells(Rows.Count, 6).End(xlUp).Row
With ListBox1
.ColumnCount = 5
.ColumnWidths = "3cm;3cm;3cm;3cm;3cm"
End With
With ws
For zeile = 2 To letzte
If CLng(.Cells(zeile, 6)) = CLng(TextBox1) Then
boVorhanden = True
ListBox1.AddItem
ListBox1.List(ListBox1.ListCount - 1, 0) = .Cells(zeile, 1)
ListBox1.List(ListBox1.ListCount - 1, 1) = .Cells(zeile, 8)
ListBox1.List(ListBox1.ListCount - 1, 2) = .Cells(zeile, 9)
ListBox1.List(ListBox1.ListCount - 1, 3) = .Cells(zeile, 10)
ListBox1.List(ListBox1.ListCount - 1, 4) = .Cells(zeile, 11)
End If
Next
End With
If Not boVorhanden Then
Me.ListBox1.Clear
MsgBox "Die eingegebene Nummer ist nicht vorhanden."
End If
Set ws = Nothing
End Sub
Gruß Werner
Anzeige
AW: Frage: bis 40 Zeilen in Tabelle per Userform ändern?
19.12.2019 07:51:19
Andre
SUPER, SUPER, SUPER !!
VIELEN DANK WERNER,
es funzt alles!
Der nächste Step ist schon in Arbeit aber ich versuche es erst mal selbst. (nur bestimmte Werte sollen in einer der TextBoxen eingegeben werden können).
Wenn ich nicht weiter kommen, schreibe ich hier ;-)
Schöne Feiertage!
Gruß
Andre
Gerne u. Danke für die Rückmeldung. o.w.T.
19.12.2019 08:40:55
Werner

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige