Hallo VBA Profis, ich bin neu in dem VBA Gebiet und brauche Eure Unterstützung! Kann mir bitte jemand helfen einen Makro Code zu erstellen, habe eine Maske mit 7 Textfeldern und Command Button, aktuell kann ich von meiner Textfelder in die nächste freie Zeile (unten) schreiben, was ich aber immer in Zeile 5 übertragen möchte und danach soll in 5 eine neue freie Zeile eingefügt werden damit ich beim nächsten Eintrag eine Freie Zeile in 5 habe. Die aktulle Einträge sollen immer oben sein, so dass die ausgefüllte Zeilen immer nach unter rutschen.
Aktuell sieht mein Makro so aus!
Private Sub Übertragen_Click() Dim last As Integer last = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1 (Neu soll immer in Zeile A5-G5 schreiben + neue Zeile in Zeile 5 einfügen und nicht nach unten)
Moin, ein Denk- oder Ausdrucksfehler: Du willst offensichtlich nach dem schreiben in die Tabelle VOR der aktuellen Zeile_5 eine neue Zeile einfügen, und nicht danach. Das kannst du übrigens gut mit dem Makrorecorder aufzeichnen!
Beste Grüße Günther
Excel-ist-sexy.de …schau doch mal rein! Der Sicherheit meiner Daten wegen lade ich keine *.xlsm bzw. *.xlsb- Files mehr herunter! -> So geht's ohne!
(18.03.2018, 18:33)GMG-CC schrieb: Moin, ein Denk- oder Ausdrucksfehler: Du willst offensichtlich nach dem schreiben in die Tabelle VOR der aktuellen Zeile_5 eine neue Zeile einfügen, und nicht danach. Das kannst du übrigens gut mit dem Makrorecorder aufzeichnen!
Hallo GMG-CC,
danke für deine schnelle Antwort, sorry war doch ein Denkfehler, du hast Recht. Tatsache ist, ich möchte von meiner Textfeldern (Userform) immer in die Zeile A5-G5 schreiben können!
Moin! Nur meine Meinung: Falls z.B. bedingte Formatierungen enthalten sind, wirst Du mit der Methode des Zeileneinfügens die Liste auf Dauer zerschießen. Besser ist jedenfalls, den neuen Datensatz anzuhängen und dann zu sortieren.
Allerdings ist das ohne Beispieldatei Makulatur.
By the way würde ich niemals sieben Spalten per Userform füllen, sondern direkt in die Liste schreiben. Welchen Vorteil versprichst Du Dir von einem UF?
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)
With ActiveSheet .Rows(5).Insert For i = 1 To 7 .Cells(5, i) = Me.Controls("TextBox" & CStr(i)) Next i End With
End Sub
Gruß Werner
Hallo Werner, ich weiß es nicht wo mein Fehler steckt, habe mehrfach mit deinem Code probiert, geht leider nicht :( kannst du mir vielleicht mein UF ergänzen, wäre sehr dankbar dafür! Ich werde versuchen, mein UF da hochzuladen, wenn nicht möglich, reicht mir auch der Code was ich am Anfang hier mitgeteilt habe mit dem neuen ergänzt!
Wieso übersehen eigentlich so viele den riesigen Button "Antworten" und drücken statt dessen "Zitieren"? @Berni: Neues Attachment, Datei auswählen Excel-Datei, kein Bild!
(zu meinem Einwand #5 hast Du Dich nicht geäußert!)
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)
(18.03.2018, 19:03)RPP63 schrieb: Moin! Nur meine Meinung: Falls z.B. bedingte Formatierungen enthalten sind, wirst Du mit der Methode des Zeileneinfügens die Liste auf Dauer zerschießen. Besser ist jedenfalls, den neuen Datensatz anzuhängen und dann zu sortieren.
Allerdings ist das ohne Beispieldatei Makulatur.
By the way würde ich niemals sieben Spalten per Userform füllen, sondern direkt in die Liste schreiben. Welchen Vorteil versprichst Du Dir von einem UF?
Gruß Ralf
Hallo Ralf, ich gebe dir da Recht, aber ich bin vll. doch gezwungen so zu machen da ich später 70-100 Tabellenblätter haben werde und über ComboBox schneller blättern könnte, die Übertragungen sollten jedes mal sichtbar sein um es auf Richtigkeit zu überprüfen, Siehe Anhang!
Habe am Anfang erwähnt, dass ich neu in dem Gebiet bin und für jede Unterstützung sehr dankbar wäre! Genau im Detail kann ich leider keine Fehler korrigieren, die Codes habe ich teilweise aus dem iNet! Gruß