Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Verschieden Zeilen automatisch in ein neues Blatt kopieren...





Frage

Hallo, ich möchte gerne aus eine Tabelle (Bestellliste) die Zeilen, die in der Spalte "Menge" einen Eintrag haben, automatisch in ein anderes Tabellenblatt kopieren. Es soll also aus einer längeren Tabelle automatisch ein Bestellformular generiert werden. Wie könnte mann sowas umsetzen? Freue mich auf Antworten.

Antwort 1 von Hajo_Zi

Hallo Namensloser,

schaue Dir mal dies Beispiel an

https://supportnet.dethreads/1404845

Du brauchst ja nur Prüdfen <>""

Gruß Hajo

Antwort 2 von duudii

Hallo Hajo,
ist genau das, was ich benötige (glaube ich). Aber wie kann ich jetzt die Formel verwenden, wo muss ich sie hin kopieren?

Vielen Dank für die Antwort / Antworten.

Gruß Udo

Antwort 3 von Hajo_Zi

Hallo Udo,

in dem Beitrag war nicht die Rede von Formel ssonder Code und der gehört im VBA Editor unter die Tabelle. Gehe auf das Register Deiner Tabelle, rechte Maustaste und Code Anzeigen. Dorthin den Code kopieren und verändern.

Gruß Hajo

Antwort 4 von duudii

Ok, ich werde mal mein Glück versuchen (bin in Excel nicht so Textfest ;-)). Wenn ich nicht klar komme, melde ich mich noch mal.
Vielen Dank, Udo

Antwort 5 von duudii

Ojeojeoje,
muß jetzt leider erst weg, melde mich später noch mal, irgendwas funktioniert nicht...

Gruß,
Udo

Antwort 6 von duudii

Hallo,
ich glaube ich bekomme das nicht hin. Ich habe im code alles mögliche ausprobiert und verändert aber mein wissen reicht dazu nicht aus.

Ich habe die Spalten a - i im ersten Tabellenblatt. In der Spalte i steht sporadisch ein Wert. Die Zeilen in denen in Spalte i ein Wert steht sollen ins Tabellenbatt 2 kopiert werden.

Hier den Code von Hajo mit meinen Änderungen.
(das Folgende habe ich alles rüber kopiert)

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
´**************************************************
´* H. Ziplies *
´* 27.08.06 *
´* erstellt von Hajo.Ziplies@web.de *
´**************************************************

Dim RaBereich As Range, RaZelle As Range
Dim LoLetzte As Long
´ Bereich der Wirksamkeit
Set RaBereich = Range("I:I")
For Each RaZelle In Range(Target.Address)
If Not Intersect(RaZelle, RaBereich) Is Nothing Then
If RaZelle = ">0" Then
With Worksheets("Tabelle2")
LoLetzte = .UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1
Range("A" & RaZelle.Row & ":i" & RaZelle.Row).Copy .Cells(LoLetzte, 1)
End With
End If
End If
Next RaZelle
Set RaBereich = Nothing
End Sub



Wenn ich Werte in Spalte i eintrage bekomme ich folgende Fehlermeldung:
Fehler beim kompilieren:
Syntaxfehler

Würde mich sehr freuen, wenn mir jemand unter die Arme greifen könnte.

Gruß, Udo

Antwort 7 von Hajo_Zi

Hallo Udo,

eigentlich hatte ich schon geantwortet, der Beitrag ist nicht da.
Dein Vergleich =">0" ist falsch das muß nur >0 lauten. Das führt aber immer noch z einem Fehle falls Buchstaben ewingegeben werden.
Ich habe mal die Kommentare entfernt, das wird nicht richtig ins Forum übernommen und ich habe den Code angepast.

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim RaBereich As Range, RaZelle As Range
Dim LoLetzte As Long
Set RaBereich = Range("I:I")
For Each RaZelle In Range(Target.Address)
If Not Intersect(RaZelle, RaBereich) Is Nothing Then
If IsNumeric(RaZelle) Then
If RaZelle > 0 Then
With Worksheets("Tabelle2")
LoLetzte = .UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1
Range("A" & RaZelle.Row & ":i" & RaZelle.Row).Copy .Cells(LoLetzte, 1)
End With
End If
End If
End If
Next RaZelle
Set RaBereich = Nothing
End Sub

Gruß Hajo

Antwort 8 von duudii

Hallo Hajo,
habe den Code eingefügt, rührt sich aber immer noch nichts. Muß ich das noch irgendwo aktivieren?

In die Spalte "i" kommen nur Mengen (Zahlen).

Gruß,
Udo

Antwort 9 von Hajo_Zi

Hallo Udo,

ich habe den Code in meiner Datei getestet ohne Problem. Ein Nachbau sieht aber immer anders aus als das Original.
An die richtige Stelle hast Du den Code schon kopiert? Unter der Tabelle.

Gruß Hajo

Antwort 10 von duudii

Ich glaube schon, ich habe auf den Reiter der Tabelle geklickt (rechte Maustaste) und dann auf "code anzeigen". Dort habe ich dann den gesamten code in die freie Fläche kopiert. Dadrüber sind zwei Felder nebeneinander "Worksheet" und "(Change).

Fällt Dir noch irgendetwas ein, was ich versuchen könnte?

Viele Grüße,
Udo

Antwort 11 von duudii

OK,
habe gerade eine Tabelle neu erstellt, mit der ging es. Ich mache mich jetzt mal auf die Suche nach dem Fehler.

Vielen Dank nochmal,
Udo

Antwort 12 von duudii

Hi Ihr,
ich habe den Fehler nicht gefunden.
Wenn ich die beiden Tabellenblätter in eine neu leere Arbeitsmappe kopiere funktioniert alles. Sobald ich aber eine Zelle verändere (einen anderen Wert eingebe) finktioniert es nicht mehr.

Hat noch jemand ´ne Idee, wo ich bzw. wie ich editieren muß, damit es danach wieder geht???

Freue mich auf jede Antwort.

Gruß, udo

Antwort 13 von duudii

OK,
Ich habe das Problem gefunden, es saß (wie fast immer) vor´m Monitor. Die Einstellungen für Sicherheit waren auf "hoch" gesetzt und Excel hat dann das Makro wohl nicht ausgeführt.

Soll wohl jetzt gehen.

Vielen Dank,
udo