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

Zeile per Makro löschen / übertragen

Zeile per Makro löschen / übertragen
17.06.2004 17:53:59
Gero
Hallo,
ich hätte hier ein kleines Problem, welches für euch Cracks sicher leicht zu lösen ist - ich suche nach einer Möglichkeit (wahrscheinlich per VBA-Makro)per Button Zeilen zu löschen und bestimmte Spalten dieser Zeile auf ein weiteres Tabellenblatt zu übertragen. Hier ein Beispiel zur Verdeutlichung:
OFFENE RECHNUNGEN :
RG Nummer / RG Betrag / Fällig am / Bezahlt
12345 / 10,00 EUR / 17.06.04 / (Button)
Unter "Bezahlt" soll sich in jeder Zeile ein Button befinden. Wird der fällige Rechnungsbetrag nun überwiesen soll durch Drücken des Buttons "Bezahlt" die Zeile aus der Tabelle gelöscht werden und die Einträge unter "RG Nummer" und "RG Betrag" (nicht "Fällig an) in eine neue Zeile eines weiteren Tabellenblattes (z.B. Bezahlte Rechnungen) übertragen werden.
Für mich als Laien ein unlösbares Problem, aber vielleicht kann mir einer von euch dabei helfen - vielen Dank dafür schonmal im Vorraus!!! Gero

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeile per Makro löschen / übertragen
17.06.2004 18:11:58
FloGo
Hallo Gero!
Ist es nicht sehr Umständlich wenn du in jeder Zeile einen Button erstellen musst?!
Ich würde die eine Zelle in der gewünschten Zeile Markieren und anschließend auf den Button klicken.
FloGo
AW: Zeile per Makro löschen / übertragen
17.06.2004 18:24:41
FloGo
Noch mal Hallo
Folgenden Code in ein allg. Modul und dann durch einen Button aufrufen.
Zuerst eine Zelle in der gewünschten Zeile Markieren!

Sub löschen()
Dim i As Long
i = Sheets("Tabelle2").Range("A65536").End(xlUp).Row + 1
Sheets("Tabelle2").Cells(i, 1) = Cells(ActiveCell.Row, 1)
Sheets("Tabelle2").Cells(i, 2) = Cells(ActiveCell.Row, 2)
Rows(ActiveCell.Row).Select
Selection.Delete
Cells(ActiveCell.Row - 1, 1).Select
End Sub

FloGo
Anzeige
AW: Zeile per Makro löschen / übertragen
17.06.2004 18:41:50
Gero
Puh, Wahnsinn - das klappt ja schonmal ganz gut - ich habe mir gerade überlegt wie man der ganzen Buttonflut aus dem Weg gehen könnte; und zwar wenn mann anstatt des Buttons einfach den Wert "Ja" nimmt - d.H. wenn man in der Spalte "Bezahlt" den Wert "Ja" eingibt, sollte die Zeile gelöscht und die Werte übertragen werden. Ist das möglich? Vielen Dank schonmal!!!!
AW: Zeile per Makro löschen / übertragen
17.06.2004 19:20:55
FloGo
Mit folgendem Code sollte es klappen:
Sub löschen(ByVal n As Range)
Dim i As Long
a = n.Row
i = Sheets("Tabelle2").Range("A65536").End(xlUp).Row + 1

Sheets("Tabelle2").Cells(i, 1) = Cells(n.Row, 1)
Sheets("Tabelle2").Cells(i, 2) = Cells(n.Row, 2)
Rows(a).Select
Selection.Delete
Set n = Nothing
End Sub
und den hier in den VBA Code des betr. Tabellenblattes (es gibt sicher unkomplizirtere Lösungen):

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim n As Range
Set n = Columns(4).Find("JA", LookIn:=xlValues, LookAt:=xlPart)
If Not n Is Nothing Then
Call löschen(n)
End If
End Sub

FloGo
Anzeige
AW: Zeile per Makro löschen / übertragen
17.06.2004 19:32:49
Gero
Hallo FloGo,
vielen, vielen Dank für deine Hilfe - zwei ganz kurze Fragen hätte ich noch :
1. wo muss ich den ersten Code hineinkopieren - in "Diese Arbeitsmappe" oder in "Module"?
2. das "Ja" würde bei mir jeweils in Spalte "H", d.h. der 8 Spalte eingetragen werden - wird die Position des "Jas" in deinem Code berücksichtigt oder wird die gesamte Tabelle nach dem Ja durchforstet
und 3. (aber ich will nicht zu dreist werden, wäre quasi nur ein Schmankerl) - wie wäre es möglich beim übertragen der Werte (z.B. Lieferant, RG Datum, Betrag) noch das aktuelle Datum hinzuzufügen (das es quasi in dem Tabellenblatt "Bezahlte" Rechnungen dann noch eine neue Spalte mit "Bezahlt am" gibt).
Vielen, vielen Dank - vielleicht kann ich mich ja mal revanchieren, Gero
Anzeige
AW: Zeile per Makro löschen / übertragen
17.06.2004 19:41:52
FloGo
Alles kein Prob.:
1) Der erste Code (Sub löschen) in ein allg. Modul
2) Ja wird berücksichtig!
Habe das jetzt noch geändert:


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim n As Range
Set n = Columns(8).Find("JA", LookIn:=xlValues, LookAt:=xlPart)
If Not n Is Nothing Then
Call löschen(n)
End If
End Sub

3) Mit dem Code wird nun noch das Datum in Spalte C geschrieben:
Sub löschen(ByVal n As Range)
Dim i As Long
a = n.Row
i = Sheets("Tabelle2").Range("A65536").End(xlUp).Row + 1
Sheets("Tabelle2").Cells(i, 1) = Cells(n.Row, 1)
Sheets("Tabelle2").Cells(i, 2) = Cells(n.Row, 2)
Sheets("Tabelle2").Cells(i, 3) = Date 'Datum eintragen in C (=3)
Rows(a).Select
Selection.Delete
Set n = Nothing
End Sub
So jetzt sollte alles klappen!
FloGo
Anzeige
AW: Zeile per Makro löschen / übertragen
17.06.2004 19:52:26
Gero
Hallo FloGo,
leider erschein bei mir diese Fehlermeldung (s.Bild).
Was hab ich falsch gemacht? Vielen Dank
Userbild
AW: Zeile per Makro löschen / übertragen
17.06.2004 20:01:18
FloGo
Ich sehe auf deinem Bild kein Modul!
Du hast einen Code noch nicht eingefügt!
Darum kennt er die Sub nicht!
Füge zuerst das Modul (bzw. die 2. Sub löschen) ein vor du auf dem Tabellenblatt arbeitest!!!
FloGo
AW: Zeile per Makro löschen / übertragen
17.06.2004 20:13:16
Gero
Hallo FloGo,
sorry, mein Fehler - ich habe den Code falsch eingetragen.
Wahnsinn, jetzt funktioniert auch alles - bis auf eine Kleinigkeit ...
die Zeile wird zwar richtig gelöscht, kopiert wird sie aber zweimal, d.h.
auf dem zweitem Tabellenblatt erscheint der übertrag gleich zwei mal untereinander.
Ist mir fast schon peinlich, aber wenn du mir da noch kurz helfen könntest ... ein Tippfehler meinerseits kann es nicht sein, habe deine Codes gepasted ...
Anzeige
AW: Zeile per Makro löschen / übertragen
17.06.2004 20:22:34
FloGo
Jetzt aber hatte nen kleinen Denkfehler drin:

Sub löschen(ByVal n As Range)
Dim i As Long
i = Sheets("Tabelle2").Range("A65536").End(xlUp).Row + 1
Cells(n.Row, 8).ClearContents
Sheets("Tabelle2").Cells(i, 1) = Cells(n.Row, 1)
Sheets("Tabelle2").Cells(i, 2) = Cells(n.Row, 2)
Sheets("Tabelle2").Cells(i, 3) = Date 'Datum eintragen in C (=3)
Rows(n.Row).Select
Selection.Delete Shift:=xlUp
Set n = Nothing
Cells(1, 1).Select
End Sub

FloGo
AW: Zeile per Makro löschen / übertragen
17.06.2004 20:27:06
Gero
Super - jetzt klappt alles !!! Vielen, vielen Dank für deine Hilfe - falls du mal Fragen zu irgendwelchen Grafikprogrammen hast, ich stehe dir jederzeit zur Verfügung! Danke!
Anzeige
freue mich über Rückmeldung!!! :-) o.T.
18.06.2004 16:50:31
FloGo
-
OT Select
PeterW
Hallo FloGo,
hast du dir immer noch nicht den Beitrag zu Select angeschaut? ;-)
Statt:
Rows(n.Row).Select
Selection.Delete Shift:=xlUp
würde
Rows(n.Row).Delete
völlig reichen, beim Löschen von Zeilen ist es schwerlich möglich die Zeilen von oben nach unten shiften zu lassen.
Gruß
Peter
AW: Zeile per Makro löschen / übertragen
17.06.2004 18:30:25
Gero
Hmm, wäre die Tabelle für mich gedacht würde ich ganz auf das Makro verzichten und die Zeile einfach per Hand löschen ; ) Leider muss die Tabelle so benutzerfreundlich wie möglich werden. In der Tabelle sollen nur die offenen Rechnungen angezeigt werden, und sobalt eine dieser Rechnungen bezahlt wurde, sollte sie so einfach wie möglich aus der Tabelle gelöscht wreden - sie hat ja dann dort nichts mehr verloren. Und wie gesagt, am Besten wäre es wenn die Einträge zu dieser Rechnung in eine weitere Tabelle namens "Bezahlte Rechnungen" übertragen werden könnte.
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige