Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
596to600
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
596to600
596to600
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

bestimmte Zeilenlänge u. nur Zellwerte verschieben

bestimmte Zeilenlänge u. nur Zellwerte verschieben
08.04.2005 21:10:46
Jörg
Hallo zusammen,
mit unten stehendem Script verschiebe ich einen vorher zu markierenden Bereich von einem Sheet ins andere.
So ist es zurzeit:
mit einem Doppelklick starte ich eine UserForm
dann markiere ich die zu kopierenden Zellen
anschließend wähle ich über eine ComboBox der Userform das Zielscheet aus
und starte unten stehendes Skript über einen Button ebendieser UserForm.
die komlette Zeile einschließlich aller Formatierungen wird verschoben
die UserForm schließt sich
So sollte es sein:
per Doppelklick rüfe ich die UserForm auf
der Doppelklick legt auch die zu kopierende Zeile fest
ich wähle nur noch das Zielsheet aus der ComboBox
und es werden aus den Zellen A-Z die Werte einschließlich Leerzellen verschoben, ohne in der Quell- oder Zielzeile die Formatierung, zulässige Eingaben etc. zu verändern
die UserForm schließt sich
------------------------------------------------------------------------------
UserForm1:
Option Explicit

Private Sub CommandButton1_Click()
Call verschieben(Sheets(Me.ComboBox1.Value))
Me.Hide
Unload Me
End Sub


Private Sub UserForm_Initialize()
Dim wb As Worksheet
For Each wb In Worksheets
If wb.Name <> wshVon.Name Then
Me.ComboBox1.AddItem wb.Name
End If
Next wb
End Sub

-------------------------------------------------------------------------------

Modul1:
Option Explicit
Public wshVon As Worksheet
Sub verschieben(wshNach As Worksheet)
Application.EnableEvents = False
' zähle in Spalte 1 die Felder bis zum ersten leeren und setze den Wert gleich i
Dim i As Integer

i = 0
Do
i = i + 1
Loop Until IsEmpty(Sheets(UserForm1.ComboBox1.Value).Cells(i, 1))

' kopiere markierte Felder in Zeile i beginnend mit Spalte 1
Selection.Copy wshNach.Cells(i, 1)

' lösche markierte Felder
Selection.Delete shift:=xlUp

Application.EnableEvents = True
End Sub

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: bestimmte Zeilenlänge u. nur Zellwerte verschi
11.04.2005 00:35:28
Uwe
Hallo Jörg,
probier es mal so:

Sub verschieben(wshNach As Worksheet)
Dim i As Long
On Error GoTo Ende
Application.EnableEvents = False
With wshNach
i = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
.Range(.Cells(i, 1), .Cells(i, 26)).Value = _
Range(Cells(ActiveCell.Row, 1), Cells(ActiveCell.Row, 26)).Value
End With
Range(Cells(ActiveCell.Row, 1), Cells(ActiveCell.Row, 26)).ClearContents
Ende:
Application.EnableEvents = True
End Sub
Gruß Uwe
AW: bestimmte Zeilenlänge u. nur Zellwerte verschi
11.04.2005 21:41:16
Jörg
Hallo Uwe, vielen Dank für deine Antwort.
Das Kopieren funktioniert schon einmal prächtig - genau wie ich es mir gewünscht habe. Es hilft mir, die Formatierung der einzelnen Sheets flexibler zu gestalten.
Nur das mit dem Löschen der kopierten Zeile aus dem alten Sheet, wodurch das Kopieren zum Verschieben würde, will so nicht gelingen.
Vielleicht hast du ja noch einen Tipp. Ansonsten ist es eine interessante Herausforderung für mich, um zu lernen. Ich bin schon mal am Tüfteln...
Gruß Jörg
Anzeige
AW: bestimmte Zeilenlänge u. nur Zellwerte verschi
11.04.2005 23:40:13
Jörg
Hallo Uwe,
nun funktioniert es. Mein (Anfänger)-Fehler war, dass ich clearContents über eine geschützte Zelle mit Formel hinaus anwenden wollte. Nachdem ich die Zeilen davor und danach getrennt lösche, funktioniert es einwandfrei. Und wieder etwas hinzugelernt :-)
Nochmals herzlichen Dank
Gruß Jörg

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige