Wert einer Zelle in festgelegte Zelle "kopieren"

Crazy_down

Erfahrenes Mitglied
Hallo zusammen,

ich möchte den Wert einer Zelle in eine andere kopieren bzw. verweisen.
Allerdings steht die Nr. der zelle, in welche der Wert kopiert werden soll in einer anderen zelle.

Als Beispiel.

Name (A)Zelle (B)Wert (C)
Text8550
Text2780

Der Wert "50" aus Spalte C1 soll also in die Zelle C85 kopiert werden. Bzw. auch in die Zelle D85 wenn ich mit Hilfsspalten arbeite.
Der Wert "80" soll nach C27.

Kann mit dabei jemand weiterhelfen ?

Vielen Dank.
 
Wie müsste ich das ganze denn per Makro umsetzen ?

Code:
Nimm Wert aus B2, kopiere C2 nach D(Wert von B2) ?

Ich habe mich leider noch nicht mit Makros beschäftigt ;)

Gibt es vlt. eine Möglichkeit zu sortieren, so das nicht vorhandene Zellen übersprungen werden ?
Code:
Sortiere Nach B2,
dann hätte ich das ergebnis ja auch ?
 
Zuletzt bearbeitet:
Also in Spalte B steht der Wert , in Spalte C steht die Zeilennummer und der Wert soll immer in eine andere Zeile aber immer in Spalte C kopiert werden?
 
Ich hab mal rasch ein Beispiel mit einem Zellentrigger gemacht. Das heisst, wenn du eine Zelle im Formularbereich änderst wird der Code automatisch ausgeführt

Visual Basic:
'diese Sub im VBA-Editor beim Worsheet hinterlegen
Private Sub Worksheet_Change(ByVal changed As Range)
    ' Definition des 'Formulabereiches' auf den der Trigger greiffen soll
    Const C_VALUE_RANGE = "B2:C3"
    'Zielspalte
    Const C_TARGET_COLUMN = "D"
    'Spalte mit der Zeilzeilnummer
    Const C_ROW_NR_COLUMN = "B"
    'Spalte mit dem Wert
    Const C_VALUE_COLUMN = "C"
    
    Dim isec        As Variant
    Dim value       As Variant
    Dim rowNr       As Long
    
    'Überprüfen ob die geänderte Zell innerhalb des Fomrularbereiches liegt
    Set isect = Application.Intersect(changed, Range(C_VALUE_RANGE))
    If Not isect Is Nothing Then
        'Wert auslesen
        value = Cells(changed.Row, C_VALUE_COLUMN)
        'Zielzeilennummer auslesen
        rowNr = Cells(changed.Row, C_ROW_NR_COLUMN)
        'Wert in Zielzelle eintragen
        Cells(rowNr, C_TARGET_COLUMN).value = value
    End If
End Sub
 
Also in Spalte B steht der Wert , in Spalte C steht die Zeilennummer und der Wert soll immer in eine andere Zeile aber immer in Spalte C kopiert werden?

Fast richtig, der Wert kann ruhig in Spalte D kopiert werden. Also mit einer Zwischenspalte.




Ich hab mal rasch ein Beispiel mit einem Zellentrigger gemacht. Das heisst, wenn du eine Zelle im Formularbereich änderst wird der Code automatisch ausgeführt


Vielen Dank für deine Mühe, beim ausführen bekomme ich immer folgenden Fehler:
Code:
Laufzeitfehler '1004':
Anwendungs- oder objeddefinierter Fehler
Dieser zeigt auf die Zeile
Visual Basic:
Cells(rowNr, C_TARGET_COLUMN).value = value
 
Edit:

Das script funktioniert toll. Ich musste nur den Triggerbereich erhöhen.
Wie kann ich es denn ausführen ohne immer im Triggerbereich etwas ändern zu müssen, da die Werte ja schon da drin stehen ?
 
Zuletzt bearbeitet:
Ich habe deinen Code benutzt und über eine "Kopieren & Einfügen"- Funktion die Spalten befüllt.
Dabei wurde jedes mal dein Script ausgeführt und die Zellen kopiert.

Vielen Dank dafür ! ;-)

Visual Basic:
Sub aufnahme_copy()
'Kopieren und einfügen der Werte in eine andere Zelle

'Schleife die von 20 bis 645 läuft
For i = 20 To 645

'Messagebox für vorherige Testausgabe
'MsgBox "A" & i
' Selektiere Spalte "M" + i
  Range("M" & i).Select
'Kopiere den entsprechenden Wert
 Selection.Copy
'Selektiere Spalte "N" + i
 Range("N" & i).Select
'Fügt den kopierten Wert ein.
 ActiveSheet.Paste
    
Next i
End Sub
 
Zurück