Wer kann mir bitte einen kurzen VBA Code erstellen?
#1
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)

ActiveSheet.Cells(last, 1).Value = Userform1.Textbox1.Value
ActiveSheet.Cells(last, 2).Value = Userform1.Textbox2.Value
ActiveSheet.Cells(last, 3).Value = Userform1.Textbox3.Value
ActiveSheet.Cells(last, 4).Value = Userform1.Textbox4.Value
ActiveSheet.Cells(last, 5).Value = Userform1.Textbox5.Value
ActiveSheet.Cells(last, 6).Value = Userform1.Textbox6.Value
ActiveSheet.Cells(last, 7).Value = Userform1.Textbox7.Value

End Sub

Danke für jede Unterstützung!
Gruß
Top
#2
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!
Top
#3
(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!
Top
#4
Hallo Beni,

so:
Code:
Private Sub Übertragen_Click()
Dim i As Long

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
Top
#5
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)
Top
#6
(18.03.2018, 18:52)Werner.M schrieb: Hallo Beni,

so:
Code:
Private Sub Übertragen_Click()
Dim i As Long

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!

Gruß
Beni
Top
#7
Wieso übersehen eigentlich so viele den riesigen Button "Antworten" und drücken statt dessen "Zitieren"?  Huh
@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)
Top
#8
(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!

Gruß
Beni


Angehängte Dateien
.xlsm   Tabellenblätter.xlsm (Größe: 50,57 KB / Downloads: 9)
Top
#9
Ist das denn wirklich so schwer?
   

Jetzt folgt ein sinnvolles Zitat:
Zitat:da ich später 70-100 Tabellenblätter haben werde und über ComboBox schneller blättern könnte,

Du solltest DRINGEND Dein Datenmodell prüfen!
Alles in eine Tabelle und filtern oder ein Pivot-Table erstellen.
Du verrennst Dich da völlig!
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)
Top
#10
Sorry habe den Antwort Button übersehen  Blush

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ß
Top


Gehe zu:


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