Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Excel Problem mit if then copy





Frage

Hallo Ihr kleinen und großen Helfer, ich möchte in Excel eine Abfrage des Zelleninhalts integrieren und dann das Nachfolgende in die Namensgleiche Tabelle kopieren. Zelle A3 - A500 soll geprüft werden und ist der Inhalt gleich z.Bsp MSH dann soll das was danach eingetragen wird bis Zelle U in die Tabelle MSH kopiert werden ( schön wäre nacheinander, also erster eintrag ist MSH zweiter Velo dritter wieder MSH, wäre schön wenn dann in der MSH tabelle die zweite Zeile nicht frei wäre). Die andere abfrage möglichkeit ist Velo, da das gleiche ist A3 - A500 gleich Velo dann ab in die Velo Tabelle. Das wars. Hört sich alles ganz einfach und logisch an ist für mich aber leider nicht lösbar. Ich wäre euch für Eure Hilfe sehr dankbar. Gruß Fightibrandon

Antwort 1 von coros

Hi Fightibrandon,

kopiere nachfolgendes Makro in ein StandardModul und starte es über eine Befehlsschaltfläche.

Option Explicit

Sub Kopieren()
Dim Wiederholungen As Integer
For Wiederholungen = 1 To 300
If Cells(Wiederholungen, 1) = "MSH" Then _
Range(Cells(Wiederholungen, 1), Cells(Wiederholungen, 21)).Copy _
Sheets("MSH").Cells(Sheets("MSH").Range("A65536").End(xlUp).Offset(1, 0).Row, 1)
If Cells(Wiederholungen, 1) = "Velo" Then _
Range(Cells(Wiederholungen, 1), Cells(Wiederholungen, 21)).Copy _
Sheets("Velo").Cells(Sheets("Velo").Range("A65536").End(xlUp).Offset(1, 0).Row, 1)
Next
End Sub

Das Makro prüft Spalte A nach den Namen „MSH“ und „Velo“. Bei Übereinstimmung wird der bereich A:U in das entsprechende Tabellenblatt in die erste freie Zeile kopiert.

Ich hoffe, Du hast das so gemeint. Wenn nicht, dann melde Dich bitte noch mal.

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 3 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 fightibrandon

Hallo Coros,

danke für deine Hilfe. Du bist ja echt fit in solchen Sachen. Es klappt aber noch nicht ganz so wie ich es benötige. Besser wäre es, das Makro nicht immer wieder ausführen zu müssen. Falls das nicht möglich ist das es sich permanent selbst aktualisiert und abfragt ginge es auch so. Das nächste kleine Problem ist das er bei jeden ausführen alle Zeilen noch einmal kopiert. Es darf aber nur jede Zeile einmal in die jeweiligen tabelle kopiert werden.

Ist das möglich ???


Danke noch einmal für deine/eure Hilfe !!!

Gruß Fightibrandon

Antwort 3 von coros

Hi Fightibrandon,

zunächst einmal müsste ich wissen, was bei Dir automatisch heißt. Immer wenn in der Datei etwas eingetragen, bzw. etwas geändert wird? Oder wenn die Datei geöffnet oder das Blatt aufgerufen wird?

Dann müsste man wissen, ob es in jeder Zeile einen eindeutigen Schlüssel gibt, um nicht jede Zelle von Spalte A bis U auf vorhanden sein des gleichen Werts zu prüfen wenn kopiert wird. Was ich meine, gibt es einen Wert, der immer anderes ist als der bei den anderen Einträgen von z.B. WSH. Denn sonst wird das ganze etwas lange dauern, wenn man alle Zellen prüfen lassen muss. Da wird es dann wohl nichts mit dem automatischen Aktualisieren, da dann ein Arbeiten in der Datei fast unmöglich wird. Das Starten kann dann nur über eine Schaltfläche geschehen, damit Du Dir dann erst mal in Ruhe einen Kaffee trinken kannst. ;-)

Eventuell kannst Du mir Deine Datei ja mal senden, dann kann ich mir das mal Live ansehen.

MfG,
Oliver
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 4 von fightibrandon

Hallo Oliver,

mit automatisch meine ich, das bei jeder änderung die kopie gemacht wird.

Es gibt keinen schlüssel den man prüfen kann.
Ich habe aber eine Idee !!!
Lass uns doch einefach in einer spalte eine Zeilennummer vergeben ( spalte B zum Bsp. ).
erster eintrag MSH 1 usw.
zweiter eintrag Velo 2 usw.
dritter eintrag MSH 3 usw.

