Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1940to1944
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
VBA - Wert mit Zellenadresse eintragen
15.08.2023 12:31:57
Celine
Hallo Excel-Experten,

für Euch ist mein Problem sicherlich simpel, aber ich bin schon seit Tagen am Basteln und Testen. Und es wäre prima, wenn mich jemand dabei unterstützen könnte.
Ich habe eine ziemlich komplexe Excel-Tabelle und benötige eine VBA-Lösung.

Ich habe versucht, dass ganze etwas anschaulicher darzustellen. Und mein Beispiel ist natürlich stark vereinfacht und soll das Prinzip zeigen.
Wichtig: Für mich ist nicht die Lösung des Problems das Wichtigste (da gibt es wahrscheinlich wesentlich einfachere Wege ich weiß -> aber die Gegebenheiten sind so wie geschildert und ich muss eine Lösung finden damit umzugehen). Für mich ist also die Funktionsweise des Makros das Wichtigste (denn das ganze hier ist nur ein kleiner Zwischenschritt)

- Die Daten aus den Spalte F und H sollen in die bestehende Tabelle mit Hilfe einer Schleife eingepflegt werden.
- In Spalte G und I stehen die dazugehörigen Zellenadressen (Zielort für die Daten)

Funktionsweise Makro
- Makro soll sich an der jeweiligen Zellenadresse orientieren und den dazugehörigen Wert in die Tabelle eintragen
Konkretes Beispiel: Makro arbeitet Spalte G durch - fängt bei G4 an - schaut nach der dort angegebenen Zellenadresse in G4 und kopiert den Eintrag aus Zelle F4 in die angegebene Adresse (B4)

Ich habe natürlich schon angefangen (siehe unten), bin aber mit dem ganzen noch nicht weitergekommen. Wäre für etwas Unterstützung sehr dankbar ;) Muss man da zB mit "Indirekt" arbeiten?

Vielen Dank Celine

Sub Test()
Dim i As Long
Dim iMax As Long
Dim ZwName As Integer
Dim PLZ As Long

iMax = Tabelle1.Range("A4").End(xlUp).Row
ZwName = Cells(i, 7).Value 'Spalte G
PLZ = Cells(i, 9).Value 'Spalte I

With Tabelle1
For i = 4 To iMax

?????

Next
End With
End Sub

VBA - Wert mit Zellenadresse eintragen


Userbild

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - Wert mit Zellenadresse eintragen
15.08.2023 12:47:06
Rudi Maintaire
Hallo,
With Tabelle1

For i = 4 To iMax

.Range(.Cells(i, 7)) = .Cells(i, 6)
.Range(.Cells(i, 9)) = .Cells(i, 8)

Next
End With


Gruß
Rudi
AW: VBA - Wert mit Zellenadresse eintragen
15.08.2023 13:16:56
Celine
Hallo Rudi, vielen Dank erst einmal für deine Unterstützung. Wenn ich deinen Part bei mir einsetze bekomme ich einen Laufzeitfehler 1004 (siehe unten) Auch wenn ich den angemeckerten Bereich auskommentiere, passiert nichts. Kannst du bitte mal schauen, wo der Fehler liegt. Vielen Dank noch einmal

Meine Formel:
Sub Test()
Dim i As Long
Dim iMax As Long
'Dim ZwName As Integer
'Dim PLZ As Long

iMax = Tabelle1.Range("A4").End(xlUp).Row
'ZwName = Cells(i, 7).Value 'Spalte G
'PLZ = Cells(i, 9).Value 'Spalte I

With Tabelle1
For i = 4 To iMax

.Range(.Cells(i, 7)) = .Cells(i, 6)
.Range(.Cells(i, 9)) = .Cells(i, 8)
'ist der erste Part "indirekt"?

Next
End With
End Sub
Anzeige
AW: VBA - Wert mit Zellenadresse eintragen
15.08.2023 13:30:06
Rudi Maintaire
Hallo,
in meinem Nachbau geht das.

iMax = Tabelle1.Range("A4").End(xlUp).Row

muss es nicht
iMax = Tabelle1.Range("A4").End(xlDOWN).Row
heißen?

'ist der erste Part "indirekt"?
Quasi. Wenn in Cells(i, 9) D5 steht, wird das halt zu Range("D5")

Gruß
Rudi
AW: VBA - Wert mit Zellenadresse eintragen
15.08.2023 13:53:51
Celine
Hallo Rudi, ohlala, das sieht super aus :)Vielen Dank!!!! Du hat mir echt viel Arbeit erspart.
Und jaa, es war der "blöde" Fehler mit Up and Down :) Ich poste nur der übersichthalber den bereinigten Code nochmal hier rein. Ich hoffe, dass das ganze dann auch bei meiner wirklichen Datei funktioniert ;)

Vielen Dank noch einmal und einen tollen Tag
Celine

Sub Test()
Dim i As Long
Dim iMax As Long

iMax = Tabelle1.Range("A4").End(xlDown).Row

With Tabelle1
For i = 4 To iMax

.Range(.Cells(i, 7)) = .Cells(i, 6)
.Range(.Cells(i, 9)) = .Cells(i, 8)

Next
End With
End Sub
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Anzeige

Infobox zum Thema

EXCEL - VBA - Wert mit Zelladresse eintragen


Inhaltsverzeichnis


Die Fragestellung


Du möchtest mit VBA in Excel einen Wert zusammen mit der Adresse der Zelle, in der dieser Wert steht, in eine andere Zelle eintragen.


Erläuterung des Problems {#erläuterung-des-problems}


In Excel kann es nützlich sein, nicht nur den Wert einer Zelle, sondern auch deren Position in der Tabelle festzuhalten. Dies kann für die Nachverfolgung von Datenänderungen, die Dokumentation von Berechnungen oder für die Erstellung von Berichten erforderlich sein.


Lösung des Problems {#lösung-des-problems}


Um den Wert einer Zelle und ihre Adresse in eine andere Zelle einzutragen, kannst du folgenden VBA-Code verwenden:

Sub InsertValueAndAddress()
    Dim sourceCell As Range
    Dim targetCell As Range
    Dim valueToInsert As String

    ' Setze die Quellzelle, deren Wert und Adresse du kopieren möchtest
    Set sourceCell = ThisWorkbook.Sheets("Tabelle1").Range("A1")

    ' Setze die Zielzelle, in die du die Informationen eintragen möchtest
    Set targetCell = ThisWorkbook.Sheets("Tabelle1").Range("B1")

    ' Erstelle den String, der den Wert und die Adresse der Quellzelle enthält
    valueToInsert = sourceCell.Value & " (" & sourceCell.Address & ")"

    ' Trage den erstellten String in die Zielzelle ein
    targetCell.Value = valueToInsert

    ' Aufräumen
    Set sourceCell = Nothing
    Set targetCell = Nothing
End Sub

Dieses Skript nimmt den Wert aus der Zelle A1 und ihre Adresse und setzt beides in die Zelle B1 der gleichen Tabelle ein. Der Wert in B1 würde dann zum Beispiel "123 (A1)" lauten, wenn A1 den Wert 123 enthält.


Anwendungsbeispiele aus der Praxis


  • Dokumentation: Speichern der Herkunft von Daten, die aus verschiedenen Quellen stammen.
  • Fehlerverfolgung: Markieren von Zellen mit Werten, die manuell überprüft oder korrigiert werden müssen.

Tipps


  • Du kannst die .Address-Eigenschaft anpassen, um absolute oder relative Adressen zu erhalten (z.B. $A$1 vs. A1).
  • Verwende sourceCell.Address(RowAbsolute:=False, ColumnAbsolute:=False) für eine relative Adresse ohne Dollarzeichen.

Verwandte Themenbereiche


  • VBA-Programmierung
  • Datenverfolgung in Excel
  • Berichterstellung und Dokumentation

Zusammenfassung


Mit VBA kannst du den Wert und die Adresse einer Zelle in Excel erfassen und in einer anderen Zelle zusammenführen. Dies ist besonders nützlich für die Dokumentation und Nachverfolgung von Daten. Der obige Code bietet ein einfaches Beispiel dafür, wie du diese Aufgabe automatisieren kannst, um die Effizienz bei der Arbeit mit Excel-Daten zu verbessern.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige