Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Wert suchen, kopieren und in Zelle schreiben

VBA Wert suchen, kopieren und in Zelle schreiben
04.06.2019 14:05:08
Romy
Hallo
ich benötige Hilfe bei meinem VBA Code. Bisher sieht der so aus:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target = Range("E4") Then
Columns("A:C").Select
Selection.EntireColumn.Hidden = False
Range("E6, E8").ClearContents
Range("Tabelle1").Autofilter Field:=1, Criteria1:=Range("E4").Value
Columns("A:C").Select
Selection.EntireColumn.Hidden = True
End If
End Sub

Als weiteren Schritt möchte ich, dass VBA den Wert in Spalte B (Startdatum) und Spalte C (Enddatum), basierend auf der Auswahl E4, in die Zellen E6 und E8 schreibt.
Bsp.:
Ich wähle in der Zelle E4 Schlüssel aus
-> Spalten A:C werden eingeblendet
-> Zellinhalte E6 und E8 werden gelöscht
-> Spalte A, Tabelle 1 wird gefiltert nach dem Wert "Schlüssel"
-> Beim ersten gefundenen Wert wird der Wert daneben aus Spalte B, Tabelle1 genommen und in Zelle E6 geschrieben und der Wert aus Spalte C, Tabelle1 wird in Zelle E8 geschrieben
-> Spalten A:C werden ausgeblendet

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Zusatz
04.06.2019 14:43:08
Romy
Wenn ich den Wert in Zelle E4 lösche, bekomme ich einen Fehler angezeigt, wie kann ich das umgehen?
AW: Zusatz
04.06.2019 20:07:08
Werner
Hallo,
das wäre doch eine ganz normale SVERWEIS-Formel. Dazu brauchst du dann noch nicht einmal deine Tabelle zu filtern. Wenn es unbedingt ein Makro sein soll, dann ginge das damit natürlich auch.
Lade doch mal deine Datei hier hoch.
Gruß Werner
AW: Beispiel-Datei
05.06.2019 13:34:17
Werner
Hallo Romy,
z.B. so:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim raFund As Range
If Target.Address(0, 0) = "E4" Then
Application.ScreenUpdating = False
If Target  "" Then
Columns("A:C").EntireColumn.Hidden = False
Range("E6, E8").ClearContents
Range("Tabelle1").AutoFilter Field:=1, Criteria1:=Range("E4")
Set raFund = Columns(1).Find(what:=Range("E4"), LookIn:=xlValues, lookat:=xlWhole)
If Not raFund Is Nothing Then
Range("E6") = raFund.Offset(, 1)
Range("F6") = raFund.Offset(, 2)
End If
Columns("A:C").EntireColumn.Hidden = True
End If
End If
Set raFund = Nothing
End Sub
Gruß Werner
Anzeige
VBA Wert suchen, kopieren und in Zelle schreiben
06.06.2019 13:26:05
Romy
Danke Werner, Code funktioniert sehr gut.
LG Romy
Gerne u. Danke für die Rückmeldung. o.w.T.
06.06.2019 13:29:32
Werner

437 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige