Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
956to960
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
956to960
956to960
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Ergebnis aus sverweis per vba in Verküpfung umwand

Ergebnis aus sverweis per vba in Verküpfung umwand
09.03.2008 11:35:31
wossi
Moin,
zu meiner vorhergehenden Frage, eine erweiterungsfrage.
Ist es möglich, das gefundene Ergebnis aus einem sverweis als direkte Verknüpfung zum Fundort mit vba darzustellen? Wenn, wie?
Danke.
wossi

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ergebnis aus sverweis per vba in Verküpfung umwand
09.03.2008 13:54:00
Tino
Hallo,

Private Sub Worksheet_Change(ByVal Target As Range)
If (Intersect(Target, Range("F10:P10")) Is Nothing) Or LCase(Target)  "ist" Then Exit Sub
Application.EnableEvents = False
Target.Offset(6, 0).FormulaR1C1 = _
"=IF(R[-6]C=""IST"",VLOOKUP(R16C4,Tabelle2!C3:C7,R[-13]C[1],0),"""")"
If Target.Offset(6, 0) Then
MsgBox Sheets(2).Name & " " & Sheets(2).Range("C:C").Find(Range("D16")).Offset(0, Target. _
Offset(-7, 1) - 1).Address
End If
Application.EnableEvents = True
End Sub


Gruß
Tino

AW: Ergebnis aus sverweis per vba in Verküpfung um
09.03.2008 14:01:00
fcs
Hallo wossi,
vorausgesetzt die Tabelle hat die zugehörigen Werte in den Spalten neben dem Namen, dann ist mein vorheriges Makro wie folgt anzupassen.
Übrigens: hast du hier schon mal geschaut: https://www.herber.de/forum/messages/959256.html
Formelvorschlag zu deinem Problem.
Gruß
Franz

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim Zeile As Long, strFormel As String, Zelle As Range, ws As Worksheet
Set ws = Worksheets("Tabelle2")
If Not Intersect(Target, Range("E10:P10")) Is Nothing _
And Target.Cells.Count = 1 Then
If LCase(Target.Value) = "ist" Then
If MsgBox("Sollen die Werte in Spalte " & Target.Column _
& " (" & Chr$(Target.Column + 64) & ") durch die Formel ersetzt werden?", _
vbQuestion + vbYesNo) = vbYes Then
'Wert durch Formel ersetzen für Zeilen mit Eintrag in Spalte 4 eintragen
For Zeile = Target.Row + 2 To Cells(Rows.Count, 4).End(xlUp).Row
If Not IsEmpty(Cells(Zeile, Target.Column)) Then
'Zelle mit dem Namen im Blatt 2 suchen
Set Zelle = ws.Columns.Find(What:=Me.Cells(Zeile, 4).Value, LookIn:=xlValues, _
lookat:=xlWhole)
If Not Zelle Is Nothing Then
strFormel = "='" & ws.Name & "'!R" & Zelle.Row & "C" & Zelle.Column + _
Target.Column - 4
Cells(Zeile, Target.Column).FormulaR1C1 = strFormel
Else
Cells(Zeile, Target.Column).Value = "kein Wert"
End If
End If
Next
End If
End If
End If
End Sub


Anzeige
AW: Ergebnis aus sverweis per vba in Verküpfung um
09.03.2008 14:52:54
wossi
schaue ich mir gleich mal an!!
Eine Verständnisfragezu:

vorausgesetzt die Tabelle hat die zugehörigen Werte in den Spalten neben dem Namen, dann ist  _
mein vorheriges Makro wie folgt anzupassen.


?
hauptsache Suchkriterium und Ergebnis stehen in einer Zeile? Wieviele Spalten dazwischenliegen egal?

Mit Kommentar
09.03.2008 14:20:00
Tino
Hallo,

Private Sub Worksheet_Change(ByVal Target As Range)
'prüfe ob geänterte Zelle im Bereich F10:P10 ist und ob die geänderte Zelle = "ist" ist
If (Intersect(Target, Range("F10:P10")) Is Nothing) Or LCase(Target)  "ist" Then Exit Sub
'events abschalten
Application.EnableEvents = False
'Formel eintargen von geänderte Zelle 6 Zellen nach unten
Target.Offset(6, 0).FormulaR1C1 = _
"=IF(R[-6]C=""IST"",VLOOKUP(R16C4,Tabelle2!C3:C7,R[-13]C[1],0),"""")"
'Prüfe ob Formel ein wahr ergebnis hat
If Target.Offset(6, 0) Then
'Suche Zelle für Namen (ist in etwa mit der SVERWEIS Formel gleich zu setzen)
MsgBox Sheets(2).Name & " " & Sheets(2).Range("C:C").Find(What:=Range("D16"), LookAt:=xlWhole). _
Offset(0, Target. _
Offset(-7, 1) - 1).Address
End If
Application.EnableEvents = True
End Sub


Gruß
Tino

Anzeige
AW: Mit Kommentar noch angepasst
09.03.2008 14:43:15
Tino
Hallo,
da mir Target.Offset(6, 0) nicht Wahr oder Falsch zurückgibt, musste ich dies noch anpassen.

Private Sub Worksheet_Change(ByVal Target As Range)
'prüfe ob geänterte Zelle im Bereich F10:P10 ist und ob die geänderte Zelle = "ist" ist
If (Intersect(Target, Range("F10:P10")) Is Nothing) Or LCase(Target)  "ist" Then Exit Sub
'events abschalten
Application.EnableEvents = False
'Formel eintargen von geänderte Zelle 6 Zellen nach unten
Target.Offset(6, 0).FormulaR1C1 = _
"=IF(R[-6]C=""IST"",VLOOKUP(R16C4,Tabelle2!C3:C7,R[-13]C[1],0),"""")"
'Prüfe ob Formel ein wahr ergebnis hat
If Not IsError(Target.Offset(6, 0)) Then
'Suche Zelle für Namen (ist in etwa mit der SVERWEIS Formel gleich zu setzen)
MsgBox Sheets(2).Name & " " & Sheets(2).Range("C:C").Find(What:=Range("D16"), LookAt:=xlWhole). _
Offset(0, Target. _
Offset(-7, 1) - 1).Address
End If
Application.EnableEvents = True
End Sub


Gruß
Tino

Anzeige
Die Mischung macht´s....
09.03.2008 14:44:55
wossi
Habe mal beides ausprobiert,
das ideale ist eine Mischung aus beidem. Von Tino nehme ich den Teil für die Analyse der "IST" Zelle, denn dort kann ich mit den WENN Funktion weiterarbeiten, und für die Umwandlung in eine Verküpfung nehme ich den Teil von Franz.
Nur zusammenbekommen muss ich es noch ;-)
wossi

Sorry
09.03.2008 17:54:47
wossi
Hallo Leute,
ich habe etwas falsches geschrieben, durch das ganze testen, muss ich einen Fehler gemacht haben.
In beiden Fällen geht das ja jar nicht so gut mit der WENN Formel im Hintergrund (Zelle in der "IST" stehen soll). Kann man in den Code noch einbauen, dass das auch dann funzt?
wossi

Anzeige
AW: Sorry
09.03.2008 18:24:00
Tino
Hallo,
was ist "dann"?
Gruß
Tino

AW: Sorry
09.03.2008 19:03:55
wossi
hi,
mit "dann" meine ich, dass der Code auch "aktiviert" wird, wenn man das "IST" nicht händisch einträgt, sondern das "IST" mit einer Formel hinterlegt ist.
https://www.herber.de/bbs/user/50592.xls
momentan muss man die Zelle H10 aktivieren (wenn sie von "soll" auf "ist" gesprungen ist), damit in Zelle H16 die Formel eingetragen wird.
Grüße,
Wossi

Wenn das IST mit einer Formel hinterlegt ist, ..
09.03.2008 19:28:00
Herby
Hallo Wossi,
dann kann das nicht mit der Ereignis-Procedure Worksheet-Calculate abgefragt werden,
außer du frägst wieder deine händische Eingabe in der Zelle H9 ab.
Viele Grüße
Herby

Anzeige
AW: Wenn das IST mit einer Formel hinterlegt ist,
09.03.2008 19:53:16
wossi
hi,
gibt es ein Buch, in dem drinnensteht, welcher Befehl, was bedeutet und wann ich was nehmen muss ;-) ?
Ich habe gelernt, dass der ganze Code dann umgeschrieben werden muss. Es reicht wohl nicht, einfach die Überschrift zu ändern?
Um das ganze besser zu verstehen, kannst du mir in Textform kurz schreiben, wie/reihenfolge ich denken muss, um der Programmiersprache zu entsprechen? Da ich (noch) keine Ahnung vom vba programmieren habe, sondern ehr in "Formelsprache wenn, dann, sonst" denke, würde mir das denke ich viel helfen.
Gruß,
wossi

AW: Wenn das IST mit einer Formel hinterlegt ist,
09.03.2008 20:08:28
Tino
Hallo,
müsste funktionieren.

Private Sub Worksheet_Change(ByVal Target As Range)
'prüfe ob geänterte Zelle im Bereich F10:P10 ist und ob die geänderte Zelle = "ist" ist
If ((Intersect(Target, Range("E10:E10")) Is Nothing) And LCase(Target) = "ist") Then
'events abschalten
Application.EnableEvents = False
'Formel eintargen von geänderte Zelle 6 Zellen nach unten
Target.Offset(6, 0).FormulaR1C1 = _
"=IF(R[-6]C=""IST"",VLOOKUP(R16C4,Tabelle2!C3:C7,R[-13]C[1],0),"""")"
'Prüfe ob Formel ein wahr ergebnis hat
If Not IsError(Target.Offset(6, 0)) Then
'Suche Zelle für Namen (ist in etwa mit der SVERWEIS Formel gleich zu setzen)
MsgBox Sheets(2).Name & " " & Sheets(2).Range("C:C").Find(What:=Range("D16"), LookAt:= _
xlWhole). _
Offset(0, Target. _
Offset(-7, 1) - 1).Address
End If
ElseIf ((Intersect(Target, Range("E16:E16")) Is Nothing) And LCase(Target.Offset(-6, 0)) = " _
ist") Then
'events abschalten
Application.EnableEvents = False
'Formel eintargen von geänderte Zelle 6 Zellen nach unten
Target.Offset(0, 0).FormulaR1C1 = _
"=IF(R[-6]C=""IST"",VLOOKUP(R16C4,Tabelle2!C3:C7,R[-13]C[1],0),"""")"
'Prüfe ob Formel ein wahr ergebnis hat
If Not IsError(Target.Offset(0, 0)) Then
'Suche Zelle für Namen (ist in etwa mit der SVERWEIS Formel gleich zu setzen)
MsgBox Sheets(2).Name & " " & Sheets(2).Range("C:C").Find(What:=Range("D16"), LookAt:= _
xlWhole). _
Offset(0, Target. _
Offset(-13, 1) - 1).Address
End If
End If
Application.EnableEvents = True
End Sub


Gruß
Tino

Anzeige
Syntaxfehler
09.03.2008 22:55:00
wossi
hallo,
ich habe mal copy und past gemacht, und hier gibt er mir immer einen fehler aus:
ElseIf ((Intersect(Target, Range("E16:E16")) Is Nothing) And LCase(Target.Offset(-6, 0)) = " _
ist") Then
Fehler beim Kompilieren Syntaxfehler
Was kann das sein?
Gruß

AW: Syntaxfehler
09.03.2008 23:45:28
Tino
Hallo,
ElseIf ((Intersect(Target, Range("E16:E16")) Is Nothing) And LCase(Target.Offset(-6, 0)) = " _
ist") Then
scheint der Zeilenumbruch vom Forum zu sein
versuche es mal hiermit.

ElseIf ((Intersect(Target, Range("E16:E16")) Is Nothing) And LCase(Target.Offset(-6, 0)) = "ist") Then


Gruß
Tino

Anzeige
AW: Syntaxfehler
10.03.2008 11:24:40
Wossi
Hallo Tino,
jetzt hat er keinen Fehler mehr angezeigt.
Ich habe mir überlegt, dass die Ausgabe "Verküpfung" im ersten Schritt zu viel ist. Daran werde ich mich machen, wenn ich in vba etwas mehr Durchblick habe.
Mir ist erst jetzt bewusst geworden, dass ich vielleicht doch die orginale Datei einstellen sollte, denn daraus lässt sich erst erkennen, dass es keine Eingabe über eine Zellaktivierung gibt, sondern nur über das Drehfeld. Vielleicht kommt jetzt doch der worksheet.calculate Befehl zum tragen?
Kann dein Code dementsprechend angepasst werden?
https://www.herber.de/bbs/user/50605.xls
Gruß
wossi

Anzeige
AW: Syntaxfehler
10.03.2008 16:09:00
Tino
Hallo,
hier mit Calculate
"Tabelle1 ist in Wirklichkeit eine andere Arbeitsmappe."
Damit kann ich so nichts anfangen, daher kann ich auch nicht die Zella Adresse zurückgeben.

Die Datei https://www.herber.de/bbs/user/50615.xls wurde aus Datenschutzgründen gelöscht


Gruß
Tino

AW: Syntaxfehler
12.03.2008 21:10:19
wossi
Danke.

294 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige