Registriert seit: 30.09.2020
Version(en): 2013
30.09.2020, 07:21
(Dieser Beitrag wurde zuletzt bearbeitet: 30.09.2020, 07:28 von Kiter1988.)
Guten Tag, ich stehe vor folgendem Problem: Ich habe eine Tabelle mit einer Menge Verbandmaterial, zZ muss man diese Liste händisch ausfüllen, das würde ich gerne automatisieren. Die Tabelle in der die verbrauchten Materialien eingetragen werden sollen sieht so aus. Datum | Standort | Name | Material 1 | Material 2 | Material 3 usw.... Ich dachte mir , dass ich ein Eingabe Feld über der Tabelle mache mit Datum | Standort | Name | Materialauswahl (Dropdown) | Stückzahl | Dort wird alles eingetragen und soll dann in die Tabelle z.B. über einem Button übertragen werden. Ich habe bereits eine ähnlich Tabelle mit einer Übertragung angelegt, mit meinem Code komme ich aber nicht weiter. Ich weiß nicht wie ich den Code erweitere, so dass die Materialien in die richtige Spalte sortiert wird. Code: Sub speichern() Dim Name As String, Vorname As String, Personalnummer As String, Schlüsselnummer As String, Schlüsselgruppe As String Worksheets("Übersicht").Select Name = Range("A5") Vorname = Range("B5") Personalnummer = Range("C5") Schlüsselnummer = Range("D5") Schlüsselgruppe = Range("E5") Worksheets("Schlüsseltabelle").Select Worksheets("Schlüsseltabelle").Range("A1").Select If Worksheets("Schlüsseltabelle").Range("A1").Offset(1, 0) <> "" Then Worksheets("Schlüsseltabelle").Range("A1").End(xlDown).Select End If
ActiveCell.Offset(1, 0).Select ActiveCell.Value = Name ActiveCell.Offset(0, 1).Select ActiveCell.Value = Vorname ActiveCell.Offset(0, 1).Select ActiveCell.Value = Personalnummer ActiveCell.Offset(0, 1).Select ActiveCell.Value = Schlüsselnummer ActiveCell.Offset(0, 1).Select ActiveCell.Value = Schlüsselgruppe
End Sub
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Moin,
kopiere den Code mal richtig und füge ihn hier ein. Für eine bessere Darstellung kannst Du dann die Codetags benutzen. Dazu gibt es oben direkt über dem Textfeld den 5. Button von rechts. Wenn Du langsam über die Buttons gehst bekommst Du den ToolTip "Code"
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:1 Nutzer sagt Danke an schauan für diesen Beitrag 28
• Kiter1988
Registriert seit: 30.09.2020
Version(en): 2013
30.09.2020, 09:26
(Dieser Beitrag wurde zuletzt bearbeitet: 30.09.2020, 09:27 von Kiter1988.)
Ich habe den Code mal angepasst. Soweit funktioniert es, ich brauche nur ein Lösung für die Einsortierung der Materialien. Eine Art "suche nach Spalte" dann " Nummer in richtiger Zeile einfügen" Code: Sub Einfügen() Dim Datum As String, Standort As String, Name As String, Material As String, Stück As String Worksheets("Übersicht").Select Datum = Range("E5") Standort = Range("F5") Name = Range("G5") Material = Range("H5") Stk = Range("M5") Worksheets("Übersicht").Select Worksheets("Übersicht").Range("A26").Select If Worksheets("Übersicht").Range("A26").Offset(1, 0) <> "" Then Worksheets("Übersicht").Range("A26").End(xlDown).Select End If
ActiveCell.Offset(1, 0).Select ActiveCell.Value = Datum ActiveCell.Offset(0, 1).Select ActiveCell.Value = Standort ActiveCell.Offset(0, 1).Select ActiveCell.Value = Name ActiveCell.Offset(0, 1).Select ActiveCell.Value = Material ActiveCell.Offset(0, 1).Select ActiveCell.Value = Stk End Sub
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
da gibt es auch wieder verschiedene Wege. Einer wäre, die Suche zu benutzen - code kann man ggf. aufzeichnen. Da Du eine Auswahl hast und die Syntax hoffentlich den Tabellenüberschriften entspricht, könntest Du z.B. auch Select Case verwenden
Im Prinzip
Select Case Range("D4").Value Case "Material 1": Range("D8").Value = Range("D4").Value Case "Material 2": Range("E8").Value = Range("D4").Value '... usw. End Select
oder
Dim iSpalte as Integer Select Case Range("D4").Value Case "Material 1": iSpalte = 4 Case "Material 2": iSpalte = 5 '... usw. End Select Cells(8, iSpalte).Value = Range("D4").Value 'Oder ActiveCell.Offset(...) ...
oder ...
mal abgesehen von anderen Verbesserungsmöglichkeiten hier mal eine zum Offset. nimm von der aktiven Zelle in Spalte A immer eine Zahl weiter, dann musst Du nicht jedes mal aktivieren
ActiveCell.Offset(1, 0).Value = Datum ActiveCell.Offset(1, 1).Value = Standort ActiveCell.Offset(1, 2).Value = Name ActiveCell.Offset(1, 3).Value = Material ActiveCell.Offset(1, 4).Value = Stk
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:1 Nutzer sagt Danke an schauan für diesen Beitrag 28
• Kiter1988
Registriert seit: 30.09.2020
Version(en): 2013
30.09.2020, 12:48
(Dieser Beitrag wurde zuletzt bearbeitet: 30.09.2020, 12:49 von Kiter1988.)
Hallo, danke erstmal. Die Offset Lösung funktioniert leider nicht so gut, deine Lösung ändert den letzten Eintrag in der Tabelle. Code: ActiveCell.Offset(1, 0).Select ActiveCell.Offset.Value = Datum ActiveCell.Offset(0, 1).Value = Standort ActiveCell.Offset(0, 2).Value = Name ActiveCell.Offset(0, 3).Value = Material ActiveCell.Offset(0, 4).Value = Stk
So funktioniert es aber. An welcher Stelle füge ich den "Select Range" Code in meinem Bestehenden ein ?
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen, den Code fügst Du vor den Offsets ein. Allerdings kommt nun mein nächster Hinweis. Irgendwie stimmt entweder die beschriebene Logik nicht oder die Programmierung. Du hast oben geschrieben, dass DU hier Zitat:Die Tabelle in der die verbrauchten Materialien eingetragen werden sollen sieht so aus. Datum | Standort | Name | Material 1 | Material 2 | Material 3 usw.... die Daten eintragen willst. Das sollte die Eingabemaske sein: Zitat:Ich dachte mir , dass ich ein Eingabe Feld über der Tabelle mache mit Datum | Standort | Name | Materialauswahl (Dropdown) | Stückzahl | Mit diesem Code ActiveCell.Offset(0, 4).Value = Stk trägst Du die Stückzahl ein. Das sieht aber nun so aus, als ob der Code die Eingabemaske füllt - wo Stückzahl an 4. Stelle steht, und nicht die Datentabelle. Dort steht an 4. Stelle Material 2.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:1 Nutzer sagt Danke an schauan für diesen Beitrag 28
• Kiter1988
Registriert seit: 30.09.2020
Version(en): 2013
Hallo, ich denke meine Beschreibung kam falsch rüber. Die Eingabemaske ist diese: Code: Datum | Standort | Name | Materialauswahl (Dropdown) | Stückzahl |
In der Materialauswahl werden die Materialien aus der Tabelle unten (per Datenüberprüfung -> Liste) angezeigt. So sieht die Tabelle aus, in die der Inhalt der Eingabemaske eingefügt werden soll. Code: Datum | Standort | Name | Material 1 | Material 2 | Material 3 usw....
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
nö, da ist nix falsch angekommen, ich hab's doch auch so beschrieben, nur erst die Tabeelle mit den Eintragungen und dann die Tabelle für die Eingabe.
Wie gesagt, wenn Deine Beschreibung stimmt, dann stimmt der code nicht. Hab ich auch begründet. Korrekt?
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:1 Nutzer sagt Danke an schauan für diesen Beitrag 28
• Kiter1988
Registriert seit: 30.09.2020
Version(en): 2013
Ich kann nicht mehr folgen. Der Code fügt das in die Tabelle ein, was ich in die Eingabemaske tippe bzw. auswähle, also funktioniert es doch im Prinzip. Datum in Datum Name in Name Standort in Standort Es fehlt nur eine Sortierung der Stückzahl in die richtige Materialspalte.
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
na, dann passt diese Ansatz. Das mit dem Dim kommt am Anfang zu den anderen Dim, und Select Case usw. kannst Du vor der Zeile schreiben wo Du die Zahl einträgst.
Dim iSpalte as Integer
Select Case Range("D4").Value Case "Material 1": iSpalte = 4 Case "Material 2": iSpalte = 5 '... usw. End Select ActiveCell.Offset(0, iSpalte).Value = Stk
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:1 Nutzer sagt Danke an schauan für diesen Beitrag 28
• Kiter1988
|