Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
144to148
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
144to148
144to148
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zellinhalt bedingt löschen

Zellinhalt bedingt löschen
10.08.2002 21:02:23
Volker L
Hallo Excel Forum!

folgendes Problem sollte mit einer kleinen VBA- Prozedur gelöst werden:

im Tabellenblatt 1 sollen die Daten der Zellen in einer bestimmten Zeile ( in einer bestimmten Zelle dieser Zeile wird ein "x" reingeschrieben; "x" ruft dann die Prozedur auf )in Tabellenblatt 2 VERSCHOBEN werden. ( die Inhalte in der Zeile von Tabellenblatt 1 sind danach leer; Nummer der Quellzeile=Nummer der Zielzeile )


von Martin Beck habe ich eine folgende Super Lösung erhalten ( Danke Übrigens!! ):

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
On Error GoTo errorhandler
If Target.Column = 5 And Target.Value = "x" Then
z = Target.Row
Rows(z).Copy Destination:=Worksheets("Tabelle3").Cells(z, 1)
Rows(z).ClearContents
End If
errorhandler:
End Sub

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

ein kleines Problem noch: wie muss man die Prozedur erweitern, damit die Formate der Zielzeile/Zielzellen ( Text, Zellfarbe etc. ) nach dem Verschieben der Daten erhalten bleiben,
und wie kann man es erreichen, dass man nur bestimmte Zellinhalte verschiebt ( z. bsp. die Inhalte von bestimmten Zellen )?

vielen Dank im voraus von jenem, der von VBA- Programmierung praktisch keine Ahnung hat!!




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

Betreff
Datum
Anwender
Anzeige
Re: Zellinhalt bedingt löschen
11.08.2002 13:44:24
GerdZ
Hallo Volker,

um die Formate der Zielzellen zu erhalten, mußt Du das Kopieren und Einfügen trennen. Zum Einfügen wird dann die PasteSpecial-Methode verwendet. Hierbei wird über den Parameter gesteuert, was eingefügt werden soll. Mit xlPasteValues werden die Werte, mit xlPasteFormulas die Formeln eingefügt. Dein Makro könnte dann so aussehen:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    Dim z As Long
    If IsArray(Target.Value) Or IsEmpty(Target.Value) Then Exit Sub
    If Target.Column = 5 And Target.Value = "x" Then
        z = Target.Row
' Rows(z).Copy Destination:=Worksheets("Tabelle3").Cells(z, 1)
        Rows(z).Copy
        Worksheets("Tabelle3").Cells(z, 1).PasteSpecial xlPasteValues
        Rows(z).ClearContents
    End If
End Sub
     Code eingefügt mit Syntaxhighlighter 1.13

Gruß
Gerd


Anzeige
Re: Zellinhalt bedingt löschen
11.08.2002 16:01:24
Volker L.
Hallo Gerd!

vielen Dank für Deine Hilfe!

jetzt müsste ich nur noch wissen, wie ich die syntax mit dem Parameter der PasteSpecial Anweisung schreiben muss, damit ich nur bestimmte Inhalte z. Bsp. von A1, B1, D1 verschiebe.

vielen Dank!!

Re: Zellinhalt bedingt löschen
11.08.2002 16:45:44
GerdZ
Hallo,

wenn Du nur einzelne Bereiche verschieben willst, mußt Du dies für jeden Bereich einzeln machen.
Statt
Rows(z).Copy
Worksheets("Tabelle3").Cells(z, 1).PasteSpecial xlPasteValues
schreibst Du dann z.B.

für Spalten 1-2 der Zeile
Range(Cells(z,1),Cells(z,2)).Copy
Worksheets("Tabelle3").Cells(z, 1).PasteSpecial xlPasteValues

für Spalten 4 der Zeile
Range(Cells(z,4),Cells(z,4)).Copy
Worksheets("Tabelle3").Cells(z, 4).PasteSpecial xlPasteValues

Gruß
Gerd

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige