Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
980to984
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
980to984
980to984
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zellbereiche als Werte per VBA kopieren

Zellbereiche als Werte per VBA kopieren
26.05.2008 11:27:54
Fritz_W
Hallo Forumsbesucher,
ich benötige die Hilfe aller VBA-Experten unter euch:
Ich möchte in einer Tabelle je nachdem, welche Zahl in der Zelle G2 eingegeben wird, einen bestimmten Zellbereich der Tabelle kopieren und die Zellinhalte dieses Bereichs als Wert (ohne Formatierungen) in einen anderen Zellbereich dieser Tabelle - immer in den gleichen Zellbereich (H7:J30) - einfügen.
Im Einzelnen sollte das wie folgt geschehen:
Im Zellbereich K2:GA2 dieser Tabelle finden sich in einzelnen Zellen Zahlen, wobei die in G2 eingegebene Zahl in diesem Zellbereich (K2:GA2) nur einmal vorkommen kann.
Wenn ich jetzt in die Zelle G2 z.B. die Zahl 1 eingebe und diese Zahl steht in K2, dann soll der Bereich K7:M30 kopiert und als Wert in den Bereich H7: J30 eingefügt werden. Steht die eingegebene Zahl jedoch in W2, dann sollte der Bereich W7:Y30 kopiert und in den Bereich H7:J30 als Wert eingefügt werden.
Der zu kopierende Zellbereich ist immer abhängig von der Zelle des Zellbereichs K2:GA2, in der der in G2 eingegebene Wert "gefunden" wird. Da diese Zelle sich jeweils in der Zeile 2 befindet, soll der Zellbereich der gleichen Spalte, beginnend ab Zeile 7 und die nächsten 2 Spalten bis Zeile 30 kopiert werden.
Wenn möglich sollte die Kopieraktion nach jeder Zelleingabe in G2 automatisch neu erfolgen.
Ich hoffe, ich habe mein Anliegen für euch nachvollziehbar beschrieben und danke bereits jetzt für eure Hilfe.
Gruß
Fritz

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

Betreff
Datum
Anwender
Anzeige
AW: Zellbereiche als Werte per VBA kopieren
26.05.2008 11:49:00
Renee
Hi Fritz,
Diese Formel in H7:

=INDEX(K7:GA7;VERGLEICH($G$2;K$2:GA$2;0)+SPALTE()-8)


Anschliessend Formel bis J30 kopieren, fertig.
GreetZ Renée

AW: Zellbereiche als Werte per VBA kopieren
26.05.2008 12:04:48
Fritz_W
Hallo Renee,
das mein Anliegen ganz ohne VBA funktionieren soll, ist prima.
Beim Testen hat das "korrekte" Einfügen jedoch nur in der ersten Spalte funktioniert. Muss ich heute abend aber vielleicht noch mal testen.
Melde mich dann ggf. noch einmal
Vielen Dank für die Hilfe.
Gruß
Fritz

AW: Zellbereiche als Werte per VBA kopieren
26.05.2008 12:11:58
Renee
Hi Fritz,
Sorry, da fehlte ein paar Dollars (wie so bei vielem andern!):

=INDEX($K7:$GA7;VERGLEICH($G$2;$K$2:$GA$2;0)+SPALTE()-8)


GreetZ Rennée

Anzeige
AW: Zellbereiche als Werte per VBA kopieren
26.05.2008 12:20:57
Fritz_W
Hallo Renee,
ja, ja die Dollars!
Jetzt funktioniert die Sache!
Allerdings hat die Sache ohne VBA wohl einen kleinen Nachteil:
Ist eine Zelle Zelle im zu kopierenden Bereich leer, wird im Einfügungsbereich die Zahl 0 eingefügt.
Das lässt sich wohl nicht vermeiden?
Nochmals vielen Dank
und schöne Grüße
Fritz

AW: Zellbereiche als Werte per VBA kopieren
26.05.2008 13:06:34
Renee
Hi Fritz,
Das lässt sich wohl nicht vermeiden?
Doch, die Formel wird einfach ein bisschen länger:

=WENN(INDEX($K7:$GA7;VERGLEICH($G$2;$K$2:$GA$2;0)+SPALTE()-8)="";"";INDEX($K7:$GA7;VERGLEICH($G$2; $K$2:$GA$2;0)+SPALTE()-8)) 


GreetZ Renée

Anzeige
AW: Zellbereiche als Werte per VBA kopieren
26.05.2008 13:52:00
Fritz_W
Hallo Renee,
das ist ja super! Diese kompetente Hilfe von euch Experten hier, einfach toll!
Danke!
Gruß
Fritz

@Renee - Formel umstellen
26.05.2008 15:00:00
Fritz_W
Hallo Renee,
wie muss man die Formel ändern, wenn die in Zelle G2 eingegebene Zahl im Bereich K52:GA52 steht und der jeweils kopierte Bereich als Wert in den Bereich GE7:GG30 eingefügt werden soll?
Würde mich freuen, wenn Du mir erneut helfen könntest!
Dank im Voraus
Gruß
Fritz

AW: @Renee - Formel umstellen
26.05.2008 15:12:00
Renee
Hi Fritz,
Na so schwer dürfte das bei Excel gut doch nicht sein? in GE7:

=WENN(INDEX($K7:$GA7;VERGLEICH($G$2;$K$52:$GA$52;0)+SPALTE()-187)="";"";INDEX($K7:$GA7; VERGLEICH($G$2; $K$52:$GA$52;0)+SPALTE()-187))  


GreetZ Renée

Anzeige
AW: @Renee - Formel umstellen
26.05.2008 15:17:24
Fritz_W
Hallo Renee,
vielen Dank!
Die Einschätzung "EXCEL - gut" möchte ich in die Schulnote "ausreichend" abändern!
Gruß
Fritz

AW: Zellbereiche als Werte per VBA kopieren
26.05.2008 11:49:00
Rudi
Hallo,

Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range
If Target.Address(0, 0) = "G2" Then
Set rng = Range("K2:GA2").Find(Target.Value)
Range("H7:J30").Value = rng.Offset(5, 0).Resize(24, 3).Value
End If
End Sub


Gruß
Rudi
Eine Kuh mach muh, viele Kühe machen Mühe.

AW: Zellbereiche als Werte per VBA kopieren
26.05.2008 12:10:00
Fritz_W
Hallo Rudi,
habe das Makro getestet, funktioniert - wie gewünscht - mit einer Ausnahme:
Steht die in G2 eingegebene Zahl in K2 passiert nichts, in allen anderen bisher getesteten Fällen liefert das Makro aber das gewünschte Ergebnis.
Gibt es eine Erklärung, warum nichts passiert, wenn die in G2 eingegebne Zahl in K2 steht?
Vielen Dank für Deine Hilfe.
Gruß
Fritz

Anzeige
AW: Zellbereiche als Werte per VBA kopieren
26.05.2008 12:13:00
Rudi
Hallo,
bei mir klappt das.
Gruß
Rudi
Eine Kuh mach muh, viele Kühe machen Mühe.

AW: Zellbereiche als Werte per VBA kopieren
26.05.2008 12:24:34
Fritz_W
Hallo Rudi,
seltsam, ich wundere mich auch, da - wie gesagt, die Sache ansonsten einwandfrei funktioniert.
Ich werde heute abend das Ganze etwas genauer anschauen und melde mich dann hier noch einmal.
Bis dann
und nochmals vielen Dank.
Gruß
Fritz

AW: Zellbereiche als Werte per VBA kopieren
26.05.2008 12:32:00
Fritz_W
Hallo Renee,
ich habe, da die Zelle J2 leer ist, in dem Makro den Bereich K2:GA2 in J2:GA2 geändert und jetzt funktioniert das seltsamerweise.
Mit diesem Makro funktioniert das nun auch bei mir, wenn der Wert in K2 gefunden wird:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range
If Target.Address(0, 0) = "G2" Then
Set rng = Range("J2:GA2").Find(Target.Value)
Range("H7:J30").Value = rng.Offset(5, 0).Resize(24, 3).Value
End If
End Sub


Gruß
Fritz

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige