Anzeige
Archiv - Navigation
1420to1424
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
If then VBA Code für kopieren und einfügen
20.04.2015 15:21:46
Michael
Hallo Forum,
ich kenne mich mit VBA leider noch nicht so besonders aus und würde gerne einen einfachen Code schreiben, mit dessen Hilfe ich eine einfach copy & paste Aktion durchführe. Der Code sollte sich auf eine bestimmte Zelle beziehen und dann abhängig von der Eingabe den entsprechenden Bereich kopieren und in einen anderen Bereich einfügen.
Sprich, wie sollte der If Code aufgebaut sein, dass bei der Eingabe zB von Week 1, Week 2, Week 3 etc. in A2 zB. das folgenden Makro ausgeführt wird
Range("AE8:AE40").Select
Selection.Copy
Range("J8").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Ich müsste die anderen Bereiche natürlich noch deklarieren die in Abhängigkeit der Eingabe kopiert und immer in die selbe Zelle eingefügt werden. Aber bei mir hapert es leider schon an der If Then Deklaration.
Gruß und Danke

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: If then VBA Code für kopieren und einfügen
20.04.2015 15:26:24
Michael
Hallo Michael!
Ohne If-Struktur zB mit einer sogenannten "Fall-Auswahl" (hier kannst Du die "Fälle", d.h. Deine Eingabemöglichkeiten in A2 nach Bedarf erweitern):
Sub EinfacheKopie()
Select Case Tabelle1.Range("A2").Value 'Eingabezelle ggf. anpassen
Case Is = "Week 1" 'Bereiche ggf. anpassen
Tabelle1.Range("AE8:AE40").Copy
Tabelle1.Range("J8").PasteSpecial
Case Is = "Week 2" 'Bereiche ggf. anpassen
Tabelle1.Range("AE8:AE40").Copy
Tabelle1.Range("J8").PasteSpecial
Case Is = "Week 3" 'Bereiche ggf. anpassen
Tabelle1.Range("AE8:AE40").Copy
Tabelle1.Range("J8").PasteSpecial
End Select
End Sub
Lg
Michael

Anzeige
AW: If then VBA Code für kopieren und einfügen
20.04.2015 15:36:53
Michael
Schon mal Danke Michael,
an sich ist es genau das was ich wollte. Was mir jedoch noch fehlt, ist das das Makro automatisch ausgeführt wird. So muss ich immer wieder das Makro manuell ausführen damit die Zellen kopiert werden. Ich das auch noch irgendwie machbar?
Gruß

AW: If then VBA Code für kopieren und einfügen
20.04.2015 16:27:38
Michael
Hallo Michael!
Ja, das ist grds. machbar. Wonach richtet sich denn das automatische Auslösen? D.h. wann soll Excel prüfen, was in A2 steht, und dann entsprechend kopieren und einfügen?
LG
Michael

AW: If then VBA Code für kopieren und einfügen
20.04.2015 16:38:17
Michael
Hallo Michael,
grds. nach jeder Eingabe.
Ich versuche alternativ gerade das selbe mit einer ComboBox. Falls das andere nicht so funktioniert wie ich mir das vorstelle, kann ich dann auch auf die ComboBox verweisen. Also
Select Case Range("J5").Value
Case Is = "Week 1"
anstelle der Range("J5") auf die ComboBox.
Gruß

Anzeige
AW: If then VBA Code für kopieren und einfügen
20.04.2015 16:59:17
Michael
Hallo Michael!
Nach jeder Eingabe, d.h. nach jeder Zelländerung kann Dein Makro ausgelöst werden. Ich empfehle Dir aber hier unbedingt den überprüften Bereich einzuschränken, d.h. jenen Bereich in dem Änderungen das Makro auslösen - ständig die ganze Tabelle zu überwachen kann ziemliche Performance-Probleme machen. Außerdem solltest Du jenen Bereich bzw. jene Bereiche, in die eingefügt wird (bei meinem Bsp. immer Spalte "J") auch von der Überwachung ausschließen, da Du sonst bei jedem Einfüge-Vorgang des Makros wieder das Makro aufgrund Zelländerung auslöst.
Das folgende Makro muss in den Code-Teil des Tabellenblattes, in dem die Änderungen erfolgen, die das Makro auslösen sollen. Dazu im VB-Editor auf die betreffende Tabelle (zB Tabelle1) doppelkicken und den folgenden Code einfügen:
Private Sub Worksheet_Change(ByVal Target As Range)
'Bedingungen, damit die Kopieranweisungen ausgelöst werden:
'     - Überprüfter Bereich, ggf. anpassen, Änderungen in dem Bereich lösen aus
'     - Es wird nur eine Zelle jeweils geändert
'     - Änderungen in Spalte "J" werden nicht "registriert"; das Einfügen ändert da ja stä _
ndig
If Not Intersect(Range("A3:AD500"), Target) Is Nothing And _
Not Target.Rows.Count > 1 And _
Not Target.Column = 10 Then
Select Case Tabelle1.Range("A2").Value
Case Is = "Week 1"
Tabelle1.Range("AE8:AE40").Copy
Tabelle1.Range("J8").PasteSpecial
'### und so weiter... ###
Case Is = "Week 2"
'Kopieranweisung
Case Is = "Week 3"
'Kopieranweisung...
End Select
End If
End Sub
Beachte auch meine Kommentare direkt im Code.
LG
Michael

Anzeige
AW: If then VBA Code für kopieren und einfügen
20.04.2015 17:07:46
Michael
Vielen Dank für deine Mühe. Klappt bisher ganz gut!
Gruß

Freut mich, Danke f.d. RM! Schönen Abend owT
20.04.2015 17:26:38
Michael
.

AW: If then VBA Code für kopieren und einfügen
20.04.2015 15:30:08
Klexy
Soso, ein "entsprechender" Bereich und eine "bestimmte" Zelle...
Ohne Beispieldatei?

AW: If then VBA Code für kopieren und einfügen
20.04.2015 15:38:43
Michael
Der Bereich verschiebt sich entsprechend der Woche "Week 1", " Week 2" etc. um eine Spalte nach rechts. Die Zelle in die eingefügt werden soll bleibt immer J8.

383 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige