PDA

Vollständige Version anzeigen : CMD für Löschen und Einfügen v. Zeilen


Lilalauneandreas
30.09.2016, 23:55
Guten Abend,:grins:
Möchte gern meine Userform mit drei weiteren CMD Schaltflächen erweitern.
Da ich noch in den Anfängen stehe - bräuchte ich etwas Hilfe:grins:

CMD 1 " Zeile leeren " 'soll Inhalte der activen Zeile im Bereich B:N entfernen'

CMD 2 " Zeile entfernen " 'soll in der active Zeile den Bereich B:N löschen
und alles was darunter ist nach oben verschieben'

CMD 3 " Zeile Einfügen " 'soll in der active Zeile im Bereich B:N eine leere
Zeile einfügen und alles was darunter ist, nach unten verschieben'

Die active Position soll aber immer die Spalte C sein.

Wenn eine solche CMD ausgeführt wurde, soll also immer die Spalte C gleich activ sein.

Würde mich über VBA- Schnipsel freuen- das ich experimentiren kann. Gern auch mit Komentare an den Befehlen. :entsetzt:

Kann jemand helfen?:boah:

R J
01.10.2016, 00:13
Hi Andreas,

nicht jede Frage muss sofort ins Netz gestellt werden. Vor allem dann nicht, wenn man die Antwort mit minimalstem Aufwand selbst herausfinden kann. In Deinem Fall ist das so. Einfach mal den Recorder benutzen. Wenn dann noch Fragen auftauchen (zwecks dynamischer Gestaltung oder was auch immer), kannst Du immer noch mal nachfragen...

Lilalauneandreas
01.10.2016, 06:10
:rolleyes: Guten Morgen Ralf,

Na ich probiere das heute noch mal aus- Das Problem war die Ausführung für jede active Zeile. Das erstellte Makro arbeitet immer nur die Schritte genau so ab wie sie aufgezeichnet wurden. Es soll aber auf die gesamte Tabelle wirken, wo auch immer ich mich befinde in der "Spalte C".

Danke erst mal.:rolleyes:

Crazy Tom
01.10.2016, 07:10
Hallo

die aktive Zelle ist ja wohl die, mit der du die Userform aufrufst
das könnte dann so aussehen

Private Sub CommandButton1_Click()
Cells(ActiveCell.Row, 2).Resize(1, 13).ClearContents
End Sub

Private Sub CommandButton2_Click()
Cells(ActiveCell.Row, 2).Resize(1, 13).Delete Shift:=xlUp
End Sub

Private Sub CommandButton3_Click()
Cells(ActiveCell.Row, 2).Resize(1, 13).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
End Sub

MfG Tom

Lilalauneandreas
01.10.2016, 08:32
Hallo Tom,

genau diese Befehle habe ich gesucht. gehen :mrcool: Danke


Noch eine Frage. Ich lade mal eine Beispieldatei mit hoch-

Die beiden CMD's, Zeile Löschen, Rest nach unten / oben Verschieben mir auch den Blattkopf auf den Seiten danach.

Habe aber auf meiner Schaltfläche CMD " Weiter " in grün ganz groß:rolleyes: bereits einen Code, der die Zeilen die nicht bearbeiten werden sollen- übersprungen werden bei Click auf Weiter"

Private Sub CommandButton19_Click()
Dim z As Long
Dim r As Long

Range(TextBox19.Value) = TextBox17.Value
Range(TextBox15.Value) = TextBox16.Value


' ich kommentiere das mal aus...
'z = Cells(ActiveCell.Row, "A") 'aktuelle Lfd. Nr
'r = ZeilenNr(z + 1) 'zutreffende Zeilen# der nächsten Lfd. Nr
'Cells(r, ActiveCell.Column).Select 'auf nächste Zeile positionieren

' ... weil das so gedacht war:
Cells(ActiveCell.Row, 1).Interior.Color = vbGreen ' erst das Grün
If (ActiveCell.Row Mod 49) <> 0 Then
ActiveCell.Offset(1).Select
Else
ActiveCell.Offset(20).Select
End If

' ich kommentiere das mal aus...
' Unload Me
' UserForm1.Show

' ... weil das viel schneller läuft
UserForm_Initialize ' das lädt einfach die Variablen nach - wozu eigentlich?
End Sub


Ist es möglich, die Zeilendynamic der Schaltläche "Weiter" in meiner Userform1 auf die beiden

Private Sub CommandButton34_Click()
Cells(ActiveCell.Row, 2).Resize(1, 13).Delete Shift:=xlUp
End Sub

und
Private Sub CommandButton35_Click()
Cells(ActiveCell.Row, 2).Resize(1, 13).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
End Sub


mit anzuwenden.


Beginne immer mit Klick in die Zelle C 20 und öffne Userform1.

Vielleicht kann wer helfen.

Grüße Andreas