Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
1516to1520
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
Inhaltsverzeichnis

Variable anhand eines Find-Befehls

Variable anhand eines Find-Befehls
09.10.2016 15:59:47
Orgeto
Hallo, miteinander.
Ich möchte mich gerne mit folgendem Problem an euch wenden:
Ich habe folgende Datei:
https://www.herber.de/bbs/user/108678.xlsm
MIt folgendem Code, zu dem ich fragen möchte:

Sub Rüberziehen()
Dim ZeileEintrag As Integer
Dim SpalteEintrag As Integer
Dim ZeileTitel As Integer
Dim SpalteTitel As Integer
Dim ZeileKopiert As Integer
Dim SpalteKopiert As Integer
Dim Zwischenwert As Variant
ZeileTitel = 35
SpalteTitel = 1
ZeileEintrag = 36
SpalteEintrag = 1
ZeileKopiert = 8
Do
ThisWorkbook.Worksheets("Input List").Activate
Zwischenwert = Cells(ZeileEintrag, SpalteEintrag).Value
'Ab hier: Adaptiv
If Cells(ZeileTitel, SpalteTitel) = "Asset Type" Then
Worksheets("Tabelle1").Cells(ZeileKopiert, 27).Value = Zwischenwert
End If
'Bis hier: Adaptiv
SpalteTitel = SpalteTitel + 1
SpalteEintrag = SpalteEintrag + 1
If Cells(ZeileTitel, SpalteTitel) = "" Then
ZeileKopiert = ZeileKopiert + 1
SpalteTitel = 1
SpalteEintrag = 1
ZeileTitel = ZeileTitel + 2
ZeileEintrag = ZeileEintrag + 2
End If
Loop Until Cells(ZeileEintrag, 1) = ""
End Sub

Ziel: Das Makro sucht bei Cells(36,1) in Range("a1:ai1") den Suchbegriff Cells(36,1) und nimmt die Zahl darunter dann als Spaltenzahl für das reinkopieren in Tabelle1. (Im Fall von 35,1 wäre es dementsprechend Cells(8,27)

Problem:
Der Code funktioniert weit genug, dass ich das Problem theoretisch mit einem riesigen If-Befehl lösen könnte (so wie im kursiven Teil), aber ich würde es bevorzugen, eine zusätzliche Variable einzurichten, die mir die Zahl aus Zeile 2 heraussucht und als Variable für den Cells-Befehl zur Verfügung stellt.
Nach 3 Stunden voll Fehlermeldungen an einem schönen Sonntagnachmittag bitte ich höflich um Vorschläge, wie ich diese Variable innerhalb des kursiven Bereichs etablieren kann.
Ich hoffe, dass ich das Problem klar genug umschrieben habe und wünsche euch allen noch einen angenehmen Sonntag.
Orgeto

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Variable anhand eines Find-Befehls
10.10.2016 09:54:18
Werner
Hallo,
wenn ich dich richtig verstanden habe, dann willst du den Wert aus AJ1 (bin von einem Textstring ausgegangen) im Bereich A1-AI1 suchen und als Ergebnis willst du die Zahl aus der Zelle unterhalb der Fundstelle in eine Variable schreiben. Also z.B. Fund in H1, Wert aus H2 in Variable.
Die Tabellenblattnamen musst du noch an deine Bedürfnisse anpassen.
Deine Datei konnte ich nicht herunterladen, kann hier keine .xlsm herunterladen.
Public Sub test()
Dim strSuche As String
Dim rngFund As Range
If Sheets("Tabelle1").Range("AJ1")  "" Then
strSuche = Sheets("Tabelle1").Range("AJ1").Value
Set rngFund = Sheets("Tabelle1").Range("A1:AI1").Find(What:=strSuche, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False, _
SearchFormat:=False)
If Not rngFund Is Nothing Then
'### hier anstatt der MsgBox den Wert in eine Variable übernehmen     ###
'### mit rngFund.Offset(1, 0).Value bekommst du den Wert aus der      ###
'### Zelle unterhalb der Fundzelle. Beispiel: Fund in D1, Wert aus D2 ###
MsgBox rngFund.Offset(1, 0).Value
End If
End If
End Sub
Gruß Werner
Anzeige
AW: keine Zeit für eine Rückmeldung? o.w.T.
14.10.2016 14:00:32
Werner

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige