PDA

Vollständige Version anzeigen : Inhalte per Knopfdruck kopieren


Wengalf
29.03.2012, 08:45
Hi Leute,

ich erstelle momentan ein Excel-Sheet, für eine Funktion benötige ich nun ein Makro. Nur leider habe ich von der Erstellung eines Makros und VBA so gut wie keine Ahnung. Deshalb hoffe ich mal, dass ich mir da weiterhelfen könnt.

So und nun zu meinem Problem:

Ich möchte per Tastendruck aus 10 bestimmten Zellen (stehen alle untereinander (L 13 - L22)) die Werte in ein anderes Tabellenblatt kopieren lassen. Dort stehen die Zellen aber nebeneinander. Außerdem sollen die Werte nicht immer an die gleiche Position kopiert werden, sondern je nach Eingabe eines Wertes in die Tabelle 2 in Zeile 2-51.
Also wenn ich eine 2 angebe, dann sollen die Werte in Tabelle 2 in G-P 3 kopiert werden. Und wenn ich 3 angebe, dann eben in G-P 4.

Ich hoffe ich konnte mich verständlich machen. Und ich hoffe ihr könnt mir bei meinem Problem helfen. Ich bin für jeden Lösungsvorschlag dankbar. Ich weis nämlich leider nicht weiter.

Gruß Wengalf

Beverly
29.03.2012, 09:11
Hi Wengalf,

auf welche Weise willst du denn den Wert angeben? Steht er in einer Zelle?

<hr width="20%" align="left"><img src="http://excel-inn.de/images/grusz.gif" height=35" align="left" alt="Grußformel"><a href="http://excel-inn.de/" onclick="window.open(this.href);return false"><img border="0" src="http://excel-inn.de/images/logo1.gif" height=35" align="middle" alt="Beverly's Excel - Inn"></a>

hary
29.03.2012, 09:13
Hallo
Setze einen Button in die Tabelle und in den Code des Buttons:
Dim a As Long
a = Application.InputBox("Zeilennummer eingeben", "welche Zeilennummer")
If Not IsNumeric(a) Then Exit Sub
Application.ScreenUpdating = False
Sheets("Tabelle1").Range("L13:L21").Copy
Sheets("Tabelle2").Range("G" & a).PasteSpecial Paste:=xlPasteValues, Transpose:=True
Application.CutCopyMode = False
Application.ScreenUpdating = True
gruss hary

Wengalf
29.03.2012, 09:28
@Beverly,

ja der Wert wird in einer Zelle angegeben und soll einen Werte von 1-50 annehmen. Je nachdem welchen Wert er nun annimmt sollen die Werte die in L13-L22 stehen in die Zeile des anderen Tabellenblattes geschrieben werden.

Als Beispiel:
Wert = 5
dann sollen die Werte aus L13-L22 aus Tabelle 1 in Tabelle 2 nach G-P 5 geschrieben werden.

Wengalf
29.03.2012, 09:30
@ hary

Ja super so soll es funktionieren.

Noch als Frage, ist es möglich das ich die Zeilennummer auch wie im letzten Beitrag geschrieben, dort automatisch einlesen lassen kann? Sprich ohne sie nochmal einzutippen?

Danke schonmal für die Hilfe.

hary
29.03.2012, 09:35
Hallo
ersetz:
a = Application.InputBox("Zeilennummer eingeben", "welche Zeilennummer")

durch:
a = Sheets("Tabelle1").Range("A1").
A1 anpassen wo die Nummer steht.
gruss hary

Wengalf
29.03.2012, 09:39
SUPER.

Danke euch allen. Die Hilfe war hervorragend. Danke. Danke und nochmals Danke.

Beverly
29.03.2012, 09:39
Hi Wengalf,

angenommen deine Zahl steht in L1:
Sub Kopieren()
Dim arrWerte()
arrWerte() = Range("L13:L22")
Worksheets("Tabelle2").Range("G" & Range("L1")).Resize(1, UBound(arrWerte())) = Application.Transpose(arrWerte())
End Sub
<hr width="20%" align="left"><img src="http://excel-inn.de/images/grusz.gif" height=35" align="left" alt="Grußformel"><a href="http://excel-inn.de/" onclick="window.open(this.href);return false"><img border="0" src="http://excel-inn.de/images/logo1.gif" height=35" align="middle" alt="Beverly's Excel - Inn"></a>