Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Zellen auslesen





Frage

Habe 2 tabellen tabelle 1(Angefangene Arbeiten )tabelle 2 (Neue Arbeiten) Die zellen sind von a4 - u4 so aufgebaut a1 =info A2=Schicht1 A3=Schicht2 a4=(Geplant oder Angefangen)usw .. nun meine frage ist es möglich das wenn ich in tabelle 2 von Geplant auf Angefangen auswähle (Gültigkeitsauswahl) die ganze Zeile von tabelle 2 in die nächstfreie tabelle 1 ausgelesen wird und in der Tabelle 2 dann gelöscht wird .Ich bringe so was nicht fertig ich hoffe ihr könnt mir helfen bedanke mich schon mal im vorraus. Rolf

Antwort 1 von coros

Moin ,

kopiere nachfolgenden VBA Code in das VBA Projekt des Blattes, in der sich die Gültigkeitsregel befindet.

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
If Target.Cells.Count > 1 Then Exit Sub
If Target.Address = "$A$4" And Target.Cells = "Angefangen" Then
Rows("4:4").Copy
Sheets("Tabelle1").Cells(Sheets("Tabelle1"). _
Range("A65536").End(xlUp).Offset(1, 0).Row, 1).PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End If
End Sub

Dieser Code prüft ob es sich bei der aktiven Zelle um Zelle A4 handelt und ob dort der Begriff "Angefangen" ausgewählt wurde. Ist das der Fall, kopiert er Zeile 4 und fügt die Daten in Blatt "Tabelle1" in die erste freie Zeile in Spalte A wieder ein.

Ich hoffe, Du kommst klar. Bei Fragen oder Problemen melde Dich.

Solltest Du nicht wissen, wie Du den Code in Deine Datei bekommst, dann schau mal auf meiner HP in der Rubrik Anleitungen und dort dann in der Anleitungsnummer 2 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird.

MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 2 von Bischoff2000

Kommt schon hin ist aber noch nicht so richtig wie ich es brauche a4 langt mir nicht es sind die zeilen
a4-a99 und wenn es dann in tabelle 1 eingetragen ist soll es in tabbelle 2 dann gelöscht werden

mfg Rolf

Antwort 3 von Bischoff2000

und bei der Tabelle 2 bleibt nach den kopieren immer alles noch ausgewählt kann mann das auch ändern so das es gleich danach abgewählt ist


mfg Rolf

Antwort 4 von coros

Hi Rolf,

hättest Du in Deiner Frage etwas darüber geschrieben, dann hätte ich Dir auch den entsprechenden VBA Code dazu erstellt. Leider kann ich weder etwas von Zeile 4 bis 99 lesen, noch dass die Daten gelöscht werden sollen in Deiner ersten Frage lesen. Hellsehen ist darüber hinaus nicht meine Stärke. Hier also ein VBA Code, der das macht, was Du möchtest. Tausche ihn gegen den ersten aus.


Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
If Target.Cells.Count > 1 Then Exit Sub
If Target.Address = "$A$4" And Target.Cells = "Angefangen" Then
Rows("4:99").Copy _
Sheets("Tabelle1").Cells(Sheets("Tabelle1"). _
Range("A65536").End(xlUp).Offset(1, 0).Row, 1)
Rows("4:99").Delete
End If
End Sub

Der Code kopiert die Zeilen 4 bis 99 in das Blatt “Tabelle1” und löscht danach die Zeile 4 bis 99. Allerdings wird bei dem Code alles kopiert, so auch das Format usw. Wenn Du das nicht möchtest, dann musst Du den nachfolgenden Code nehmen. Er macht genau das gleiche, nur werden hier nur die Werte kopiert. Dafür muss, um die Auswahl in dem Blatt „Tabelle1“ aufzuheben, das Blatt kurz automatisch aktiviert werden, damit eine Zelle markiert werden kann und dann wird wieder automatisch auf das andere Blatt zurückgewechselt werden. Daher die Anweisungen mit Activate und Select, die man aber eigentlich aus Ressourcengründen vermeiden sollte.

Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
If Target.Cells.Count > 1 Then Exit Sub
If Target.Address = "$A$4" And Target.Cells = "Angefangen" Then
Rows("4:99").Copy
Sheets("Tabelle1").Cells(Sheets("Tabelle1"). _
Range("A65536").End(xlUp).Offset(1, 0).Row, 1).PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Sheets("Tabelle1").Activate
Sheets("Tabelle1").Range("A1").Select
Sheets("Tabelle2").Activate
Rows("4:99").Delete
End If
End Sub



Ich hoffe, Du kommst klar. Sollte wieder etwas fehlen, dann mach Dir zunächst einmal Gedanken, was Du als Endresultat erhalten möchtest. Wenn Du Dir dass dann alles Überlegt hast, dann schreib das hier so genau wie möglich hin.

MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 5 von Bischoff2000

Hast ja recht ich wollte ja auch am anfang nur mal erst schauen ob so was geht.So gut kenne ich mich in excel ja auch nicht aus.
dein vba passt fast schon,aber es soll mir nicht die ganze seite kopieren und löschen sondern zb.von a4 -a99 steht in jeder zeil ein name und wenn ich den dann ändere auf angefangen soll die zeile von
a4 -J4 kopiert werden von tabelle 2 in tabelle 1 wo als nächstes platzt ist und geschrieben werden kann und gleichzeitig in der tabelle 2 gelöscht werden.das gleiche dann von a4-a99 wenn ich da dann zb bei a55 vom dem namen auf angefangen wechsle sollte es mir dann auch wieder nur die zeile kopiert werden von tabelle 2 in die tabelle 1 wo als nächstes platz ist und dann in tabelle 2 gelöscht werden

nochmals vielen dank für deine hilfe

Antwort 6 von Bischoff2000

von a4 bis a99 sind namen eingetragen
von b4-j4 sind immer folgende eintragungen
a4 name b4 project c4 rmnummer d4 artikel e4 datum usw
a5 name b5 project c5 rmnummer d5 artikel e5 datum
usw
so ist das dann von a4 -a99
nun soll aber immer nur die zeile kopiert werden wo ich den namen a4 oder a5 oder a6 usw auf angefangen ändere nun soll die Zeile kopiert werden von der
tabelle 2 in die tabelle 1 wo als nächstes platz ist und nichts überschrieben werden kann und dann gleichzeitig in tabelle 2 gelöscht werden

nochmals danke für alles

Antwort 7 von coros

Hi Rolf,

na ist Dir doch noch was eingefallen? Das was Du jetzt beschreibst ist ja wieder anders, als die anderen Fragen. Sorry, aber man benötigt in Excel nicht viel Ahnung um eine Frage präzise und vollständig zu stellen. Man muss sich nur mal vorher überlegen, was möchte ich eigentlich erreichen wenn und dass muss man dann eigentlich nur aufschreiben.

Hier nun ein neuer VBA Code, der auf Deine letzten Angaben erstellt wurde. Tausche ihn gegen den anderen aus.

Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
If Target.Cells.Count > 1 Then Exit Sub
If Intersect(Target, Range("A4:A99")) Is Nothing Then
Else
If Target.Cells = "Angefangen" Then
Rows(Target.Row).Copy _
Sheets("Tabelle1").Cells(Sheets("Tabelle1"). _
Range("A65536").End(xlUp).Offset(1, 0).Row, 1)
Rows(Target.Row).Delete
End If
End If
End Sub



MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 8 von Bischoff2000

Jo super genau das wo ich wollte nur noch eins
es macht mir alles aber der zeile 100 rein in der tabelle 1,weil ich warscheinlich die anderen mit einer gültigkeitsauswahlt belegt habe kann mann da auch noch was machen oder muss ich meine tabelle ändern.
und nochmals danke für alles super von dir

mfg Rolf

Antwort 9 von Bischoff2000

ich kann dir mal auch alles senden brauche es halt für die arbeit täte mir da leichter
mfg Rolf

Antwort 10 von coros

Moin Rolf,

schick mir mal Deine Datei, denn was Du in Deiner Antwort 8 geschrieben hast, kann ich nicht nachvollziehen. Also schicke die Datei an meine E-Mail:coros@excelbeispiele.de. Binde in der Betreffzeile irgendwie das Wort "Supportnet" und den Namen, unter dem Du hier gepostet hast (Bischoff2000) mit ein, da ich alle Mails deren Absender ich nicht kenne, ungelesen lösche.

MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: