1.6k Aufrufe
Gefragt in Datenbanken von
Hallo,

ich habe ein Problem. Ich möchte ein Makro schreiben, in dem es mir gelingt Daten aus das Tabellenblatt 1 in das Tabellenblatt 2 zu kopieren.
Im Tabellenblatt 1 sind in der Spalte A Nummern eingetragen, von A25 bis A100. Zu diesen Nummern gibt es in Spalte B die dazu gehörigen Antworten von B25 bis B100.
Beispiel:

In Zelle A25 ist die Nummer 123, in Zelle B25 den dazu gehörigen Text: "Hallo supportnet Computer". Und das geht von A25 bis A100 so. Dem entsprechend geht es von B25 bis B100 auch so. Was wäre wenn in der Spalte C25 ebenfalls einen Text gäbe oder neu eingetragen wird, der ebenfalls zur Nummer 123 gehört. Wie wird dann das Makro geschrieben? Das immer um eine Spalten weiter den Inhalt aus Tabellenblatt 1 in das Tabellenblatt 2 hinein kopiert.

5 Antworten

0 Punkte
Beantwortet von
Hallo Hajo123...,

dafür brauchst du eigentlich kein Makro. Wenn du in Tabelle1 bist und du mit gedrückt gehaltener STRG-Taste auf Tabelle2 klickst, wird alles was du in Tabelle1 eingibst auch in Tabelle2 durchgeschrieben.
Wenns aber unbedingt ein Makro sein soll dann so:

Öffne den VBA-Editor (Alt+F11), klicke im linken Fenster doppelt auf Tabelle1 und gib im rechten Fenster folgenden Code ein:


Private Sub Worksheet_Change(ByVal Target As Range)
Sheets("Tabelle2").Range(Target.Address) = Target.Value
End Sub



Sollte dir das nicht weiterhelfen, gib doch mal bitte an, wie bei dir Tabelle2 aufgebaut ist.

Gruß Mr. K.
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo,

Hajo schrieb hier:
Hallo Mr. K.

ich habe mir es ein wenig anders vorgestellt. Zu erst einmal vielen Dank für die Antwort. Das Tabellenblatt 2 ist immer Variabel.
Das bedeutet das zum Beispiel Wöchentlich oder Täglich immer neue Daten per SVerweiss beispielsweise eingepflegt werden.
Sobald neue Daten kommen, soll über ein Buttom (Makro zuwiesen) die Daten aus dem Tabellenblatt 2 z.B. Spalte B5:B100 in das Tabellenbaltt 1 in die Spalte C kopiert werden. Dann kommen wieder neue Daten in das Tabellenblatt 2 wieder aus der Spalte B5:B100 sollen dann diese Daten in das Tabellenblatt 1 kopiert werden aber dieses mal in die Spalte D .... und immer so weiter. So soll das Tabellenblatt 1 immer mit neuen Daten Spalte pro Spalte (Spalte C dann Spalte D, dann Spalte E usw.)gefüttert werden.
Vielen Dank im voraus

Gruß
Hajo


Probier mal das folgende Makro, dass in Tabellenblatt 2 in Spalte B ab der Zeile 5 die Daten kopiert und in Tabellenblatt 1 (ebenfalls ab Zeile 5) jeweils in eine neue Spalte einfügt:

Sub SpalteB_kopieren()

Dim lnglzeileB As Long
Dim lnglspalte As Long
Dim strTabname1 As String
Dim strTabname2 As String

'Namen für Tabelle1 und 2 werden in Variable geschrieben, Namen ggf. anpassen
strTabname1 = "Tabelle1"
strTabname2 = "Tabelle2"

'letzte Spalte in Tabellenblatt 1 ermitteln - Tabellenname ggf. anpassen
lnglspalte = ThisWorkbook.Worksheets(strTabname1).UsedRange.SpecialCells(xlCellTypeLastCell).Column

'letzte Zeile in Spalte B im Tabellenblatt 2 ermitteln
lnglzeileB = ThisWorkbook.Worksheets(strTabname2).Cells(Rows.Count, 2).End(xlUp).Row

'Daten aus Tabellenblatt 2 kopieren
With ThisWorkbook.Worksheets(strTabname2)
.Range(.Cells(5, 2), .Cells(lnglzeileB, 2)).Copy
End With

'Einfügen der Werte Tabelle1
ThisWorkbook.Worksheets(strTabname1).Cells(5, lnglspalte + 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Application.CutCopyMode = False

ThisWorkbook.Worksheets(strTabname1).Activate

End Sub


Das Makro gehört in ein allgemeines Modul.

Gruß

M.O.
0 Punkte
Beantwortet von
Hallo Mr. K.

hat eigentlich alles soweit gut geklappt. Danke erstmal dafür.
Ein Problem gibt es allerdings noch. Die inhalte werden leider immer in die Spalte Q hinein koppiert und nicht in die Spalte B.
Wie kann das sein? Was und wo genau soll ich etwas verändern in der Makro?

Gruß
Hajo
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Hajo,

warum der Code bei dir die Daten immer in Spalte Q hinein kopiert, kann ich nicht sagen, da ich deine Tabelle nicht sehe. Bei mir funktioniert der Code einwandfrei.
Es könnte natürlich sein, dass in der Tabelle1 Daten bis zur Spalte P stehen, so dass als erste leere Spalte die Spalte Q erkannt wird.

Gruß

M.O.
nicht Mr. K ;-)
0 Punkte
Beantwortet von
Hallo zusammen,

Sorry, hatte gestern mal wieder keine Zeit hier vorbeizuschauen. Danke M. O., dass du eingesprungen bist.

Vielleicht steht irgendwo in Spalte Q ein Leerzeichen oder etwas ähnliches, was den UsedRange erweitert. Am besten du markierst die Spalten C bis Q und löscht sie über "Zellen löschen".

@nickt: Ich dachte eine Neuanmeldung sei zurzeit nicht möglich. Hab bisher nicht gelesen, dass das Problem behoben ist. Vielleicht hab ich's auch nur nicht mitgekriegt.

Liebe Grüße Mr. K.
...