Was meinst du ???

Gruß Marco

PS:

Sollte es nicht klappen sende ich dir gerne die Datei. Zur erklärung noch einmal es handelt sich um eine Becherbestandsliste. Becher gehen zum Spülen und werden wieder geliefert und das für zwei Orte.
Ich brauche einmal eine gesamttabelle und dann noch eine für jede Halle separat, möchte aber nicht alles doppelt eintragen müssen.

DANKE !!!

Antwort 5 von coros

Hi ,

kopiere nachfolgenden Code in das VBA Projekt der Tabelle, von der aus die Daten in die beiden anderen Tabellenblätter kopiert werden sollen. Solltest Du nicht wissen, wie Du den Code in das VBA Projekt 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.

 Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Wiederholungen As Integer
Sheets("MSH").Columns("A:U").ClearContents
Sheets("MSH").Columns("A:U").ClearContents
For Wiederholungen = 1 To 300
If Cells(Wiederholungen, 1) = "MSH" Then _
Range(Cells(Wiederholungen, 1), Cells(Wiederholungen, 21)).Copy _
Sheets("MSH").Cells(Sheets("MSH").Range("A65536").End(xlUp).Offset(1, 0).Row, 1)
If Cells(Wiederholungen, 1) = "Velo" Then _
Range(Cells(Wiederholungen, 1), Cells(Wiederholungen, 21)).Copy _
Sheets("Velo").Cells(Sheets("Velo").Range("A65536").End(xlUp).Offset(1, 0).Row, 1)
Next
End Sub 

Bei dem Code wird in beiden Blättern zuerst einmal die Werte in Spalte A bis U gelöscht und dann werden die entsprechenden Werte in die Blätter kopiert.

Ich hoffe, Du das ist, was Du wolltest. Wenn nicht oder bei Änderungswünschen melde Dich.

MfG,
Oliver
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 6 von fightibrandon

Hallo Oliver,

ist schon ganz nah an der CD ;-).

Du hast aus versehen 2 mal die MSH löschen lassen das zweite mal habe ich in Velo geändert.

Ich habe kenntnisse in Basicprogrammierung und kann deshalb solche logik sachen erkennen und ändern. Was mir nicht gelingen will ist das er in der Tabelle MSH oder Velo die Daten erst ab A3 kopiert und das er das Feld A1 - U1 und A2 - U2 nicht mit löscht.

Ich bin dir echt dankbar für deine Hilfe !!!!

Gruß Marco

PS: Muss ich jedesmal speichern oder brauch er einfach nur einen kleinen Augenblick um die änderungen zu übernehmen ???

Antwort 7 von coros

Hi Marco,

mit nachfolgendem Code werden in den Blättern "MSH" und "Velo" erst die Daten ab Zeile 3 gelöscht. Zeile 1 und 2 bleiben unangetastet.

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Wiederholungen As Integer
Sheets("MSH").Range("A3:U65536").ClearContents
Sheets("Velo").Range("A3:U65536").ClearContents
For Wiederholungen = 1 To 300
If Cells(Wiederholungen, 1) = "MSH" Then _
Range(Cells(Wiederholungen, 1), Cells(Wiederholungen, 21)).Copy _
Sheets("MSH").Cells(Sheets("MSH").Range("A65536").End(xlUp).Offset(1, 0).Row, 1)
If Cells(Wiederholungen, 1) = "Velo" Then _
Range(Cells(Wiederholungen, 1), Cells(Wiederholungen, 21)).Copy _
Sheets("Velo").Cells(Sheets("Velo").Range("A65536").End(xlUp).Offset(1, 0).Row, 1)
Next
End Sub


Sorry, aber Dein PS verstehe ich nicht. Was meinst Du damit?

MfG,
Oliver
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 fightibrandon

Hi Oliver,

jetzt hast du es. Es ist perfekt und mein dank wird dir ewig nachschleichen.

Die Frage aus dem PS hat sich schon erledigt. Er übernimmt änderungen nach einer kleinen weile.

Echt Super !!!! DANKE !!!!

Gruß Marco

Antwort 9 von coros

Hi Marco,

freut mich, wenn alles so ist, wie Du es Dir vorgestellt hast. Danke Dir auch für die Rückmeldung.

MfG,
Oliver
Jeder macht was er will, keiner macht was er soll, aber alle machen mit.

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


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: